Releases: adafruit/circuitpython
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.
0.8.3 - More fixes
Another week, another beta. Thanks to everyone who has tried it so far! Shout out to jerryn from the Adafruit forum and @tdicola for finding bugs. Thanks to them, this release includes a number of useful fixes:
- all: Correct the pull kwarg to
nativeio.DigitalInout.switch_to_input
. - all: Correct setting the
pull
property onnativeio.DigitalInOut
. - samd: Correct getting the
pull
property onnativeio.DigitalInOut
. - samd: Support reading multiple analogIn channels.
- samd: Correct neopixel timing by switching the flash cache to take the same amount of time regardless of hit or miss.
To install, download a .bin file and follow the guide here.
0.8.2 - Standalone Bugfix
Fix a bug that is only critical when USB data is not connected.
To install, download a .bin file and follow the guide here.
Full explanation
reset_samd21()
ensures peripheral and pin state but was only done after the first main run. Without this reset, pin state is unknown and risks generating a ValueError exception due to pin in use. With USB data, the autoreset causes a reset and everything works. Without it, CircuitPython stays in the pre-repl error state.
0.8.1 - Newer Foundation
Thanks for the great response to the beta everyone! Here is a new release to test. Its got much of the same CircuitPython code as before but has been upgraded to MicroPython 1.8.7 code and GCC 6.2. So, please test it out and let us know what you think.
To install, download a .bin file and follow the guide here.
The Vagrantfile has also been updated to use the new GCC. To update it, save all the code you care about out of the vm, destroy it, pull and re-up the vm.
Changes:
- Merge in MicroPython 1.8.7
- Switch to GCC 6.2 (arm 2016q4 release)
- Change 0RX style pin names to two names, D0 and RX on some boards.
- Remove the
framebuf
. It made the binaries too large with all of the extra functionality added in 1.8.7. (jerryn from the forum pointed out that you can compile on your own with terse error messages and framebuf on.)
CircuitPython Beta 0.8.0
This is the first CircuitPython branded release of Adafruit's MicroPython derivative. CircuitPython's goal is to make hardware as simple and easy as possible. We renamed to CircuitPython to avoid confusion with upstream MicroPython. We have also reset the version numbering and will note the upstream version each release is based on.
This release is based on MicroPython v1.8.6.
Differences from upstream MicroPython:
- Port for Atmel SAMD21 (Commonly known as M0 in product names.)
- No
machine
API on Atmel SAMD21 port. - Only supports Atmel SAMD21 and ESP8266 ports.
- Unified hardware API:
nativeio
,microcontroller
,board
,bitbangio
(Only available on atmel-samd21 and ESP8266 currently.) - No module aliasing. (
uos
andutime
are not available asos
andtime
respectively.) - Modules with a CPython counterpart, such as
time
, are strict subsets of their CPython version. Therefore, code from CircuitPython is runnable on CPython but not necessarily the reverse. - tick count is available as
time.monotonic()
os
only available asuos
- atmel-samd21 features
- RGB status LED
- Auto-reset after file write over mass storage. (Disable with
samd.disable_autoreset()
) - Wait state after boot and main run, before REPL.
- Main is one of these: code.txt, code.py, main.py, main.txt
- Boot is one of these: settings.txt, settings.py, boot.py, boot.txt
v1.8.5-20161020 Release
This is a second beta release of Adafruit MicroPython firmware. Changes include:
- Sync with upstream micropython/master v1.8.5 code.
- Documentation improvements to support automated doc generation from code.
- urandom pseudo-random number generation module enabled.
- framebuf framebuffer module enabled.
- SSD1306 driver removed and put in separate GitHub repository (also fixed to work with hardware I2C interfaces): https://github.com/adafruit/micropython-adafruit-ssd1306
- feather_m0_adalogger board definition added based on feather_m0_basic. Future work coming to support the SD card with SPI, etc.
See this guide to learn how to load and use the firmware: https://learn.adafruit.com/micropython-for-samd21
First Beta Release
This is the first beta release of MicroPython support for Adafruit educational development boards. All APIs are in flux so expect some things to change in the future.
- Supports Arduino Zero
- Basic support for all Feather M0s through the
feather_m0_basic
firmware. - Supports ADC, DAC, I2C and SPI through
machine
. (Soon to change) - Supports REPL over USB.
- Runs
boot.py
andmain.py
from internal flash on reset. - Loading to internal flash supported via Mass Storage over USB. Make sure to eject and do not write to the file system from Python at the same time.
To use, load using bossac when the board's bootloader is active (double click to activate):
bossac_osx -e -w -v -b -R adafruit-micropython-feather_m0_basic-1.8.4-20161014.bin
v1.8.3-62-g09be96a
Add basic file system support.
>>> import os
>>> os.listdir()
['main.py', 'README.txt', 'boot.py']
See here for flashing instructions. These releases support SAMD21x18 boards including the Arduino Zero (available from Adafruit) and Adafruit Feather M0 Bluefruit LE.