2016-08-19 23:24:04 -04:00
|
|
|
# SAMD21x18
|
|
|
|
|
|
|
|
This port is intended to be a full featured MicroPython port for SAMD21x18 based
|
|
|
|
development boards including the Arduino Zero, Adafruit Feather M0 and Adafruit
|
|
|
|
M0 BLE.
|
|
|
|
|
2016-08-23 19:47:53 -04:00
|
|
|
## Building
|
2016-08-19 23:24:04 -04:00
|
|
|
|
|
|
|
The Makefile has the ability to build for a SAMD21x18, and by default
|
2016-08-24 03:14:11 -04:00
|
|
|
includes some start-up code and also enables a UART for communication. To
|
|
|
|
build:
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-08-23 19:47:53 -04:00
|
|
|
make CROSS=1
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-08-24 03:14:11 -04:00
|
|
|
It will build for the Arduino Zero by default. You may change it by setting
|
|
|
|
`BOARD`. For example:
|
2016-08-19 23:24:04 -04:00
|
|
|
|
2016-08-23 19:47:53 -04:00
|
|
|
make CROSS=1 BOARD=feather_m0_ble
|
|
|
|
|
|
|
|
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-03 12:57:06 -04:00
|
|
|
tools/bossac_osx -e -w -v -b -R build-feather_m0_ble/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-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.
|