View this email in your browser.
CircuitPython snakes its way to the STM32
CircuitPython snakes its way to the STM32! Here’s a preview of us testing analog input on ST32F4 port of CircuitPython using Mu. Did you know we’re working on STM32 support for CircuitPython? Its slowly coming together! Here’s the STM32F412 Discovery board from ST, running a simple sketch to test analog inputs. We use Mu to edit the Python code on the device and the plotter makes testing easy, twist & look! – YouTube.
Download the very first builds from CircuitPython.org! They are available for the STM32F411 Discovery and the STM32F412 Discovery.
CircuitPython 5.0.0 Alpha 4 released!
CircuitPython 5.0.0-alpha.4 was released over the weekend and includes initial support for the STM32, adds I2SOut for the nRF52840 and a number of other fixes. If you are one of the lucky folks who has a CircuitPlayground Bluefruit, we recommend updating now to get a couple board specific fixes. Download the release from CircuitPython.org/downloads!
Serpente – A Tiny CircuitPython Prototyping Board
The Serpente boards are low-cost development boards designed to be used with Adafruit’s CircuitPython. They are both virtually the same, except for the USB connector. The standard Serpente board contains a USB Type-C connector, and the Serpente Plug uses the board itself as a Type-A USB plug. If you are familiar with the Digispark boards, you may notice some similarities. This fact is of course not incidental, the Serpente boards are inspired by the Digispark, both in form-factor as well as use-cases. The Serpente boards are meant to be used as quick and dirty, yet flexible, prototyping tools – Tindie & Twitter.
machXOprog – Program Lattice MachXO2/3 with CircuitPython
machXOprog is a CircuitPython library that allows updating the internal flash in a MachXO2/3 device through I2C with a CircuitPython board – GitHub via Twitter.
Hanselminutes Technology Podcast – Learning CircuitPython with Scott Shawcroft
Hanselminutes Technology Podcast – Fresh Air and Fresh Perspectives for Developers – Learning CircuitPython with Scott Shawcroft:
“CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards. The history of CircuitPython begins with MicroPython, a Python interpreter written from scratch for embedded systems by Damien George starting in 2013. Three years later, Adafruit hired Shawcroft to port MicroPython to the SAMD21 chip they use on many of their boards. The Scott talks about how to lower the barrier to entry and how to enable beginners to be productive with CircuitPython.”
Listen in! And please subscribe! Hanselminutes Technology Podcast is on iTunes, Spotify, Google Play, Twitter, or download the MP3. Share on Twitter and Facebook. Also, see their survey!
14,000 thank yous
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 14,028 humans, thank you! Join today! https://adafru.it/discord
Call for Proposals for PyCon 2020 is open!
Call for Proposals for PyCon 2020 is open –
“We need beginner, intermediate, and advanced proposals on all sorts of topics as well as beginner, intermediate, and advanced speakers to present talks. You don’t need to be a 20-year veteran who has spoken at dozens of conferences. On all fronts, we need all types of people. That’s what this community is comprised of, so that’s what this conference’s schedule should be made from.”
The S in IoT stands for security
The running joke is that the ‘S’ in IoT stands for security…cause its never there. But safety and security is something you will need to think about at all steps of your design process. There’s going to be billions of IoT devices on-line around the world, many of which will be connected to the Internet, and almost all of them will be unmonitored. A 2015 survey by authentication service provider Auth0 found that 85% of IoT developers admitted to being pressured to get a product to market before adequate security could be implemented. And as an engineer, you’re probably used to that pressure to get a product to market, in which case, selling features often get more attention than security.
With more and more of these connected devices being rushed to market, they’ve become a lucrative target. The 2016 Mirai botnet attack used unsecured CCTV cameras that were connected to the Internet to launch a crippling denial of service attack. That one wasn’t even using the cameras to spy on people, it was just using the TCP/IP stack of the embedded linux device to send lots of junk traffic.
Having security as a priority for your engineering and marketing team will not just help you sleep well at night. As we’ve seen with the European GDPR regulations, privacy and security are being legislated. Having poor security will now get you fined and banned in the marketplace. It’s nearly impossible to add security after the fact, so if you want to avoid a devastating recall – listen up and take security seriously.
Watch the full video here – YouTube.
CircuitPython.org updates!
We’re always updating CircuitPython and the libraries. We’ve had CircuitPython 4.0.1 stable out for a while, and recently released 5.0.0-alpha.2 which means it’s time for a new CircuitPython Library Bundle! The 4.x and 5.x bundles are now available for download at circuitpython.org/libraries. We’ve stopped supporting the 2.x and 3.x bundles, but you can always get access to the final builds here – GitHub.
There are now over 77+ boards! Some of the new boards added…
STM32F412 Discovery kit by ST.
Discovery kit for STM32F411 by ST.
PewPew M4 by Radomir Dopieralski.
The Python on Hardware Community Showcase was over the weekend at PyConUk! There were have robots, keyboards, microscopes, more robots and a lot of cool enthusiastic people! – Twitter. Thanks Carlos!
PewPew! Updates!
From the State of PewPew newsletter.
- James Wootton is doing quantum science on the PewPews. James also wrote some other cool games.
- Christian Walther is working on a version of PewPew that uses TinyPico to run.
- PicoPew. A PewPew shield for the TinyPICO.
- Christian Walther and Radomir Dopieralski will run a game programming workshop with PewPews at the Flick the World event in Zürich. It happens on Saturday 31 August and Sunday 1 September at Rote Fabrik. The exact time of the workshops on each of the days is not yet set.
- You can now buy PewPew Standalone fully assembled directly from the factory, or if you prefer Tindie.
- Work continues on PewPew M4, a version of the console with a display, that can run bot PewPew and µGame games. Right now, waiting for the prototype number 4.
News from around the web!
CPX pinouts for the upcoming CircuitPython book in Japan – Twitter. AND check out this great video that promos the book! – Twitter.
Kat Grey’s NeoPixel and Trinket Swords! – Twitter.
Handheld LoRa Joystick For Long-Range Bots – Thingiverse & some Hackkaday coverage.
Laser-Goo is making NOAA Weather Satellite tracker using a CircuitPython powered PyPortal. Currently modifying the ISS tracker code. Tracking NOAA 15. Next up, adding NOAA 18 and 19 and track simultaneously – Twitter.
Kevin is working on a CircuitPython-BLEThermometer… A Simple UART thermometer working with the CircuitPython Circuit Playground Bluefruit – ALPHA – Bluetooth Low Energy device where you type ‘temp’ in the UART console to get the latest temperature from the device in both fahrenheit and celsius – GitHub.
Huh, not sure what this is, Seeed_ArduPy_MagicStick, “Generate common-hal and binding level code for Ardupy.” – GitHub. Maybe a wrapper for Arduino libraries to make them CircuitPython compatible?
Five Minutes With…Yunsup Lee, CTO, SiFive – Embedded Insiders Podcast.
Hack Chat recap! – hackaday.io
micro:bit drone, the Air:Bit – Instagram.
PyGame: A Primer on Game Programming in Python – RealPython.
An example OMI Device with 2 DDR4 memory ports – GitHub.
Jeff’s waveform generator FEATHER wing – Twitter.
MBTA arrival times display for Adafruit PyPortal – GitHub.
Looks like MicroPython is running, or can be run, on the TI-Nspire – TI-Planet.
PyCParser is a C parser and interpreter written in Python with automatic ctypes interface generation – GitHub.
Making a Static Website, 1995 vs. 2019, it’s true and even worse.
Web Development Merit Badges – CSS-Tricks.
gitGraber: monitor GitHub to search and find sensitive data in real time for different online services such as: Google, Amazon, Paypal, Github, Mailgun, Facebook, Twitter, Heroku, Stripe… – GitHub.
AirGesture – Play games without touching keyboard – GitHub.
The 2020 Open Hardware Summit sponsorships are now open, Adafruit is a sponsor.
Speaking of, here are 20 years of open logos and gear logos – Adafruit.
PyDev of the Week: Veronica Hanus – Mouse vs Python.
ICYDNCI! What was the most popular, most clicked link, in last week’s newsletter? The Top Programming Languages 2019 – Python tops the charts with a CircuitPython nod!.
CircuitPython Weekly Meeting for September 16th, 2019 on YouTube and on diode.zone
TEAM CIRCUITPYTHON!
What’s the team workin’ on this week? Let’s see!
Bryan
“This week I wrote the guide for the TLV493D magnetometer as well as the PCT2075 temperature sensor. The PCT2075 also got brand new drivers. It’s a sweet little sensor, good at doing what little it does, which is essentially act like a thermostat, measuring the temperature and letting you know if it goes past a temperature threshold you set. I also built and started testing the latest revision of the large OLED bonnet. It’s working but the drivers need some love to display things properly: I’ll be working on the libraries for the SSD1305 controller chip that the OLED in the bonnet uses to make the best of such a nice display.”
Dan
“I’m continuing to work on BLE bonding in CircuitPython. I’m also in touch with the developers who are adding BLE support to MicroPython. We have complementary ideas and experience that will improve both of our implementations. I’m debugging gamepad support on Windows and on the Xbox Assistive Controller, in conjunction with Bill Binko of ATMakers. When done, this will make the XAC useful for even more folks. I fixed an issue that interfered with using the status NeoPixel on some boards. It was really two bugs in one.”
Lucian
“I’m working through a rework of the internals of pin organization for the STM32 port of CircuitPython, and getting the AnalogIO module up and running. Past that, I’ll be working on doing the same for more complex modules, such as SPI and UART, as well as expanding support across the STM32 line of chips and development boards.”
Jeff
“In the core, I continued to concentrate on audio features. This past weekend, I added I2SOut to the nRF52840 port, and learned a lot about I2S in the process. This has been pulled into the CircuitPython master branch, so boards like the Feather nRF52840 Express and Circuit Playground Bluefruit will be able to use compatible audio devices in CircuitPython 5.0. Image shows three waveforms in the I2S protocol. Top: bit clock. Middle: Left/Right Clock. Bottom: PCM encoded Audio Data.”
“For fun, I created a prototype PCB that bridges between the “USER PORT” (serial port) of the classic Commodore 64 computer and any Feather. Potential uses include developing CircuitPython programs on this unconventional system, creating new interfaces between the C64 and modern I2C / SPI sensors, or even adding wireless capabilities. Image shows a hand holding a purple PCB with large blue USER PORT connector and Feather HUZZAH32 module.”
Kattni
“This week I’ve been working on the Circuit Playground Bluefruit Learn guide. I’ve been testing it against all the Circuit Playground Express code, some of which required small updates to work for both. I discovered a bug in the board definition for the CPB – pin A1 and A5 were assigned to the same pin, so A1 didn’t work as expected. Bugs like this are exactly why I’m testing everything. I also found a library that’s not compatible with the CPB, and got an issue filed there to get that fixed up. For the most part, everything works exactly the same way, which is the expected result. Look for the guide soon!”
Melissa
“This week I just published a new learn guide about getting CircuitPython up and running on the NVIDIA Jetson Nano. You can view the guide here. Now I’m starting a new Learn guide for Nicholas Tollervey’s circup, which is a utility to allow you to keep up to date on the latest CircuitPython libraries. I will also be working on cleaning up a few outstanding Blinka issues and guides.”
Scott
“I’ve wrapped up displayio work for now and have dove into the land of Bluetooth Low Energy. I polished up our old Basic Chat sample app to Swift 5 and begun expanding the BLE library. Next steps are to hook the CircuitPython work up into basic mobile apps.”
Coming soon
A mini PiTFT display with STEMMA QT connector
As displays have gotten smaller and higher res, we’ve seen some really cute mini TFTs. this one is only 1.1″ but has 240×135 pixels, great for a little display. we wrote a kernel driver for it, and with the STEMMA QT connector on the bottom, its ez to connect sensors like this MSA301. Then run python scripts to print out the motion output. Fun! – YouTube.
And there’s more! Tiny TensorFlow! We’re putting our lil miniPiTFT through some tests, this one is running our TensorFlow Lite tutorial for object recognition, and using the 240×165 pixel screen to see inference output. Makes it a little easier to know what the machine is seeing! – YouTube.
We are also trying out Google Assistant on the BrainCraft HAT – YouTube. The BrainCraft HAT we’ve designed has gone through some tests with vision recognition and TensorFlow with great success! Now we’re ready to try it with voice recognition. We installed the free Google Assistant code – took only about 20 minutes to set up – now we can use it as an audio assistant thanks to the onboard microphones and speaker amplifier!
Adam from Sphero stopped by Adafruit last week and we now have a Sphero RVR we’re tinkering around with! Here’s a quick vid of some Monster M4sk eyes on the RVR. – YouTube.
The Adafruit Monster M4sk just happens to fit perfectly in a BOGLIN! – YouTube. What is a BOGLIN??
“Boglins were a series of toy puppets distributed by Mattel. They were created by Tim Clarke, Maureen Trotto, and Larry Mass, and licensed by Seven Towns. The original run of Boglins was released in 1987, coinciding with a “creatures” craze that included Ghoulies, Critters, and Gremlins. Boglins were goblin-themed hand puppets made of flexible rubber and could be manipulated to represent speech and facial expressions. Several series of large and small Boglins were released until 1994, with additional aquatic, Halloween, and baby themed Boglins released later into the line. Small solid ‘Mini-Boglins’ were also produced, akin to the M.U.S.C.L.E. figures also from the 1980s.”
Scott successfully loaded code.py into React Native over BLE – Twitter.
New Learn Guides!
Create Custom APIs for PyPortal from Isaac Wellish
CircuitPython Libraries on Linux and the NVIDIA Jetson Nano from Melissa LeBlanc-Williams
Adafruit TLV493 Triple-Axis Magnetometer from Bryan Siepert
AdaBox 013 from John Park
Updated Guides – Now With More Python!
You can use CircuitPython libraries 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 get going using 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!
Keep checking back for more updated guides!
CircuitPython Libraries!
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 186!
New Libraries!
Here’s this week’s new CircuitPython libraries:
Updated Libraries!
Here’s this week’s updated CircuitPython libraries:
PyPI Download Stats!
We’ve written a special library called Adafruit Blinka that makes it possible to use CircuitPython Libraries on Raspberry Pi and other compatible single-board computers. Adafruit Blinka and all the CircuitPython libraries have been deployed to PyPI for super simple installation on Linux! Here are the top 10 CircuitPython libraries downloaded from PyPI in the last week, including the total downloads for those libraries:
Library |
Last Week |
Total |
Adafruit-Blinka |
1396 |
46767 |
Adafruit_CircuitPython_BusDevice |
863 |
21134 |
Adafruit_CircuitPython_MCP230xx |
430 |
6462 |
Adafruit_CircuitPython_Register |
208 |
7327 |
Adafruit_CircuitPython_ESP32SPI |
203 |
1769 |
Adafruit_CircuitPython_Motor |
165 |
5422 |
Adafruit_CircuitPython_NeoPixel |
157 |
6350 |
Adafruit_CircuitPython_ADS1x15 |
156 |
2854 |
Adafruit_CircuitPython_PCA9685 |
150 |
4830 |
Adafruit_CircuitPython_ServoKit |
131 |
3727 |
Upcoming events!
October is Open Hardware Month @ Open Source Hardware Association.
“October is Open Hardware Month! Check out the Open Hardware Month website. Host an event, find a local event, or certify your hardware to support Open Source Hardware. We are providing resources and asking you, the community, to host small, local events in the name of open source hardware. Tell us about your October event by filling out the form below. Your event will be featured on OSHWA’s Open Hardware Month page (provided you have followed OSHWA’s rules listed on the “Do’s and Don’ts” page).”
Read more, Tweet for speakers in 2020, and Open Hardware Month @ http://ohm.oshwa.org/
PyCon DE & PyData Berlin // October 9 – 13 2019. Main conference, 3 days of talks and workshops. More than 100 sessions dedicated to PyData (artificial intelligence, machine learning, ethics…) and Python topics (programming, DevOps, Web, Django…) – de.pycon.org.
micro:bit Live 2019 is coming to BBC MediaCityUK, Greater Manchester, England on October 4-5. This will be the very first annual gathering of the global micro:bit community of educators and partners – micro:bit.
Hackaday Superconference is November 15th, 16th, and 17th in Pasadena, California, USA. The Hackaday Superconference is returning for another 3 full days of technical talks, badge hacking, and hands-on workshops: [Eventbrite](https://www.eventbrite.com/e/hackaday-superconference-2019-tickets-60129236164?aff=0626com
) & hackaday.io
Latest releases
CircuitPython’s stable release is 4.1.0 and its unstable release is 5.0.0-alpha.4. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20190916 is the latest CircuitPython library bundle.
v1.11 is the latest MicroPython release. Documentation for it is here.
3.7.4 is the latest Python release. The latest pre-release version is 3.8.0b4.
1381 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 – Find a dream job, find great candidates!
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.
14,028 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 14,028 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 first video-newsletter-podcast that we’ve started! The news comes from the Python community, Discord, Adafruit communities and more. It’s part of the weekly newsletter, then we have a segment on ASK an ENGINEER and this is the video slice from that! The complete Python on Hardware weekly videocast playlist is here.
This video podcast is on iTunes, YouTube, IGTV (Instagram TV), and XML.
Weekly community chat on Adafruit Discord server CircuitPython channel – Audio / Podcast edition – Audio from the Discord chat space for CircuitPython, meetings are usually Mondays at 2pm ET, this is the audio version on iTunes, Pocket Casts, Spotify, and XML feed.
And lastly, we are working up a one-spot destination for all things podcast-able here – podcasts.adafruit.com
Codecademy “Learn Hardware Programming with CircuitPython”
Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with the leading manufacturer in STEAM electronics, Adafruit Industries, to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.
Python is a highly versatile, easy to learn programming language that a wide range of people, from visual effects artists in Hollywood to mission control at NASA, use to quickly solve problems. But you don’t need to be a rocket scientist to accomplish amazing things with it. This new course introduces programmers to Python by way of a microcontroller — CircuitPython — which is a Python-based programming language optimized for use on hardware.
CircuitPython’s hardware-ready design makes it easier than ever to program a variety of single-board computers, and this course gets you from no experience to working prototype faster than ever before. Codecademy’s interactive learning environment, combined with Adafruit’s highly rated Circuit Playground Express, present aspiring hardware hackers with a never-before-seen opportunity to learn hardware programming seamlessly online.
Whether for those who are new to programming, or for those who want to expand their skill set to include physical computing, this course will have students getting familiar with Python and creating incredible projects along the way. By the end, students will have built their own bike lights, drum machine, and even a moisture detector that can tell when it’s time to water a plant.
Visit Codecademy to access the Learn Hardware Programming with CircuitPython course and Adafruit to purchase a Circuit Playground Express.
Codecademy has helped more than 45 million people around the world upgrade their careers with technology skills. The company’s online interactive learning platform is widely recognized for providing an accessible, flexible, and engaging experience for beginners and experienced programmers alike. Codecademy has raised a total of $43 million from investors including Union Square Ventures, Kleiner Perkins, Index Ventures, Thrive Capital, Naspers, Yuri Milner and Richard Branson, most recently raising its $30 million Series C in July 2016.
Contribute!
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.