circuitpython/ports/cxd56
Scott Shawcroft 412eb87080
Switch to pin, frequency and duty_cycle PulseOut
Passing in a PWMOut still works but is deprecated. It will be
removed in CircuitPython 8.0.0

This also switches STM32 timer indices and channel indices to
0-based in our pin data rather than `- 1` everywhere. The latter is
more bug prone.

Most of the way for #3264

Tested on Metro M0, Metro M4, Feather S2, Feather nRF52840, Feather
STM32F4 and Arduino RP2040.
2021-07-26 18:35:49 -07:00
..
boards/spresense run code formatting script 2021-03-15 19:27:36 +05:30
common-hal Switch to pin, frequency and duty_cycle PulseOut 2021-07-26 18:35:49 -07:00
configs/circuitpython spresense: update Spresense SDK to 2.0.2 2021-01-25 18:40:14 +01:00
mkspk run code formatting script 2021-03-15 19:27:36 +05:30
spresense-exported-sdk@2ec2a15383 spresense: update Spresense SDK to 2.0.2 2021-01-25 18:40:14 +01:00
supervisor run code formatting script 2021-03-15 19:27:36 +05:30
tools run code formatting script 2021-03-15 19:27:36 +05:30
.gitignore Add .gitignore 2019-10-11 12:11:48 +02:00
Makefile Merge MicroPython v1.11 into CircuitPython 2021-04-26 15:47:41 -07:00
README.md spresense: update Spresense SDK to 2.0.2 2021-01-25 18:40:14 +01:00
alloca.h Change port name to cxd56 2019-10-11 08:23:51 +02:00
background.c modifications by pre-commit 2021-03-15 18:11:00 -05:00
background.h supervisor: factor supervisor_background_tasks from sundry ports 2020-07-15 11:49:44 -05:00
fatfs_port.c run code formatting script 2021-03-15 19:27:36 +05:30
mpconfigport.h spresense: Fix USB CDC and MSC 2021-05-18 17:02:16 +02:00
mpconfigport.mk count in/out endpoints; allow more usb modules on low-endpoint boards 2021-05-13 21:59:02 -04:00
mphalport.c Fix up Spresense build. It doesn't sleep. 2020-03-17 14:21:45 -07:00
mphalport.h run code formatting script 2021-03-15 19:27:36 +05:30
qstrdefsport.h Merge MicroPython 1.13 into CircuitPython 2021-05-04 18:06:33 -07:00

README.md

CircuitPython port to Spresense

This directory contains the port of CircuitPython to Spresense. It is a compact development board based on Sonys power-efficient multicore microcontroller CXD5602.

Board features:

  • Integrated GPS
    • The embedded GNSS with support for GPS, QZSS and GLONASS enables applications where tracking is required.
  • Hi-res audio output and multi mic inputs
    • Advanced 192kHz/24 bit audio codec and amplifier for audio output, and support for up to 8 mic input channels.
  • Multicore microcontroller
    • Spresense is powered by Sony's CXD5602 microcontroller (ARM® Cortex®-M4F × 6 cores), with a clock speed of 156 MHz.

Currently, Spresense port does not support Audio and Multicore.

Refer to developer.sony.com/develop/spresense/ for further information about this board.

Prerequisites

Linux

Add user to dialout group:

$ sudo usermod -a -G dialout <user-name>

Windows

Download and install USB serial driver

macOS

Download and install USB serial driver

Build instructions

Pull all submodules into your clone:

$ git submodule update --init --recursive

Build the MicroPython cross-compiler:

$ make -C mpy-cross

Change directory to cxd56:

$ cd ports/cxd56

To build circuitpython image run:

$ make BOARD=spresense

USB connection

Connect the Spresense main board to the PC via the USB cable.

Flash the bootloader

The correct bootloader is required for the Spresense board to function.

Bootloader information:

  • The bootloader has to be flashed the very first time the board is used.

  • You have to accept the End User License Agreement to be able to download and use the Spresense bootloader binary.

Download the spresense binaries zip archive from: Spresense firmware v2-0-002

Extract spresense binaries in your PC to ports/spresense/spresense-exported-sdk/firmware/

To flash the bootloader run the command:

$ make BOARD=spresense flash-bootloader

Flash the circuitpython image

To flash the firmware run the command:

$ make BOARD=spresense flash

Accessing the board

Connect the Spresense extension board to the PC via the USB cable.

Once built and deployed, access the CircuitPython REPL (the Python prompt) via USB. You can run:

$ screen /dev/ttyACM0 115200