This is a big one. Core DMA work led to SPI speedups for both the user and SPI flash. This enables playing sound files from flash too.
We're gaining more users and they inspired more polish on the CircuitPython interaction including renaming reset to reload, redefining the file execution order and safe mode. Thank you to everyone who has tried it so far.
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.7:
- atmel-samd: Change the order that files are run and the state thats shared between them. This diverges from MicroPython! The goal is to clarify the role of each file and make them independent from each other.
boot.py
(orsettings.py
) runs only once on start up before USB is initialized. This lays the ground work for configuring USB at startup rather than it being fixed. Since serial is not available, output is written toboot_out.txt
.code.py
(ormain.py
) is run after every reload until it finishes or is interrupted. After its done the vm and hardware is reinitialized. This means you cannot read state fromcode.py
in the REPL anymore. This was changed to reduce confusion about pins and memory being in use.- After
code.py
the REPL can be entered by pressing any key. It no longer shares state withcode.py
so its a fresh vm. - Autoreload state will be maintained across reload.
- atmel-samd: Introduce a safe mode that does not run user code after a hard crash or brown out. The hope is that this will make it easier to fix code that causes nasty crashes by making it available through mass storage after the crash. A reset (the button) is needed after its fixed to get back into normal mode. Thanks to @cyborg5 for the hammering on CircuitPython and providing the inspiration for this.
- atmel-samd: Introduce audioio.AudioOut which can play raw data arrays or wav files on SPI flash.
- atmel-samd: Use DMA for long SPI transfers both from the user and for the SPI flash. Speeds up flash reads ~10x. Thanks to @robomike for being the guinea pig.
- atmel-samd: Fix spurious SyntaxErrors. #124 Thanks to @jerryneedell and @dhalbert for the initial debugging.
- atmel-samd: Rework pin reset so that the default state for the SWD lines is SWD rather than GPIO. This makes OpenOCD happy.
- atmel-samd: Rename auto-reset to auto-reload to reduce confusion with physical reset buttons.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
Have a Feather M0 Express or Metro M0 Express? Download a .uf2 and follow these instructions. To install our libraries simply download the latest bundle and copy the lib
folder onto your CIRCUITPY
drive.