Releases: adafruit/circuitpython
0.10.0 - Beta Express
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.
0.9.7 - Shh Don't Tell
The Metro M0 Express is coming, don't tell anyone. ;-)
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.6:
- atmel-samd: Tweaks for Metro M0 Express.
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.
0.9.6 - Fresh Bugs
Who knew there would still be more bugs to fix? :-P Thanks to everyone who has found and reported issues. We really appreciate the feedback. In fact, we now auto-build every commit to the repository and make it available for testing here. So, if you feel like finding fresh bugs give an auto-build a try. :-)
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.5:
- atmel-samd: HID Mouse support fixed by @dhalbert.
- atmel-samd: Disabled
pulseio
(PWMOut
,PulseIn
andPulseOut
) in non-express builds in favor of touch. - atmel-samd: Switched to FreeTouch for touch support and enabled in all builds.
- esp8266: Fixed bidirectional SPI thanks to @jerryneedell.
- atmel-samd: Fix potential buffer overflow when providing start index to I2C and SPI read/write functions.
- atmel-samd: Turn on built-in
framebuf
module for express boards.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
Have a Feather 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.
0.9.5 - Bug Bash
After the big nativeio
split it was time for some bug bashing. The biggest feature is the ability to use the NeoPixel on the Feather M0 Express.
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.4:
- Support NeoPixel sharing on Express boards. Simply use it as normal and the underlying system should share it.
- Fix serial receive on Huzzah Breakout, Feather Huzzah was OK.
- Fix PulseIn timing issues for DHTxx and IR support.
- Fix PulseIn reset issues that could hard fault the board.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
Have a Feather M0 Express? Download a .uf2 and follow these instructions.
0.9.4 - The Great Rename
This will likely break your code! Please read carefully and make sure you are using up-to-date libraries.
Well, I'm home from my great European adventure and things will pick back up quickly. I'm kicking it off by splitting nativeio
into smaller modules so boards and ports can pick and choose which to provide. This will allow for built-in functionality to better match the board. For example, ESP8266 no longer needs to provide nativeio.TouchIn
because touch is split into touchio
which it can omit.
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.3:
- Split
nativeio
intoanalogio
,digitalio
,busio
,pulseio
, andtouchio
. Class APIs are the same. busio.I2C
on ESP8266 now works as expected by bitbanging I2C.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
Have a Feather M0 Express? Download a .uf2 and follow these instructions.
0.9.3 - Maxim One Wire
Just a quick update (from Dublin!) featuring the Maxim (formerly Dallas Semi) one wire protocol.
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.2:
- Add
nativeio.OneWire
for low-level timing sensitive one wire support. Higher level protocol bits will be in Python. This is most commonly used in inexpensive temperature sensors. - Tweak auto-reset messaging to account for case where user code turns it off.
- Polish up Feather M0 Express board definitions.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
0.9.2 - Infrared
This release contains two new additions to nativeio
in preparation for new hardware and a few tweaks. Things continue to be a bit slower than normal as I wrap up the last two weeks of travel.
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.1:
- Change keyword argument to PWMOut constructor for duty cycle from
duty
toduty_cycle
to match the attribute. - esp8266: Turn off
framebuf
to save flash space. Use the Python implementation when needed. - Turn on stack checking so that infinite recursion fails gracefully.
- atmel-samd: Add
PulseIn
andPulseOut
support for infrared transmit and receive.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
0.9.1 - More than expected
Welp, I thought we were approaching a state of more bug fixes and fewer features but then I decided to improve the Python slice
object and ran out of flash space on the "local" boards. So, I went looking for some bytes and managed to free up ~5000 bytes using link time optimization (LTO)! Everything has worked well for me so far but it'd be good to get some soak time on LTO.
This release is based on MicroPython 1.8.7.
Change highlights since 0.9.0:
- Switch on link time optimization for "local" boards. "Express" boards will get it once GCC is fixed.
- Add experimental USB HID mouse and keyboard support and a helper driver to go with it.
- Add
indices()
support toslice
s and turn on named attributes on slices. - Lots of bug fixes too!
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
0.9.0 - Barcelona
I've been traveling over a week now and I'm in Barcelona! Over that time I've done a bunch of polish work, especially on the ESP8266 port, and gotten the 1.0 issues list down to 2. We're getting closer and closer. Almost everything between now and 1.0 will be polish instead of large features. Please file issues for any problems you find.
This release is based on MicroPython 1.8.7.
There are a couple breaking changes since 0.8.4 to be aware of:
- Enum like values in
DigitalInOut
andUART
are now all CAPS instead of lowercase. They also now print their value instead of just their class. - Only 800khz NeoPixels are now supported. 400khz are rare and we needed the flash space.
Other non-breaking changes since 0.8.4:
- Tweaked
nativeio.SPI
to better support SD cards. - atmel-samd: Fix I2C init when it errors. Thanks @deshipu for finding the bug
- Changed sys.implementation to 'circuitpython' and corrected version output at @deshipu's suggestion
- ESP8266: Fixed a number of bugs and unified the run process with the atmel-samd port.
- Pin objects are now printed as their
board
ormicrocontroller.pin
name rather than<Pin>
. - Added note on
webrepl_setup
at @fede2cr's suggestion.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.
0.8.4 - European Vacation
Hi all, thought I'd release a new beta before my European vacation. I will be checking in periodically but things may be a bit sporadic for a little while.
This release is based on MicroPython 1.8.7.
Changes since 0.8.3:
- all:
PWMOut
supports different frequencies. - all: Renamed
duty
PWMOut
constructor argument toduty_cycle
to match property. - all: Published new design guide for contributions.
- SAMD21: Newly created filesystems are now called
CIRCUITPY
. - SAMD21: Correct USB sleep time. (A sleep of 2 seconds was actually 2.7. Whoops!)
- SAMD21: Cleanly reset the ADC and DAC.
- SAMD21: Various pinout fixes.
- SAMD21: Dim the status LEDs so they are less blinding.
To install, download a .bin file and follow the guide here for M0 and here for ESP8266.