Supercharge your hardware (old and new) with CircuitPython
“A talk by Scott Shawcroft! CircuitPython makes programming hardware easier than ever by bringing the popular Python language to modern, inexpensive 32-bit microcontrollers. This doesn’t need to be limited to modern hardware though. By pairing a modern microcontroller running CircuitPython and a vintage computer, such as a GameBoy or Yamaha piano keyboard, you can unlock the unique characteristics of these vintage devices. In this talk, you’ll learn the basics of how CircuitPython makes coding easy, how it works under the hood, and how to extend CircuitPython with C. As an example, we’ll supercharge a Nintendo GameBoy with CircuitPython. By the end of the talk, you’ll be able to supercharge your own hardware project with CircuitPython. Scott is the project lead for CircuitPython and is sponsored by Adafruit Industries, an open source electronics company. After a number of years at Google working in the cloud, Scott left to learn about electronics on his own. He began freelancing a year later for Adafruit on what became CircuitPython. Now, CircuitPython ships on thousands of electronics every month, introducing new coders to Python on hardware. Scott’s hobby is bringing CircuitPython to as many devices as possible, including those he finds at thrift stores such as GameBoys and Yamaha Keyboards.”
Video is here: YouTube and #teardown2019 on Twitter.
Raspberry Pi 4 Model B is here, BLINKA’ing it now 🙂
The Raspberry Pi 4 Model B (our video here) is the newest Raspberry Pi computer – the Pi Foundation knows you can always make a good thing better! And what could make the Pi 4 better than the 3? How about a faster processor, USB 3.0 ports, and updated Gigabit Ethernet chip with PoE capability? Good guess – that’s exactly what they did!
The Raspberry Pi 4 is the latest product in the Raspberry Pi range, boasting an updated 64-bit quad core processor running at 1.4GHz with a built-in metal heatsink, USB 3 ports, dual-band 2.4GHz and 5GHz wireless LAN, faster (300 mbps) Ethernet, and PoE capability via a separate PoE HAT.
The dual-band wireless LAN comes with modular compliance certification, that’s the metal tin in the corner of the Pi with the logo stamped on it. This allows the board to be designed into end products with significantly reduced wireless LAN compliance testing, improving both cost and time to market.
We are doing our tests now. Expect to see the board on circuitpython.org/blinka at any moment.
CircuitPython Choose Your Own Adventure
This is our new framework to write choose your own adventure style stories! It’s somewhat “HyperCard”-like, so we’ve called it PyperCard 🙂 This concept is from a series of very popular children’s books in the 1980s and 90s. A more modern implementation is the Bandersnatch episode of Netflix’s Black Mirror series. The basic idea is that at various points in the story, the reader is given a choice about how to proceed. Those choices take the reader down different paths, eventually leading to alternative endings. This guide is an introduction to the PYOA application that lets you write and run your own adventures on the PyPortal, complete with images, sounds, text, and choices – learn.adafruit.com
CircuitPython snakes its way to HackSpace Issue 20!
Ben Everard in HackSpace Magazine writes about using CircuitPython to easily turn an Adafruit Circuit Playground Express educational/multifunction board into a USB-connected game controller.
“We’re going to look at a really simple game inspired by Moon Buggy – an old terminal-based Unix game where you’re driving a buggy across the moon, and have to jump over boulders that litter your path. In our game, we’ll use the ten pixels on a Circuit Playground Express to represent our moon, with red pixels indicating rocks, and white pixels representing our buggy as it drives around this tiny planet. Touching one of the pins will be the only input to the game – it will make the buggy jump for one step. If you hit this, you can clear a rock and keep going, otherwise, you crash out and have to start again.”
It takes less than 50 lines of Python to get this game running, here shown in the Mu editor. See the full write-up in Issue 20 of HackSpace Magazine – PDF pages 86 to 87.
CircuitPython-powered Modular NeoPixel patches
Also from HackSpace, Modular NeoPixel patches by Sophy Wong –
“What could possibly be more amazing than hook-and-loop tape? Conductive hook-and loop tape! That’s right, your favourite fastener is available in a silver-coated version that is perfect for making a modular circuit with custom swappable components. In this tutorial, we’ll use it to create modular NeoPixel patches for a jacket. The microcontroller and battery for this circuit will be located in the jacket, and be connected to the loop side of the hook-and-loop tape. NeoPixel LEDs will be sewn into the removable patches. Whichever patch you slap onto your jacket will light up!”
A Gemma M0 microcontroller from Adafruit will control the NeoPixels, and the Gemma is programmed with CircuitPython. You can read Sophy’s full tutorial in Issue 20 of HackSpace Magazine – PDF pages 96 to 97.
Qwiic! Ported to CircuitPython!
Gaston Williams aka Fourstix writes –
“I have ported the Qwiic Joystick, Qwiic Relay and Qwiic Twist Arduino libraries to CircuitPython libraries. All the example programs were also ported, so one can follow along the Sparkfun Arduino tutorials and Hookup Guides with a Raspberry Pi using these CircuitPython classes and the python example code. The Arduino function names were converted to Python following PEP8 style rules. Single value getter/setter methods were converted to Python class properties. For example, joystick.getHorizontal() in Arduino code becomes joystick.horizontal in python code. The Arduino methods relayOn() and relayOff() become relay_on() and relay_off() in python, and so on. These libraries were released to the CircuitPython Community Repository. The source code, examples, installation information and documentation are available on GitHub.”
Qwiic Joystick, Qwiic Relay, and Qwiic Twist are all on GitHub.
CircuitPython – a HUB of… USB things!
We just backed the Programmable USB Hub by Capable Robot Components. A USB hub that’s also a dev board and an I2C, GPIO, and SPI bridge – Crowd Supply.
REMINDER! Survey – Programming microcontrollers with Python!
If you can spare a few minutes, the interns at Microsoft Garage in Vancouver need your input for user testing of a new PythonHardware Visual Studio Code plugin – Microsoft Garage Survey.
“Hello there, we’re a group of interns at Microsoft Vancouver, working in The Garage! We’re looking for insights into your experience around physical computing projects. As well as your interest in trying out a new method of development for your project – say goodbye to waiting for your code to build and compile inside Arduino IDE with C/C++, Python is here to help! This survey will only take 3 – 5 minutes and your insights are very valuable to us!”
#FiveThings You Didn’t Know Python Could Do, Featuring CircuitPython
Nina Zakharenko and Burke Holland on #FiveThings You Didn’t Know Python Could Do – YouTube, featuring CircuitPython:
“Python: a large and terrifying snake OR the third most popular programming language. This week, Python (the language, not the snake) aficionado Nina Zakharenko joins us for Five Things that you didn’t know that Python can do. And don’t worry, there are plenty of snake references and even a free potato joke. Also, Burke finds snake facts on the internet and Nina tries her first Goo Goo Cluster.”
Designing an Adafruit FeatherWing Handheld with a BlackBerry Keyboard
Arturo182’s designing an Adafruit FeatherWing handheld with a BlackBerry keyboard. The device is making the rounds on hackster.io, hackaday, hackaday.io, and more, check out the latest video – YouTube. And a new video was posted over the weekend too “Handheld FeatherWing – Portable Terminal Demo” – YouTube.
If you are interested in the newly dubbed “Keyboard FeatherWing” as a product, Arturo asks you to fill out this survey to help him craft a plan.
Flooding the Zone w/AAC Devices
The latest from ATMakers & video on YouTube:
“This summer, we’re trying something new! We’ve worked with LessonPix Custom Learning Materials and Minor Achievements Learning Center to create a camp where every kid has access to a basic AAC device. We have two types of devices: an Android-based tablet running CoughDrop, and a custom device built on the Adafruit PyPortal intelligent screen.”
8/8/2019 is CircuitPython day!
Mark your cals’ – some CircuitPython day events are coming up!
Getting started programming microcontrollers with CircuitPython by NYC Resistor – August 3, 2019.
CircuitPython Day with the India Linux Users Group Delhi (ILUGD) at the Delhi Technical University for Women – August 4, 2019. Meetup & Eventbrite.
8/8/2019 is CircuitPython day! We’re in the planning stages and will have live videos, celebrations, and more for this very snake friendly date! Here’s some artwork in our public DropBox CircuitPython folder, check it out – DropBox.
If you need to get in touch with us for planning your event and more, email: CircuitPythonDay@adafruit.com
Spotted at Crowd Supply TEARDOWN 2019
Some of the Adafruit team is at Crowd Supply’s event TEARDOWN 2019. Melissa updated the PyBadge for wearin’ around! – Twitter.
Port of Pico-8 Celeste to CircuitPython – Twitter.
Melissa spotted this at Teardown 2019. A board was designed by @tinkrmind and runs CircuitPython. It’s designed around the SAMD21 micro controller. It’s intended to be worn as an earring and can “whisper” a pre-recorded sound in your ear such as a child’s first words – Twitter. It’s called Hearrings, and the project page is here.
This is the Giant Board Linux board in Adafruit’s Feather form factor. It is capable of running CircuitPython! The board is now available for order on Crowd Supply.
Nice collection 🙂 – Twitter.
Better Electronics with Jupyter Notebooks. Presented at Crowd Supply Teardown 2019 – GitHub & Twitter.
@sophywong’s awesome NeoPixel jacket is powered by CircuitPython. It’s running on a Circuit Playground Express and it has a variety of patterns she can choose from – Twitter.
News from around the web!
Tim’s students are learning to code using the Adafruit GEMMA with CircuitPython, and turning on the LEDs when it gets dark, amazing results! – Twitter.
Mini SAM M4 pinout for SAMD51G19 pin assignments, CircuitPython names and general details – Twitter.
Electronic Cats Escornabot Makech supports CircuitPython! Now available in their store – Electronic Cats.
Adafruit PyPortal Review, by Les Pounder –
“Adafruit has a long history of great products and support for makers of all skill sets, and with the release of their PyPortal, we see their range of devices increase with something a little different. From what is the Adafruit PyPortal and its specs to how to use the Adafruit PyPortal, here’s a comprehensive PyPortal review!”
Kevin Walters is generating high rate samples for the DAC on the Circuit Playground Express (CPX) board to convert bitmaps into a raster type image on an old skool, crt-based oscilloscope, a trusty Telequipment S51B – YouTube.
A CircuitPython project for folks in open office environments – GitHub.
Hardware and software countdown projects using CircuitPython – GitHub.
CircuitPython au Lycee, microcontrollers and Python in high school: hardware, software and TPs using CircuitPython, from France – GitHub.
A heat tracking robot using an AMG8833 sensor, Feather M0 Express microcontroller, NeoPixels, and CircuitPython – GitHub.
A port of the Jumper Wire game using displayio on the Adafruit PyGamer – GitHub.
@SzymonJakubiak is learning how to code collision detection. Six balls bouncing on the screen of @deshipu’s uGame 10. Also noted that the upcoming version 4.1 of CircuitPython gives significant speed boost! – Twitter.
Rick and Morty, or any show, random episode picker for PyPortal – Twitter.
It begins! YAY! CircuitPython … BeagleBone! – GitHub, & pocketbeagle_python_tests.
The Coding Couple got their PyGamer and are off to making some fun projects, cases, and more! – Instagram.
Matt tweeted up a bunch of great MicroPython related news, links, and more – Twitter. If you’re a MicroPythonista using VS Code you should check out Jos Velinden’s (@josverl) MicroPython Stubber that helps better configure Intellisense, linting and stubbing of some of the hardware API’s – GitHub.
Fomu’s have started appearing in the wild, often running a RISC-V port of MicroPython! Fomu (an evolution of the Tomu project) is a tiiiiny board containing an FPGA that is small enough to live inside your USB port! – Crowd Supply.
@damienpgeorge raised pull request #4863 for a SAMD port of MicroPython. Although it’s currently lacking features, this is exciting as it could open up MicroPython to a whole bunch of Adafruit boards! – GitHub. Thanks @tannewt for some initial guidance.
hackaBLE is a tiny nRF52832 BLE development board that is now available on Tindie. The board can run MicroPython or CircuitPython. From @electronutLabs who also created the cool eInk Papyr using similar hardware – Tindie.
CodePlayground looks like a cool online Python code tool from Blayde Dill, University of Alabama – PowerPoint. More info from the event –
micro:bit is at ISTE 2019 Philadelphia from June 23-26! Find then at booth 1052 at Pennsylvania Convention Centre, Philadelphia, PA, USA. The team is running workshops where you can learn more about the BBC micro:bit, Python for micro:bit, and more – ISTE 2019.
Weather station based on ESP32 and MicroPython with sending data to Google Sheets – GitHub.
Check out all the sessions with “Python” as well.
ESP32-based Board in a Raspberry Pi Form Factor – Obsidian ESP32.
The RoboMaster S1 has Python programming – dji.com
PyPy.js is an experiment in building a fast and compliant Python environment for the web. It uses the PyPy Python interpreter, compiled for the web via emscripten, with a custom JIT backend that emits asm.js code at runtime – pypyjs.org
Top LoRa Add-on Boards for SBCs via the EETimes – eetimes.com
Excellent CircuitPython powered sign by Café Octane Cosplay – Instagram.
Finch Robot 2.0! Pre-order starting July 1st and it can be Python powered! – Finch 2.
do your :bit launches on 2 July 2019 with a brand new website featuring exciting educational resources that can be used in the classroom, more information on the Goals and inspiration to get you thinking. Plus, details on how you can take part – micro:bit.
Bitty Data Logger 4.0 – Bitty Software.
Programming Sounds and Tones with MicroPython at Tinker Education.
Python Could Rule the Machine Learning/A.I. World by Nick Kolakowski – Dice.
Show your peers how to collaborate with GitHub – GitHub.
Press fit headers! yushakobo.jp
TensorFlow 1.14.0 released – GitHub.
Machine Learning is Fun eBook – the Developer Bundle from @ageitgey is excellent (and fun!)… we plan to post some very fun ML examples that build off @petewarden’s work and more, and some hardware the works with great with TensorFlow – machinelearningisfun.com. A preview of what we’re up to – GitHub.
Instagram bot. It works without the Instagram API, you need only a login and password. Made with Python – GitHub.
PlatformIO Plus Goes Open Source, Improving Embedded Development Community Worldwide – platform.io. Looks like Western Digital Corp. and SiFive Inc. are funding it.
Part Hat operator – Python-ideas.
Open-sourcing PyRobot to accelerate AI robotics research – facebook AI.
Leading in the Python community. A chat with Naomi Ceder, current Python Software Foundation board chair – opensource.com. Photo via @EWDurbin.
PyDev of the Week: Geir Arne Hjelle from Mouse vs Python
CircuitPython Weekly for 24 June 2019 on YouTube.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? The Microsoft Garage Survey for Python on Hardware and VS Code!
What could it be?? – YouTube.
Turtle graphics, logo-like programming, for CircuitPython – YouTube & CircuitPython Turtle rainbow benzene. More coming from Adafruit on turtle!
New Learn Guides!
Light Up Prop with Prop-Maker from Noe and Pedro
Adabox012 from John Park
CircuitPython Libraries on Linux and Odroid C2 from Melissa 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 159!
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:
July, 8 to 14th 2019. The EuroPython conference series was initiated by the European Python community in 2001 and started with EuroPython 2002 in Charleroi, Belgium, as the first major Python conference entirely run by volunteers – ep2019.europython.eu
EuroPython 2019 attendees getting CircuitPython-powered PewPew Game Consoles!
The device was created and designed by Radomir Dopieralski, a long time EuroPython regular and enthusiastic Python device and robotics builder.
The PewPew is a simplified game console, programmable with CircuitPython, a variant of MicroPython. It comes with a 64 LED display and a set of small buttons to drive the console. They are looking for attendees to help Radomir with workshops on the PewPew. See more on the blog post and on the PewPew workshop page. The PewPew game hardware information is here on GitHub.
Open Source Summit and Embedded Linux Conference, August 21 – 23, 2019 at the Hilton San Diego Bayfront, California, USA. The Open Source Summit North America combines with Embedded Linux Conference North America (ELC). ELC has been a vendor-neutral technical conference where developers working on embedded Linux and industrial IoT products and deployments gather for education and collaboration. Open Source Summit brings together developers and open source professionals to collaborate and learn about the latest technologies – Linux Foundation.
PYCON UK 2019 – Cardiff City Hall, Friday 13th to Tuesday 17th September. PyCon UK is back at Cardiff City Hall, for five days of talks, workshops and collaboration. The conference also features a young coders’ day, themes dedicated to science and education, and numerous Python-related events – PyCon UK.
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.
CircuitPython’s stable release is 4.0.1 and its unstable release is 4.1.0-beta.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20190624 is the latest CircuitPython library bundle.
v1.11 is the latest MicroPython release. Documentation for it is here.
3.7.3 is the latest Python release. The latest pre-release version is 3.8.0b1.
1275 Stars Like CircuitPython? Star it on GitHub!
By the numbers: CircuitPython has over 60+ boards supported, adding more each week & has 14+ SBC Linux boards supported, adding more each day, & over 158+ Libraries, adding more every week!
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.
Adafruit is hiring! We’re looking for PHP developers in the NYC area! Email: firstname.lastname@example.org
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 12,744 humans, thank you! Join today! https://adafru.it/discord
Discord now offers “server boosts” we have 11 on our server (level 2), if we get to 50 boosts we get to level 3 and some other good features for the community: +100 emojis for a total of 250, 384 Kbps audio, vanity URL, 100 mb uploads for all members (and all the things we have now, like the server banner). Stop by and boost! 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.
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.
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.