Today we’ve released the first beta version of CircuitPython! CircuitPython is based on the open-source MicroPython which brings the popular Python language to microcontrollers. The goal of CircuitPython is to make hardware as simple and easy as possible. CircuitPython adds support for the SAMD21 processor found on the Arduino Zero and Feather M0s. Furthermore, many APIs including the hardware APIs have been reworked for the SAMD21 and ESP8266. This rework ensures that APIs are consistent across processors and makes it easier to keep documentation up to date with implementation. Lastly, the APIs common with CPython on desktop are strictly a subset which means code written for CircuitPython will work with CPython.
This beta is the precursor to a 1.0 version which will ship on upcoming hardware designed for CircuitPython. A few things may change but the vast majority of the APIs are fixed. We’re focussed on creating awesome libraries and drivers on top of this new foundation to help verify the API design. Any help writing drivers, finding and fixing bugs is appreciated! Please file issues on GitHub and chat with us on Gitter.
To run the beta you need a Feather Huzzah, Arduino Zero or Feather M0. The bin files are available here. Instructions on loading MicroPython and CircuitPython are the same and are available here as a learning guide.
You can also support MicroPython and the creator, Damien George by purchasing official PyBoards at Adafruit as well as MicroPython stickers. Adafruit will soon be shipping CircuitPython boards, stay tuned to our weekly shows for more information and previews!
[Update: Editor’s note: some of the design ideas for logos and more! -pt]
Why fork instead of merging all stuff into micropython?
Good question! Forking allows us to focus on our goal of creating a great experience for people who have never coded before. Upstream MicroPython’s focus seems to be on providing super powerful, in-depth microcontroller access for people with existing microcontroller experience.
These goals complement each other and building each will improve the other. We are tracking upstream releases which will make it easy to share code in both directions.
Woohoo!
How fast does CircuitPython run on the SAMD21? Is it useable? I’ve read that the PyBoard’s super fast chip still runs MicroPython code quite a but slower than an Arduino Uno doing the same task with compiled C code. And, the SAMD21 is about an order of magnitude slower than the PyBoard chip.
SJ, its definitely usable! It just depends on what you are trying to accomplish. Since our focus is teaching people how to code with hardware, speed is not our top concern. For most projects its just fine. However, if you are doing a project that needs speed, then moving to upstream MicroPython and the PyBoard or Teensy makes total sense.