This newsletter is now 2 years old! Happy Birthday!
We started this newsletter 2 years ago, thank you everyone who has contributed as it makes the community a great place to share and celebrate all the code, projects, people, and more together! We now have the complete archives from the last 2 years available as well – https://www.adafruitdaily.com/category/circuitpython/
CircuitPython snakes its way to SparkFun Pro nRF52840 Mini
One of our goals with making a great open-source platforms is for not only the community to learn from, use, and extend, but also for other companies that do open-source hardware and software to use and extend. We are thrilled to see CircuitPython on the SparkFun Pro nRF52840 Mini – Bluetooth Development Board – DEV-15025.
“The board comes pre-programmed with a USB bootloader. You can develop programs for the nRF52840’s Cortex-M4 using either Arduino, CircuitPython, or C (using Nordic’s nRF5 SDK), and load that compiled code using a USB serial or mass-storage interface.”
We asked Jim, “Why CircuitPython for the nRF52840?”
“I’m so excited to see what projects our community develops using the nRF52840. With an ARM Cortex-M4, a 2.4GHz radio, and built-in USB, the nRF52840 is a powerful, versatile hardware platform. The platform’s support for CircuitPython doubles my excitement, as it expands the hardware’s reach across the map – from students and teachers to web-developers and engineers.” -Jim Lindblom, Engineer, SparkFun
Check out the nRF52840 Development with Arduino and CircuitPython guide and it’s worth noting a lot of the advances in development for dev boards is a result of the open-source UF2 bootloader.
The Adafruit Feather nRF52840 will be shipping soon! We’ve previewed it a few times on our weekly show and here in the Python on hardware newsletter. We have some changes to the software and some final testing on the hardware to do first, you can expect it in the Adafruit store soon.
More snakin’ – CircuitPython snakes its way to Particle mesh
Here is an initial “port” for the Particle mesh devices to run CircuitPython by Bernhard Boser – GitHub. To get going, use a Segger J-link to install Adafruit’s bootloader, clone https://github.com/bboser/iotpython, run make V=1 BOARD=particle_mesh SD=s140 in ports/nrf, press the reset button twice in rapid succession, then copy firmware.uf2 to the disk.
Interview with Professor Bernhard Boser
We reached out to Professor Bernhard Boser for some more information about the port and more. Here is our interview conducted over email.
Who are you and what are you up to?
I’m a professor at UC Berkeley, designing chips. Presently mostly gyroscopes and a chip for intraoperative detection of tumors (means a device that tells the surgeon where the cancer cells are). More on my perpetually outdated website.
What is EE 49: Electronics for IoT?
I used microcontrollers right when they were invented (Intel 4004). They were amazing then, but we never would have imagined what they can do today. The “vision” for EE49 is to put microcontrollers programming into the hands of “everyone” (or whoever sees a use, but certainly not just engineers), a bit like everyone uses computers.
Teaching the class gives me a chance to play with all this cool stuff. It’s a lot of fun for me, and the students with their questions and ideas are always a great motivation.
Why use CircuitPython, etc.?
You did most of the hard work. Documentation and libraries are fantastic. Credit also goes to Damien George who started the MicroPython project and efforts like Arduino.
What is Iot-Python?
Today, not much. The goal is to play with a few additional capabilities of microcontrollers. A first goal is to make it easier to build battery powered applications. A very early prototype, eventio, manages to blink LEDs (or grab sensor data) and monitor GPIO pins while automatically putting the processor into low-power deep sleep mode most of the time. Next step will be adding I/O (BLE, sockets, MQTT, AWS, perhaps mesh networks). We’ll see where this goes.
Hopefully some of this will be useful and ultimately incorporated into CircuitPython or similar setups.
CircuitPython on Linux and Orange Pi & more libgpiod
There are tons of projects, libraries and example code for CircuitPython on microcontrollers, and thanks to the flexibility and power of Python it’s pretty easy to get it working with micro-computers like Orange Pi or other ‘Linux with GPIO pins available’ single board computers. CircuitPython will be instantly and easily runnable on Linux computers like Orange Pi AND (thanks to libgpiod and Armbian) we now have CircuitPython GPIO/i2c/SPI/UART for over 110+ CircuitPython libraries – Adafruit Learning System. Watch the video here – YouTube.
Linux Piter #4 was November 2nd to 3rd of 2018, Bartosz Golaszewski presented on the new GPIO interface for Linux user space, libgpiod – PDF.
News from around the web!
“CircuitPython is becoming a thing!” – Hackaday.
Android CircuitPython Editor by foamyguy on hackaday.io uses a USB OTG cable with Android devices for Serial, REPL, and a basic code editor for use with CircuitPython boards. It can be used to see the print() outputs for debugging, or enter the REPL to execute Python commands on the board. Using the REPL, it can read and write the code and other files stored on the board – GitHub.
HASS-circuitpython-air-quality-sensor-node, a CircuitPython board with various air quality sensors, powered over serial (USB) and piping data into Home-Assistant using JSON strings – GitHub.
CircuitPython tutorial videos by John Gallaugher were created for Fall 2018 “Digital Technologies: Strategy and Use”. Students had one in-class session on CircuitPython. They then were dispatched to create their own “Show and Tell” projects for the end of the semester. The goal was to provide a gentle programming introduction, introduce hardware concepts, work with sensors, and provide a context for understanding the implications of “fast-cheap computing”, as well as standards and open-source hardware. Videos include: CPX CircuitPython Lesson 1 Setup and Install, CPX CircuitPython Lesson 2 Pixels, dot notation, and arrays, CPX CircuitPython Lesson 3 REPL, Loops, Brightness, CPX CircuitPython Paint the Rainbow, CPX Plotting with Mu, CPX conditionals if, else, elif, MakerSnack Prepping Sound Files for CircuitPython and the CPX, and MakerSnack CircuitPython Sound Board.
From Electronic Cats – CatWAN USB Stick now supports CircuitPython, use LoRa now with Python! Available on tindie.
Contribute to CircuitPython with Git and GitHub. From fork to merge, we have a guide and @tannewt made a video.
CircuitPython driving a SSD1331 connected the display to a nRF52840 development kit by arturo – Twitter.
Super cool looking CircuitPython based keyboard with Cherry MX keys on an Adafruit Feather by Jason Burns – Instagram.
Circuit Playground Express controlling continuous servos to drive a robot, GitHub & video.
Hackaday logo PCB + CircuitPython on an Adafruit Trinket M0 running the NeoPixels and LEDs by Chad Vavra – Instagram.
Getting MicroPython to run on a NUCLEO-L432KC STM32L4 series MCU by boochow, part of the MicroPython Advent Calendar.
This is a really cool looking WiFi Embroidery system using MicroPython on an ESP8266 by cyberlab.
py-esp32-ulp is an assembler toolchain for the ESP32 ULP (Ultra Low-Power) coprocessor, written in MicroPython – GitHub.
Python library for Seeedstudio Grove devices & Raspberry Pi – GitHub.
ChipWhisperer is an open source toolchain dedicated to hardware security research – GitHub.
wtfpython is a collection of surprising Python snippets and lesser-known features – GitHub.
ASCII renderer using Python – GitHub.
Good interview with Guido van Rossum, who is the creator of Python. The video is part of the Artificial Intelligence podcast and the MIT course 6.S099: Artificial General Intelligence – YouTube. Guido talks about his early years making electronics kits.
Converts bdf font files into C include files – GitHub.
Open Source is Not About You by Rich Hickey – GitHub.
NES-style CSS Framework – NES.css.
Using Bluetooth Low Energy with Amazon FreeRTOS on Espressif ESP32 – Amazon.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? adafruit/Adafruit_Python_DHT And a bonus stat, the most popular blog post on Adafruit for the month of November 2018 was “Time to say goodbye to @Arduino and go on to Micropython / @Adafruit #CircuitPython ? by @spiessa”
CircuitPython Weekly for December 3rd, 2018 on diode.zone – YouTube – notes.
PyDev of the Week: Erika Fille Legara from Mouse vs Python.
Scott (@tannewt) livestreamed reviewing CircuitPython driver changes on Twitch. YouTube – diode.zone.
Python on hardware history
A look back to some early Python on hardware.
PyMite is a flyweight Python interpreter written from scratch to execute on 8-bit and larger microcontrollers with resources as limited as 64 KiB of program memory (flash) and 4 KiB of RAM. PyMite supports a subset of the Python 2.5 syntax and can execute a subset of the Python 2.5 bytecodes. PyMite can also be compiled, tested and executed on a desktop computer – PyMite wiki, Google Code Archive, and python-on-a-chip mailing list.
tinypy – 64k tinypy “batteries not (yet) included” was release in 2008 by Phil Hassey. tinypy is a minimalist implementation of python in 64k of code – tinypy.org & GitHub.
If we missed any early Python on hardware projects, let us know!
Made with Mu
Yay! A new Mu is coming! Mu 1.1 will have new features including new modes, new capabilities and new ways to configure Mu. Some of the new modes have been kindly written by new contributors. The new capabilities and ways to configure Mu are based upon valuable feedback from folks in the community – Read more “The Road to Mu 1.1”.
Here’s a super handy mu 101/mu cheat sheet for year 10 students in the UK by Jon Mayland – Twitter.
Here’s a “draft” previews of one we are working on for CircuitPython in Mu – Twitter.
Raspberry Pi has a great Getting Started with the micro:bit on mu guide – projects.raspberrypi.org.
Try out Mu – codewith.mu
Awesome updates on awesome-circuitpython
awesome-circuitpython is a curated list of awesome CircuitPython guides, videos, libraries, frameworks, software and resources. Lots of updates, the latest include: added newsletter archive list, added the latest boards that run CircuitPython from Adafruit, Sparkfun, and Digi-Key python section, added video newsletter podcast playlists, added the Adafruit HalloWing M0 express in hardware, added the CircuitPython libraries in code, added CircuitPython in MicroSolutions Digital Magazine, The Amp Hour #383 in news, and added CircuitPython Development Workshop in books. Did we miss anything? Make the awesome list more awesome by adding to it! – awesome-circuitpython.
New Learn Guides!
GPS Tour Guide from Noe and Pedro
Christmas Soundboard with NeoTrellis from Dano Wall
Updated Guides – Now With More Python!
You can use CircuitPython on Raspberry Pi! We’re updating all of our CircuitPython guides to show how to wire up sensors to your Raspberry Pi, and load the necessary CircuitPython libraries to use them with Python. We’ll be including the updates here so you can easily keep track of which sensors are ready to go. Check it out!
RGB LCD Shield
Adafruit 16×2 Character LCD + Keypad for Raspberry Pi
CircuitPython support for hardware continues to grow. We are adding support for new sensors and breakouts all the time, as well as improving on the drivers we already have. As we add more libraries and update current ones, you can keep up with all the changes right here!
For the latest drivers, download the Adafruit CircuitPython Library Bundle.
If you’d like to contribute, CircuitPython libraries are a great place to start. Have an idea for a new driver? File an issue on CircuitPython! Interested in helping with current libraries? Check out this GitHub issue on CircuitPython for an overview of the State of the CircuitPython Libraries, updated each week. We’ve included open issues from the library issue lists, and details about repo-level issues that need to be addressed. We have a guide on contributing to CircuitPython with Git and Github if you need help getting started. You can also find us in the #circuitpython channel on the Adafruit Discord. Feel free to contact Kattni (@kattni) with any questions.
You can check out this list of all the CircuitPython libraries and drivers available.
The current number of CircuitPython libraries is 115!
Here’s this week’s new CircuitPython libraries:
Here’s this week’s updated CircuitPython libraries:
May 2019 Cleveland, Ohio! The PyCon 2019 conference, which will take place in Cleveland, is the largest annual gathering for the community using and developing the open-source Python programming language. It is produced and underwritten by the Python Software Foundation, the 501(c)(3) nonprofit organization dedicated to advancing and promoting Python. Through PyCon, the PSF advances its mission of growing the international community of Python programmers – PyCon.
CircuitPython Workshops: Chicago in December
Hackerspace Pumping Station: One has an embedded meetup every other Monday called Not Exclusively Raspberry Pi (NERP). NERP is hosting a CircuitPython workshop on 17 December 2018 starting at 7 pm. This is a beginner level workshop, using Circuit Playground Express, to learn CircuitPython. Keep an eye on the meetup event for registration details.
CircuitPython Project Night is happening on 20 December 2018 from 6:30p to 8:30 pm in Chicago with the Chicago Area Python Users Group, ChiPy. It’s a beginner level workshop using Circuit Playground Express to learn CircuitPython. Seating is limited, so if you’re interested, registration is open.
CircuitPython’s stable release is 3.1.1 and its unstable release is 4.0.0-alpha.3. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20181203 is the latest CircuitPython library bundle.
v1.9.4 is the latest MicroPython release. Documentation for it is here.
3.7.1 is the latest Python release.
611 Stars Like CircuitPython? Star it on GitHub!
Call for help – CircuitPython messaging to other languages!
We recently posted on the Adafruit blog about bringing CircuitPython messaging to other languages, one of the exciting features of CircuitPython 4.x is translated control and error messages. Native language messages will help non-native English speakers understand what is happening in CircuitPython even though the Python keywords and APIs will still be in English. If you would like to help, please post to the main issue on GitHub and join us on Discord.
We made this graphic with translated text, we could use your help with that to make sure we got the text right, please check out the text in the image – if there is anything we did not get correct, please let us know. Dan sent me this handy site too.
jobs.adafruit.com has returned and folks are posting their skills (including CircuitPython) and companies are looking for talented makers to join their companies – from Digi-Key, to hackaday, Microcenter, Raspberry Pi and more. This week’s featured job is COMMUNITY MANAGER for Hackaday.io. The Hackaday.io community has over 300k members and 35k+ projects. They are currently looking for part-time community managers in San Francisco, New York, Chicago, and other locations – jobs.adafruit.com.
The Adafruit Discord community where we do all our CircuitPython development in the open, has over 9,152 humans, thank you! Join today! https://adafru.it/discord
ICYMI – In case you missed it
The wonderful world of Python on hardware! This is our video-newsletter-podcast that we’re trying out! The news comes from the Python community, discord, Adafruit communities and more. It’s part of the weekly newsletter here, then we have a segment on ASK an ENGINEER and the podcast is the video slice from that! The latest video is a recap of last week’s newsletter. The complete Python on Hardware weekly VideoCast playlist is here.
The CircuitPython Weekly Newsletter is a CircuitPython community-run newsletter emailed every Tuesday. The complete archives are here. It highlights the latest CircuitPython related news from around the web including Python and MicroPython developments. To contribute, edit next week’s draft on GitHub and submit a pull request with the changes. Join our Discord or post to the forum for any further questions.