Today we’ve released the first beta version of CircuitPython! CircuitPython is based on the open-sourceMicroPython 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 upcominghardware 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.
[Update: Editor’s note: some of the design ideas for logos and more! -pt]
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
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.
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.