Make: Magazine – Tech Trend #1: The Push for Python
Make: Vol. 68 April / May 2019 is here – Guide to Boards! Highlights include CircuitPython, Adafruit boards and more. Cover features: Metro Express, Feather and Circuit Playground, as well as FEATHER-compatible Particle and multiple Linux boards that can run BLINKA (CircuitPython for Linux).
In Make: Tech Trend #1: The Push for Python. Make’s overview of Python support for electronics, including Adafruit hardware and more, by Sam Brown.
“Were seeing a raft of Python-friendly boards in this year’s round-up of new microcontrollers. Leading the charge is Adafruit. In the last year, they’ve launched Python-friendly “Express” versions of their top boards, from the tiny Trinket to the student-friendly Circuit Playground to the Arduino-like Metro and mega-sized Grand Central, and plenty more sizes in-between. Whatever your project, Adafruit came out with a Python-capable board to match.”
MicroPython – Pyboard D-series goes on sale
The pyboard D-series is a compact, powerful and low-power microcontroller module that runs MicroPython and it now shipping- MicroPython & documentation. Congrats to MicroPython, Damien, and the entire team!
IEEE Spectrum – Scott Shawcroft is Squeezing Python into Microcontrollers
Scott Shawcroft Is Squeezing Python Into Microcontrollers – IEEE Spectrum.
“CircuitPython’s development is spearheaded by Scott Shawcroft, of the open-source hardware company Adafruit Industries. … “[Adafruit’s] audience is people who have never programmed in their lives,” says Shawcroft, explaining that CircuitPython makes it easy to get a simple project running. “I love folks just being able to jump right in.”
Adafruit Circuit Playground Express 4-H edition approved
“4-H grows confident kids with life skills to thrive in today’s world & succeed in their boldest dreams tomorrow.” About a year ago Adafruit started the process of working with 4-H to have an official 4-H branded version of Circuit Playground Express. We applied and were notified in mid-March we were accepted! This means millions of kids are one step closer to Python on hardware.
4-H, as well as kids around the USA and the world, have been using Circuit Playground Express with CircuitPython – including specific projects that combine the goals of organizations like 4-H with the ease of use for learning to code with Adafruit and Circuit Playground.
In November of 2018, the National 4-H Youth Maker Summit used Adafruit Circuit Playground Express.
…and soon we’ll have even more specific 4-H projects and products.
This is a special time for us at Adafruit, a lot of folks helped getting all the things necessary before, during, and after the application process as well as helping with the projects and more over the last year together. Thank you: Alaina, Betsy, Caroline, David, Dorothy, Evan, Freeman, Jen, Josh, Mike, Sara, Tara, Teddy, the USDA, and a few more that we’ll add here if we forgot anyone!
And lastly, thank 4-H for being such an important part of so many young people’s lives. Article: 4-H, electronics, makers, holland lops, silkie chickens & more – Adafruit.
CircuitPython Blinka support for the NVIDIA Jetson series
There is now Adafruit Blinka support for the NVIDIA Jetson series! Low-cost and powerful AI and more. A big thanks to Andy for the pull request. This much-requested addition unlocks the over-130 CircuitPython libraries we’ve written for everything from LoRa radios, to servo drivers, OLED displays, and more, all using Python 3 for I2C/SPI/GPIO. A great addition to these powerful single board computers! Please try it out with the latest Blinka 1.2.5 and open up an issue or PR if you find a bug – GitHub.
Issue 17 – HackSpace magazine LumiDrive LED Driver … Python control for LEDs, CircuitPython powered
HackSpace magazine has a review of the SparkFun LumiDrive LED Driver … Python control for LEDs and it gets high marks, 9 out of 10! – PDF.
The LumiDrive is a board for controlling APA102 (aka DotStar) RGB LEDs with CircuitPython. It’s powered by a SAMD21G-AU microcontroller, and has a built-in LiPo battery charger… This board comes set up with CircuitPython, and there’s currently no ability to program it in another language. There’s a guide to getting started with the language on this board at: hsmag.cc/NJcfuF. CircuitPython is a great language for getting started, and it allows you to really quickly add some interactive lights to your build.
Disrupt It Yourself podcast – PyPortal
Adafruit PyPortal: GUI meets CircuitPython in a Big Way – An episode of Disrupt It Yourself – Spotify.
News from around the web!
Dan made a JPEG to BMP converter for PyPortal in PHP. In less than 10 lines of code, the PHP program reads the URL and desired width of the image, requests the JPEG image from the supplied URL on the PyPortal’s behalf, scales down to fit on the PyPortal display, then converts it to BMP and sends it to the PyPortal. Picture is from an AI generated cat page – ThisCatDoesNotExist.com
yswallow/CPKF: Keyboard Firmware written in CircuitPython – GitHub via Twitter.
HalloWing Snake – This is a very simple game for Adafruit’s HalloWing M0 Express board, demonstrating use of the new
displayio mode from CircuitPython 4.0. To play, you have to make sure you have flashed at least version 4.0 beta 5 of the CircuitPython firmware. Then just copy the
main.py file over to the CIRCUITPY drive and enjoy. Touch the teeth to steer the snake, and try to eat as many apples as you can without biting yourself – GitHub.
MakerMelissa got the CircuitPython displayio running on an Adafruit Mini TFT FeatherWing with joystick, a driver is in progress – Twitter.
CircuitDungeon is attempt to make a simple dungeon game for CircuitPython devices with screens, like the HalloWing and PyPortal, using Creative Commons licensed artwork – GitHub.
PyPortal project: Stars on the initialstate beer fridge project – GitHub.
Enabling users to set line spacing for multi-line labels – GitHub. Which is part of this great project: an Internet of Things Office Door Sign using Adafruit’s PyPortal – GitHub.
Sophy Wong Talks Circuit Playground Express on Cool Tools – YouTube.
MST3K robot crew, including a CircuitPython powered one with CRICKIT! – Twitter.
RevokArticle50 petition count on PyPortal – Twitter & post with code.
Mark is working on a badge using PyPortal that uses IFTTT to display tweets – Twitter.
Here’s a tool to test battery capacity with Circuit Playground Express, CircuitPython and an INA3221 for up to 3 batteries (typically Li-* batteries). The circuit uses an INA3221 triple current sensor to measure battery voltage and current draw during a discharge cycle. Measurements are logged into the file system as CSV files which can then be imported in Excel in order to make graphs or perform additional calculations – GitHub.
circuitpython-braille is a braille Keyboard and Monitor made in CircuitPython – GitHub.
Ayan Pahwa’s talk at FOSSASIA Summit 2019 in Singapore is now online – YouTube via Twitter.
Embedded system or firmware programming can be very intimidating for beginners and often they tend to drop it very soon, thanks to connecting wires across a breadboard and writing bits and bytes to processor registers using bit shifting and logical operations. Enter MicroPython and CircuitPython which let’s you program microcontrollers using everyone’s favourite Python programming language, no toolchain, cross compiler, assembler required. The code lives on your board itself and every lower level detail is abstracted. And if you think you can just blink LEDs with it, you just imagined tip of the iceberg. You can actually track the current location of International Space Station and turn on an alarm when it is passing above you. Quite Interesting hah, there is so much we can do with it and it’s not scary. The talk included an introduction , an example project showcase. and included basic hands-on experience.
Killed by Google – The Google Graveyard & Cemetery. This is a PyPortal version of the site killedbygoogle.com. We checked out the GitHub and saw there was a JSON file that anyone can do pull requests for and add past products. I used the JSON file for the PyPortal to make a desktop display to view all the past Google products – YouTube & post with code.
Meowbit looks like a new MicroPython and MakeCode compatible board, Chinese language – GitHub & Video.
Meowbit is a programming game console compatible with the micro:bit 40 pin interface (which is compatible with almost all micro:bit expansion boards on the market) for learning MakeCode graphical programming and MicroPython programming.
PYNQ-Z2 Python FPGA board looks pretty interesting. The TUL PYNQ-Z2 board, based on Xilinx Zynq SoC, is designed for the Xilinx University Program to support PYNQ (Python Productivity for Zynq) framework. PYNQ project webpage – pynq.io & information page.
Demo video for Web Device CLI to work with the Nordic nRF52840 and maybe getting CircuitPython to work as well – Twitter & GitHub.
We’ll try to verify this for sure, however – according to Ronald at the IndyPyAutomateConf on Twitter – “MicroPython officially launched April 12th, 2015! It’s almost 4 years old now.”
The USB Sidekick (USk) provides USB HID keyboard and mouse services to another device that lacks USB hardware. The USk accepts AT commands and translates them into USB keyboard and mouse events – GitHub.
MicroPython May Be Powering Your Next Embedded Device – DesignNews.
Japanese Magazine Interface will have an article on speeding up MicroPython – boochow.com
Progress on MicroPython to work on SiFive HiFive 1 board – Twitter.
MicroPython / micro:bit, MakeCode Chinese language blog – micropython.org.cn
MetroSnek — snek on Metro M0 Express – keithp.com
The WiPhone project is an open source mobile phone which makes HD voice calls, for free, over WiFi. It’s hackable, modular, cheap, and open. It’s crowdfunded, so… we’re not sure how real it is yet – a.wiphone.io
Washing Machine Notifier, a simple device to notify you that your laundry is done, made with MicroPython – hackaday.io
ESP32 Debugger Experiments – GitHub.
Matt tweeted over the March 25 Linktastic, a collection of recent MicroPython links from the Melbourne MicroPython Meetup, a monthly meetup for MicroPython Enthusiasts – melbournemicropythonmeetup.github.io
Fast HSV to RGB Conversion. When small CPUs need to do work – vagrearg.org
Repl.it GFX: Native graphics development in the browser – repl.it
The Best Python Podcasts round up, including some of our selections – Adafruit.
Python tips and tricks from the Mail.ru Group corporate blog – habr.com
Why Are There So Many Pythons? A Python Implementation Comparison – toptal.com
Python Comprehensions: A step by step Introduction – pythoncheatsheet.org
Jarvis – Program that responds dynamically, as JARVIS might. If nothing else, it’s a build-your-own Siri – GitHub & YouTube.
Yes, Python is Slow, a rant on sacrificing performance for productivity by Nick Humrich.
What the mock? — A cheat sheet for mocking in Python – Yeray Diaz.
Python for Reverse Engineering #1: ELF Binaries – Sector:433.
Python 3.4.10 & Python 3.5.7 release.
Fedora 31 will be removing packages depending on Python 2 – Fedora Wiki.
5 Reasons why Python is Powerful Enough for Google – codefellows.org
roast.vim is an HTTP client for ViM, that can also be used as a REST client – GitHub.
Packagr, a secure private Python package and dependency management – packagr.app
asciinema is a free and open source solution for recording terminal sessions and sharing them on the web – asciinema.org
AWS DeepRacer League – A global autonomous racing league, open to anyone. Next Race: Santa Clara, March 27th, 2019 – aws.amazon.com.
GitHub Education: student-tested, peer-reviewed, and now published by the Association of Computing Machinery – GitHub & PDF.
Suminagashi (floating ink) is a Japanese paper and cloth marbling technique. The procedure is to transfer ink of alternating colors with brushes to a water surface. After warping the initial ring structures by either blowing or fanning air onto the surface, the marble structure is transferred to a paper by just putting it on the water. suminagashi.py contains a Python function that tries to reproduce the suminagashi process – GitHub.
CircuitPython Weekly for 25 March 2019 is available here on YouTube.
PyDev of the Week: Miro Hrončok from Mouse vs Python
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? 50+ micro satellites loaded with CircuitPython for a hackathon.
Made with Mu
Mu 1.1-alpha.1 is almost ready for release – GitHub via Twitter.
Want to try it now? Every commit to master a new app package is created for Mu, these are not official releases, they are for the purposes of our testing. You can find the automatically built installers here – mu-builds.
UPDATE: During the writing of this newsletter Mu 1.1.0 alpha was released, yay! Go try it!
Why Mu? Mu tries to make it as easy as possible to get started with programming but aims to help you graduate to “real” development tools soon after. Everything in Mu is the “real thing” but presented in as simple and obvious way possible. It’s like the toddling stage in learning to walk: you’re finding your feet and once you’re confident, you should move on and explore! Put simply, Mu aims to foster autonomy. Try out Mu today! – codewith.mu
If you’re familiar with HyperCard and/or Choose Your Own Adventure books, this will be a blast from the past, now in Python form – YouTube.
Making an Internet of Things scale with PyPortal – Adafruit & YouTube.
AirLift is a ESP32 co-processor breakout board.
Rumors! The Espressif “Chip 7” WiSoC may support 5GHz WiFi. John Lee from Espressif Systems tweeted a photo, so we’re all guessing now – Twitter. Hackaday has a post from a recent visit and check out the podcast – Hackaday.
New Learn Guides!
PyPortal Smart Thermometer with Analog Devices ADT7410, Adafruit IO and CircuitPython from Brent Rubell
IoT Motion and Temperature Logger with the Analog Devices ADXL343 + ADT7410 Sensor FeatherWing and Adafruit IO from Brent Rubell
PyPortal Email Display with Zapier and Adafruit IO from Brent Rubell
A Logger for CircuitPython from Dave Astels
Adabox011 from John Park
Using the Slamtec RPLIDAR on a Raspberry Pi from Dave Astels
RA8875 Touch Display Driver Board from M. LeBlanc-Williams
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 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 139!
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:
PyBerlin this week, March 28, 2019 – Calliope mini integration with MicroPython with Jørn Alraun – Twitter.
Happening April 26th and 27th, 2019 in Chicago IL, this will be the first and largest gathering of hardware developers using KiCad. Talks at the conference will span hardware design, revision control, scripting, manufacturing considerations, proper library management and getting started developing the underlying tools. All talks have been listed on the conference site. Additionally, there will be contests, roundtable discussions with the developers and hands-on demos to deepen knowledge of hardware design and using KiCad.
Is this a conference only for current users of KiCad? No! Attendees will learn general concepts around PCB design, hardware creation and developing products for the market. Attendees include hardware and software developers from around the world, including members of the core KiCad development team out of CERN in Switzerland.
Attend this unconventional conference to learn more about how to build your next hardware project using open source, extensible tools. Join industry figures (and sponsors) like Digi-Key, Adafruit, Supplyframe and Bantam Tools. Interact with manufacturing experts from OSHpark, Royal Circuits, Aisler and SnapEDA. Meet and get to know others in the hardware community, who regularly are creating new hardware for fun and profit – kicad-kicon.com
Speaking of KiCad… some big news from Digi-Key – Digi-Key Announces Supplier-Driven KiCad Library.
Many of the CircuitPython team members will be on a hackchat on hackaday.io April 3, 2019 at 3pm EDT. We’ll have more details and links once we get them, see you next week!
Digi-Key + Adafruit @ PyCon!
PyCon 2019 returns May 1–9, 2019 to Cleveland, OH, USA – with talks, tutorials, sprints, and more!
Big news! Digi-Key and Adafruit have teamed up for PyCon 2019 so every attendee (about 4,000!) will receive a SPECIAL EDITION Circuit Playground Express, running … CircuitPython.
This effort is to get Python on hardware to the most folks out there, at the events that bring people together.
This is just one of many efforts we’re teaming up with Digi-Key to continue to fuel all the developers from beginners to pro, using Python on microcontrollers.
What else is happening? The CircuitPython team will be running several Open Spaces sessions (as they did last year), showing how to use CircuitPython on the Digi-Key / Adafruit PyCon special edition Circuit Playground Express. We’ll have extra add-ons to play with also: potentiometers, NeoPixel strips, and servos. The team will be running a CircuitPython Sprint for several days to work on CircuitPython libraries and CircuitPython core code. BYOMUSB “Bring your own Micro USB” cables, we’ll have some to borrow during the sprints/sessions, as well as some USB C adapters, it is a good idea for you to bring one too!
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.
We will have a lot more updates, stay tuned to the Adafruit blog, Twitter, Discord, and more!
CircuitPython’s stable release is 3.1.2 and its unstable release is 4.0.0-beta.5. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20190325 is the latest CircuitPython library bundle.
v1.10 is the latest MicroPython release. Documentation for it is here.
3.7.2 is the latest Python release. The latest pre-release version is 3.8.0a2.
1114 Stars Like CircuitPython? Star it on GitHub!
circuitpython.org help make it together!
Downloads are now available from circuitpython.org! This site makes it much easier to select the correct file and language for your board. The downloads page is here. We could use some help with filling in the text for the various boards.
Call for help – CircuitPython messaging to other languages!
We 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. We’re seeing more jobs for CircuitPython, so post up if you’re looking or seeking!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 11,306 humans, thank you! Join today! https://adafru.it/discord
ICYMI – In case you missed it
The wonderful world of Python on hardware! This is the 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.
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.