2016-08-19 23:24:04 -04:00
|
|
|
# SAMD21x18
|
|
|
|
|
2016-10-14 15:13:29 -04:00
|
|
|
This port brings MicroPython to SAMD21x18 based development boards including the
|
2016-10-14 16:01:59 -04:00
|
|
|
Arduino Zero, Adafruit Feather M0 Basic and Adafruit M0 Bluefruit LE.
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-08-23 19:47:53 -04:00
|
|
|
## Building
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-10-14 15:13:29 -04:00
|
|
|
To build for the Arduino Zero:
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-10-14 15:13:29 -04:00
|
|
|
make
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-10-14 15:13:29 -04:00
|
|
|
To build for other boards you must change it by setting `BOARD`. For example:
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-10-14 16:01:59 -04:00
|
|
|
make BOARD=feather_m0_basic
|
2016-08-23 19:47:53 -04:00
|
|
|
|
|
|
|
Board names are the directory names in the `boards` folder.
|
|
|
|
|
|
|
|
## Deploying
|
|
|
|
|
|
|
|
### Arduino Bootloader
|
2016-08-24 03:14:11 -04:00
|
|
|
If your board has an existing Arduino bootloader on it then you can use bossac
|
2016-10-03 12:57:06 -04:00
|
|
|
to flash MicroPython. First, activate the bootloader. On Adafruit Feathers you
|
|
|
|
can double click the reset button and the #13 will fade in and out. Finally,
|
|
|
|
run bossac:
|
2016-08-23 19:47:53 -04:00
|
|
|
|
2016-10-14 16:01:59 -04:00
|
|
|
tools/bossac_osx -e -w -v -b -R build-feather_m0_basic/firmware.bin
|
2016-08-23 19:47:53 -04:00
|
|
|
|
|
|
|
### No Bootloader via GDB
|
2016-08-24 03:14:11 -04:00
|
|
|
This method works for loading MicroPython onto the Arduino Zero via the
|
|
|
|
programming port rather than the native USB port.
|
2016-08-23 19:47:53 -04:00
|
|
|
|
2016-08-24 03:14:11 -04:00
|
|
|
Note: These instructions are tested on Mac OSX and will vary for different
|
|
|
|
platforms.
|
2016-08-23 19:47:53 -04:00
|
|
|
|
|
|
|
openocd -f ~/Library/Arduino15/packages/arduino/hardware/samd/1.6.6/variants/arduino_zero/openocd_scripts/arduino_zero.cfg
|
|
|
|
|
|
|
|
In another terminal from `micropython/atmel-samd`:
|
|
|
|
|
|
|
|
arm-none-eabi-gdb build-arduino_zero/firmware.elf
|
|
|
|
(gdb) tar ext :3333
|
|
|
|
...
|
|
|
|
(gdb) load
|
|
|
|
...
|
|
|
|
(gdb) monitor reset init
|
|
|
|
...
|
|
|
|
(gdb) continue
|
|
|
|
|
|
|
|
## Connecting
|
2016-10-14 15:13:29 -04:00
|
|
|
|
|
|
|
### Serial
|
|
|
|
|
2016-08-24 03:14:11 -04:00
|
|
|
All boards are currently configured to work over USB rather than UART. To
|
|
|
|
connect to it from OSX do something like this:
|
2016-08-23 19:47:53 -04:00
|
|
|
|
|
|
|
screen /dev/tty.usbmodem142422 115200
|
|
|
|
|
2016-08-24 03:14:11 -04:00
|
|
|
You may not see a prompt immediately because it doesn't know you connected. To
|
|
|
|
get one either hit enter to get `>>>` or do CTRL-B to get the full header.
|
2016-10-14 15:13:29 -04:00
|
|
|
|
|
|
|
### Mass storage
|
|
|
|
|
|
|
|
All boards will also show up as a mass storage device. Make sure to eject it
|
|
|
|
before referring to any files.
|