ICYMI (In case you missed it) – Tuesday’s Python on Microcontrollers Newsletter from AdafruitDaily.com went out.
If you missed it, subscribe now! – You’ll get one fab newsletter each Tuesday (before this post Wednesday).
The next newsletter goes out in a week and being subscribed the best way to keep up with all things Python for hardware. No spam, no selling lists, leave any time.
Over 6,800 subscribers worldwide!
Python powered badges at the Hackaday Supercon
Here are some of the details about the BrainCraft EDGE BADGE that appears at Supercon this year, brought to you by Digi-Key and Adafruit! This is IN ADDITION to the 2019 Hackaday Superconference Badge – a FPGA Running RISC-V Core in a Game Boy form factor. Machine learning has come to the ‘edge’ – small microcontrollers that can run a very miniature version of TensorFlow Lite to do ML computations. But you don’t need super complex hardware to start developing your own TensorFlow models! We’ve curated a simple kit to dip your toes into machine learning waters. This Supercon badge can also be a name badge that is programmed with CircuitPython! It shows up as USB drive, no IDE needed! Displays name, QR codes, and more! Supercon attendees receive:
- Adafruit BrainCraft EDGE BADGE with SAMD51 Cortex M4F processor @ 120MHz, with integrated display, speaker and buttons.
- A Lithium Ion Polymer Battery with Short Cable – 3.7V 350mAh, double sided tape, and lanyard!
The kit uses our BrainCraft EDGE BADGE as your edge processor. It’s a compact board – it’s credit card sized. It’s powered by one of our favorite chips, the ATSAMD51, with 512KB of flash and 192KB of RAM. We add 2 MB of QSPI flash for file storage, handy for TensorFlow Lite files, images, fonts, sounds, or other assets. It comes with built in microphone input for micro speech recognition. Our Arduino library has some demos you can get started with to recognize various word pairs like “yes/no”, “up/down” and “cat/dog” and other voice demos. Also includes gesture recognition, and more! TensorFlow Lite for microcontrollers is very cutting-edge, so expect to see a lot of development happening in this area, with lots of code and process changes.
- Microchip ATSAMD51J19 @ 120MHz with 3.3V logic/power – 512KB of FLASH + 192KB of RAM
- 2 MB of SPI Flash for storing images, sounds, animations, whatever!
- 1.8” 160×128 Color TFT Display connected to its own SPI port
- 8 x Game/Control Buttons with nice silicone button tops (these feel great)
- 5 x NeoPixels for badge dazzle, or game score-keeping
- Triple-axis accelerometer (motion sensor)
- Light sensor, reverse-mount so that it points out the front
- Built in buzzer mini-speaker
- Mono Class-D speaker driver for 4-8 ohm speakers, up to 2 Watts
- LiPoly battery port with built in recharging capability
- USB port for battery charging, programming and debugging
- Two female header strips with Feather-compatible pinout so you can plug any FeatherWing in
- JST ports for NeoPixels, sensor input, and I2C (you can fit I2C Grove connectors in here)
- Built in microphone.
- Reset button
- On-Off switch
MyIgnite – Application Dev Keynote with Scott Hanselman
AND THERE’S MORE!
Device Simulator Express, a Microsoft Garage project is open source!
“Make without limit! Device Simulator Express, a Microsoft Garage project, allows you to code in CircuitPython for your awesome Circuit Playground Express (CPX) projects! Test and debug your code on the device simulator and see the same result when you plug in your actual microcontroller. Curious about the output of the device, the serial monitor allows you to observe the device output.”
Read more on GitHub.
Brian Clark also showed off the Circuit Playground Express at MS Ignite.
Winterbloom Sol by Alethea Flowers
Winterbloom Sol is a modular synthesizer (Eurorack) module, and CircuitPython powered! It is a multi-purpose, scriptable USB MIDI to CV/gate converter. Its code can be modified, while in use, to change how it processes MIDI data into CV and gate outputs. Sol is not yet available for purchase, however, you may contact the creator for more details.
Python is now the #2 language on GitHub
Top languages over time from the State of Octoverse – GitHub.
“for the first time, Python outranked Java as the second most popular language on GitHub by repository contributors.”
New MicroPython Beginner Workshop
MicroPython has a new Beginner Workshop! Based around the ESP32 and the readily-available Wemos shields (no breadboard, no wires!), this workshop aims to get beginners started using MicroPython on hardware as soon as possible and with a low entry cost. AUD$25 for the microcontroller, RGB LED shield, cable and small box.
MicroPython recently presented this workshop material for the first time to a dozen PyLadies in Melbourne and we all had a blast making LEDs flash, bending OLEDs to our will and blaring the Mario tune out of buzzers! The PyLadies were fantastic students and we’re already looking forward to a second workshop.
If you’d like to run a workshop based on this material – or purchase beginner kits – please reach out to Matt who’ll help you get started. Pull requests are always welcome and if you’re keen to contribute to the material please do so!
Thanks to Deshipu for a hand getting started; the structure is based on Deshipu’s (still excellent!) MicroPython on ESP8266 Workshop.
It features an asynchronous architecture, has SSL/TLS support, supports web routes, web sockets and a template system – it’s certainly feature-packed! One of the best features? Great documentation! MicroWebSrv2 is one of the best ways to embed a web server in MicroPython.
Zoltán Vörös recently released his ulab library for MicroPython. As featured in the Hackaday article Numpy comes to MicroPython, ulab is a numpy-like module for MicroPython, accelerating many mathematical operations on embedded devices. Zoltán started the library wanting fast FFT operations but it’s now expanded to include optimised linear and matrix operations, manipulation of polynomials and statistical functions. As well as being a powerful library, it also features thorough documentation.
Fast math operations in the embedded Python space have been a common request for some time, now we’ve got something to build upon! Read more in the MicroPython forum.
MicroPython Developer Documentation
During Zoltán’s efforts creating uLab, Zoltán also submitted some excellent MicroPython developer documentation. Focusing on creating your own C user modules for MicroPython, it covers topics such as how to pass parameters across the language boundaries, error handling and profiling. This should be bookmarked by anyone interested in extending MicroPython with C!
Sponsoring Bunnie on GitHub
Bunnie is an open source hardware and an activist for digital rights and freedoms. Bunnie’s work is primarily funded by the goodwill of the community, through donations, pledges and private contracts. Currently, Bunnie has two big community projects:
- NeTV2, an open source video platform which is a basis of the lawsuit against the US government to challenge section 1201 of the DMCA.
- Betrusted, an open source mobile communications device that aims to keep your private matters safe from advanced threats. It is designed for easy verification of correct construction and transparency.
Some of Bunnie’s other current and past open source hardware projects include Chibitronics, Novena, Chumby, The Cubegarden, and the Safecast Geiger Counter Reference Design. Bunnie is also the author of The Hardware Hacker, Hacking the Xbox (now free to download), and The Essential Guide to Electronics in Shenzhen.
“An educational toy… No, really. That’s why I created it. That and to have something to break the ice at tech conferences that I go to. My badge is inspired by the Adafruit Circuit Playground Express, has some Adafruit HalloWing elements thrown in, plus a cheap OLED and the #BadgeLife SAO connector.”
micro:bit magazine issue 6 is out!
Issue 6 of the unofficial micro:bit magazine is out. Build a low cost robot, learn about Python Editor V2 and so much more!
- Free Download: go.micromag.cc/issue6
- Buy in print: go.micromag.cc/issue6print
- Subscribe to 4 issues: go.micromag.cc/4issuesub
Go check it out!
News from around the web!
Helen posted up this video of a ZSK Technical Embroidery Systems demo. This is a 100% machine embroidered (including stitching the board in place) capacitive touch keyboard using a Circuit Playground Express – Twitter.
CircuitPython makes things so easy to rapid prototype, even more so with the FT232H – GitHub.
South Doyle Robotics and KnoxSchools CompSci using Circuit Playground Express – Twitter.
Kevin is working on another Augmented Reality project. Step one is working! Ironman helmet using Circuit Playground Express and NeoPixels – Twitter.
How is Arturo’s CircuitPython powered Serpente doing? Let’s check out one of the reviews posted – Twitter.
Machine Learning Comes to #BadgeLife with Adafruit’s EdgeBadge – hackster.io
USB-C PYcARD (Jean-Luc) – Python + Arduino on card – hackaday.io
Circuit Playground used for encouraging deep breathing – Twitter.
Snek: A Python-Inspired Language for Tiny Embedded Computers by Keith Packard – YouTube.
Python developers survey 2019, last year there were 20,000 responses! Go fill it out, there are also prizes!
This is an interface board for the Binho host adapter so it will work with any Adafruit Feather form-factor device. I2C, SPI, and UART interfaces are all wired up – binho.io
bitluni posted about making ESP32 game consoles. This project is a simple custom shield for the Adafruit Huzzah32 Feather microcontroller board. It provides two SNES connectors, an SD card slot and RCA connectors for audio/ color PAL video – YouTube.
Writing a PEG parser for fun and profit” – Guido van Rossum, North Bay Python 2019 – YouTube.
10 things not to miss at the Arm AIoT Summit, including the Python powered badges! – Arm.
“Python already replaced Excel in banking” – efinancial.careers
Giant board updates! – Crowd Supply.
Off-Grid Cyberdeck! The Raspberry Pi Recovery Kit – back7.co
pymanoid: Humanoid robotics controller prototyping environment based on OpenRAVE – GitHub.
ESP8266 Hardware Design Guidelines – Espressif.
OpenTitan – Open sourcing transparent, trustworthy, and secure silicon – Google.
BOOK REVIEW: “Arcade Game Typography” by Toshi Omagari. Arcade Game Typography is “notably the only book on video games which comprehensively covers typeface”, Omagari says on page 8. Omagari restricted his research to the most common character set: the 8×8 pixel format and even so still managed to review around 4,500 games! To make the process of documenting the fonts more smooth, Omagari wrote a Python script to convert images into fully functional typefaces (266). Read the rest on Adafruit.
Bangle.js is powered by Espruino. It’s an open source watch which has: Free Apps, GPS, Compass, Accelerometer, Heart Rate, Pedometer, Touch – banglejo.com. We backed it on Kickstarter and we have a few leads on nRF52840 watches that we’re checking out.
blot is blog system that just uses files and has no interface – blot.im
Fast and Free Music Separation with Deezer’s Machine Learning Library – waxy.org
Accurate and Low-Latency Sensing of Touch Contact on Any Surface with Finger-Worn IMU Sensor – YouTube.
Accepting PEP 602 – Annual Release Cycle for Python – Python.org
The size of space – Made by Neal.
PyDev of the Week: Vuyisile Ndlovu on Mouse vs Python
It’s not out yet, but we did send PCBs off to fab…the PyPortal Titano has a 3.5” 320×480 TFT for 2x the pixels, USB C connector, and a CryptoAutho chip included. It’s the same good PyPortal fun but BIGGER! THE BEEFIEST one yet!
Just to be clear, Steak-umm agrees – Twitter.
WHO WATCHES THE WATCHMEN? We usually do on Sundays.
Adafruit Feather STM32F405 Express with Digi-Key.
New Learn Guides!
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!
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 the CircuitPython.org Contributing page. We’ve included open pull requests and issues from the libraries, 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 195!
Here’s this week’s new CircuitPython 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:
What’s the CircuitPython team up to this week?
This week I’ve been finishing up guides for the new MPU-6050 and LSM303AGR which were both released this past week. I’m now working by on the drivers for a new IMU, the LSM6DSOX from ST.
Ha Thach and I have been specifying BLE services for the Circuit Playground Bluefruit. We will implement these services in both Arduino and CircuitPython. A new Bluefruit Connect app is under development that will use services instead of the Bluefruit Connect UART-based protocol. I did an existence proof for services, testing Scott’s new BLE library in the process.
In the near future, Scott and I will review and update the new BLE library, release it, and then release a CircuitPython alpha.6 or beta.0 that is compatible with the new library. The current Learn Guide BLE examples will be updated to use the new API.
I have done a lot of PR reviewing in the past few days, especially additions to the STM32F4 port being done by Hierophect. Expect to see additional functionality added to the STM32 port in each upcoming CircuitPython release.
This past week, I finished updating the WS2801 12mm LED Pixel guide. I updated the existing pages to match the newer style of more recent guides and added CircuitPython and Python sections. You can check out that guide here.
After that, I wrote a displayio driver for the SSD1305 displays and started working on updating guides for the SSD1305 which works in both SPI and I2C. You can find the driver here, releases or look for it in the CircuitPython Bundle.
I will be preparing for Hackaday SuperCon 2019, so if you’re going, look for me there.
This week has been hardware testing and guide updates. I updated the Adafruit MicroLipo and MiniLipo Battery Chargers guide to include the new MicroLipo charger with USB Type C. The USB-C MicroLipo charger has a special feature – we exposed the data lines so it can be used as a USB-C breakout as well as a MicroLipo charger! As such, we included a pinouts page to cover the pins available on the board.
I tested the VC0706 TTL serial camera on Raspberry Pi with CircuitPython and Adafruit Blinka. The guide has been updated with CircuitPython code for Raspberry Pi and other computers to make it super easy to start snapping photos with your TTL serial camera. I tested the MPR121 Pi HAT on Raspberry Pi – it works perfectly, with no changes needed to the code. The guide has been updated to include the Pi HAT.
The 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 & hackaday.io
Arm AIoT Dev Summit, Mountain View, California, USA December 2 – 3, 2019. The Arm AIoT Dev Summit is a developer-focused conference that provides a platform for you to exchange knowledge, discuss real-world use cases and solutions, and get hands-on with expert-led, deep-dive training and workshops.
Adafruit hardware will be there!
Along with like-minded developers, data scientists, and innovators, you will experience technologies enabling the Internet of Things (IoT), Artificial Intelligence (AI) and robotics. Get your hands on free hardware worth up to $500 arm.com/AIoT-Dev-Summit
April 15-23, 2020, Pittsburgh, Pennsylvania, USA – The PyCon 2020 conference, which will take place in Pittsburgh, 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 2020.
20191111 is the latest CircuitPython library bundle.
3.8.0 is the latest Python release.
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.
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 14,891 humans, thank you! Join today! https://adafru.it/discord
Discord now offers “server boosts”. We have 30 on our server (level 3!), unlocking some good features for the community: +100 emojis for a total of 250, 384 Kbps audio, a vanity URL, 100 mb uploads for all members (and all the things we have now, like the server banner). Stop by and boost! 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.
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.
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.
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.