ICYMI: Python on hardware, CircuitPython gets 10 out of 10 for speed from HackSpace! #Python #Adafruit #CircuitPython #PythonHardware @circuitpython @micropython @ThePSF @Adafruit
ICYMI (In case you missed it) – Tuesday’s Python on Microcontrollers Newsletter from AdafruitDaily.com went out – if you missed it, subscribe now!
The next newsletter goes out in a week and being subscribed the best way to keep up with all things Python for hardware.
Over 6,300 subscribers worldwide!
https://www.adafruitdaily.com/
A speedier CircuitPython gets 10 out of 10 in the latest issue of HackSpace Magazine
A speedier CircuitPython gets 10 out of 10 in the latest issue of HackSpace Magazine, page 128 in the PDF, online, via Twitter –
“The big feature of the free software, CircuitPython 4.1, is the speed. You can see the box below for more information on the benchmarks we ran but, in short, the new version is quite a bit quicker. Basic operations, such as floating point and integer arithmetic, were about twice as fast, and it was particularly interesting to see that this performance improvement filtered all the way through to the devices controlled by the board. We were able to flash NeoPixels at twice the rate using this firmware – we’re particularly pleased to see this, as we’ve run into performance issues running NeoPixel matrixes with CircuitPython in the past. There are also big performance gains when controlling screens. While the software has been moving along, so too has hardware support, and there’s now a greater range of supported hardware than ever before. At the time of writing, there were 62 separate devices on the circuitpython.org downloads page, so there’s a great selection to choose from, if you want to get developing with this language.”
We are 100% focused on ease of use, being able to do more in minutes. CircuitPython is a programming language designed to simplify experimenting and learning to code on low-cost microcontroller boards. It makes getting started easier than ever with no upfront desktop downloads needed. Once you get your board set up, open any text editor, and get started editing code. It’s that simple.
Quick and Easy
Create a file, edit your code, save the file, and it runs immediately. There is no compiling, no downloading and no uploading needed.
Beginner Friendly
CircuitPython is designed with education in mind. It’s easy to start learning how to code and you get immediate feedback from the board.
Easy Code Updates
Since your code lives on the disk drive, you can edit it whenever you like, you can also keep multiple files around for easy experimentation.
Serial Console + REPL
These allow for live feedback from your code and interactive programming.
File Storage
The internal storage for CircuitPython makes it great for data-logging, playing audio clips, and otherwise interacting with files.
Strong Hardware Support
There are many libraries and drivers for sensors, breakout boards and other external components.
However it’s also nice that there are significant speed increases too ??
Here is the script used and some additional results!
pyportal 4.1.0-beta.1, ATSAMD51J20
- neopixel flicker, 4-1-0, 2.951
- neopixel rainbow, 4-1-0, 2.851
- GPIO on/off benchmark, 4-1-0, 2.548
- integer sum, 4-1-0, 3.807
- integer multi, 4-1-0, 4.901
- float sum, 4-1-0, 2.48401
- float multi, 4-1-0, 2.45599
- float divide multi, 4-1-0, 2.521
hallowing 4.1.0-beta.1, 07232019/72319ATSAMD21G18
- neopixel flicker, 4-1-0, 12.074
- neopixel rainbow, 4-1-0, 10.607
- GPIO on/off benchmark, 4-1-0, 9.71704
- integer sum, 4-1-0, 17.857
- integer multi, 4-1-0, 23.038
- float sum, 4-1-0, 12.553
- float multi, 4-1-0, 12.642
- float divide multi, 4-1-0, 13.448
BONUS STAT… here is 4.0.0 before the optimizations we have now for the pyportal…
- neopixel flicker, 4-0-0, 5.35
- neopixel rainbow, 4-0-0, 5.377
- GPIO on/off benchmark, 4-0-0, 6.21101
- integer sum, 4-0-0, 7.544
- integer multi, 4-0-0, 8.603
- float sum, 4-0-0, 6.173
- float multi, 4-0-0, 6.15599
- float divide multi, 4-0-0, 6.16599
pyportal 4.1.0-beta.1 vs pyportal 4.0.0
- neopixel flicker, 4-1-0, 2.951 vs 5.35 = 1.8 times faster
- neopixel rainbow, 4-1-0, 2.851 vs 5.377 = 1.9 times faster
- GPIO on/off benchmark, 4-1-0, 2.548 vs 6.21101 = 2.4 times faster
- integer sum, 4-1-0, 3.807 vs 7.544 = 1.9 times faster
- integer multi, 4-1-0, 4.901 vs 8.603 = 1.8 times faster
- float sum, 4-1-0, 2.48401 vs 6.173 = 2.5 times faster
- float multi, 4-1-0, 2.45599 vs 6.15599 = 2.5 times faster
- float divide multi, 4-1-0, 2.521 vs 6.16599 = 2.4 times faster
Episode 295 – In the key of lime – Embedded.fm podcast
295 – In the key of lime – Embedded.fm podcast –
“This week we talk about CircuitPython (@CircuitPython) with @adafruit’s Kattni Rembor (@kattni) and Scott Shawcroft (@tannewt). The suggested first board is Circuit Playground Express with LEDs, sensors, and buttons. CircuitPython is also available for many other boards including the BLE Feather (NRF52840). For a basic introduction take a look at What is CircuitPython and see some example scripts. To dig a little deeper, check out the many resources in Awesome CircuitPython. The whole thing is open source so you can see their code. If you are thinking about contributing (or just want some fun chats), get in touch on the CircuitPython channel of the Adafruit Discord server: adafru.it/discord Many of the language’s design choices favor ease-of-use over ready-for-production. Imagine teaching an intro to programming class without worrying what computers will be used or how to get compilers installed on everyone’s machines before time runs out.”
Related:
8/8/2019 is CircuitPython day!
Mark your cals’ some CircuitPython day events 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
Update! iOS 13 beta erases files off drive, resets iPad: FAT12 issue – FIXED, MAYBE!
Good news, maybe! It looks like the latest iOS 13 beta fixed the issue of all the files getting deleted when browsing to the file system on the USB drive. We do not know if editing and saving .py files works yet as there are no apps that aware of the external storage. From what we understand, that is coming in September of this year. That being said, it’s looking REALLY GOOD for opening, editing, and saving CircuitPython on iOS devices!
Empowering developers by embedding Python
On the Talk Python to Me podcast, Michael Kennedy talks to Nina Zakharenko –
“How do we get kids excited about programming? Make programming tangible with embedded devices. Did you know that after kids learned to code with the BBC micro:bit, 90% of kids “thought coding was for everyone” and 86% said it made CS topics more interesting? One person doing great work in this space is Nina Zakharenko. She’s here to tell us all about her projects with CircuitPython.”
How to Add a New Board to CircuitPython
Add your new CircuitPython compatible board to CircuitPython! You’ve designed a microcontroller and it’s CircuitPython compatible. Amazing! Wouldn’t it be great to have CircuitPython automatically built for your board? We can help with that!
Adding a CircuitPython compatible board to CircuitPython means that the firmware will be automatically built for your board every time CircuitPython is updated – on merged pull requests, beta releases as well as final releases. This will enable you to easily use CircuitPython on your board without going through the build process every time, as well as allow for you to promote your board as easy to use with CircuitPython.
Best of all, it’s free! We’ll do it all for you once you’ve given us the information we need to do the builds. We’ll also build every translated language as well, from Portuguese to Pinyin.
This guide will walk through the process of adding a board to CircuitPython – learn.adafruit.com
CircuitPython snakes its way to SparkFun SerLCD AVR-Based Serial LCD displays
Gaston aka fourstix wrote a CircuitPython library for the Sparkfun SerLCD AVR-Based Serial LCD displays – GitHub.
Game Devs of Color Expo: Schomburg Center in Harlem, New York on July 27, 2019. Adafruit is a sponsor
This is the 4th annual Game Devs of Color Expo – an inclusive games expo and conference creating a new normal in games by putting creators of color at the forefront, showing off their games, building conversations, and pushing games forward as an artform – gamedevsofcolorexpo.com. Follow along on Twitter with the tag #GDoCExpo. Adafruit is sponsor and look for our CircuitPython-powered open-source indie game hardware at the event!
News from around the web!
Goose the Beardie, a baby bearded dragon, has a PyPortal to keep an eye on all the lizard stats – Instagram.
Update to the CircuitPython takes flight – Using CircuitPython on High Altitude Balloons post! There is now a video – YouTube. Matt’s team is using CircuitPython for on High Altitude Balloons! Their team HABET (High Altitude Balloon Experiments in Technology) is part of a program called Make 2 Innovate. Make To Innovate (M:2:I) is an exciting program in the Department of Aerospace Engineering at Iowa State University which engages students in hands-on projects to augment their understanding of engineering fundamentals – Adafruit.
PyPortal displays prices every minute using CircuitPython – Reddit.
Kevin’s review of CircuitPython – Instagram.
“Compared to Arduino, this Circuit Playground Express board running CircuitPython is smooth sailing. Not having to compile every time the code is changed, supporting high-level programming language Python, onboard sensors, very well documented and works with Microsoft MakeCode, which my 9 yo says is easier than Minecraft.”
What’s better than a CircuitPython powered minifigure sized board? A 2x minifigure sized board – Twitter.
The Icarus board, in FEATHER format… Designed and made wholly in Europe, introduces a robust set of #IoT technologies in a small footprint. With the Nordic nRF9160 – site and Twitter.
JetsonHacks video features Circuitpython servokit and also add some alternative options – YouTube via Twitter.
Update! StringCar M0 Express microcontroller passed all static tests – Twitter.
Feather compatible RGB led driver board – Twitter.
This lamp was built with the Adafruit Circuit Playground Express! It uses the sound and light sensors to display different color gradients. A CircuitPython script is available here – GitHub.
Initial release of MiniMQTT, a MQTT Client Library for CircuitPython. This library aims to be independent of network hardware. However, at this time the MiniMQTT library is only available for CircuitPython devices connected over WiFi. To use in CircuitPython, simply install the Adafruit CircuitPython bundle.
Supercharge Your Old Nintendo Game Boy with a CircuitPython Cartridge by Cameron Coward at hackster.io.
An Adafruit PyGamer board running CircuitPython 4.1 generates a spinning vector image and outputs this via the two onboard DACs to a Hameg oscilloscope in x-y mode showing a rotating Adafruit logo by Kevin – YouTube. A new how-to guide will be out soon in the Adafruit Learning System on how to do this.
Arduino Nano drop-in replacement with SAMD21E18. SAMD21 (Arduino Zero) based plugin for ARES robot with Arduino Nano – hackaday.io
Server creation and management support – GitHub. Here it is in action – Twitter.
Scott Hanselman visits Adafruit! This was a lot of fun, we’ve been fans of THE HANSELMINUTES PODCAST for years, expect to hear some CircuitPython on this video, and an upcoming episode of HANSELMINUTES! Thank you Scott! We talk community, artificial pancreases, and more! – YouTube.
Giant Board by Groboards – A single-board computer in the Adafruit Feather form factor, here is a post about “Power Consumption – Less is More” on Crowd Supply.
From the latest State of PewPew from Radomir –
“At this year’s Europython conference all participants have been given a customized PewPew device, and there were workshop on programming them. Huge thanks to the mentors who ran these: Christian Walther, Thierry Chantier, Raphael Das Gupta and Coen de Groot. There was also a short talk about the development of PewPew. All PewPews on Tindie are sold out, and I’m looking for a better way of making the devices available, possibly produced and sold by a factory directly. More information as soon as we have anything.”
There are new games available in the repository:
A program written in Lisp to plot from an Adafruit ItsyBitsy M4 board to a low-cost colour TFT display – forum, via Twitter.
PEG Parsers by Guido van Rossum.
Check out the beta of upcoming Thonny 3.2 with a MicroPython file-browser, plotter, ANSI colors in the shell and other goodies – GitHub.
MicroPython and the Internet of Things, Part I: Welcome. MicroPython and the Internet of Things, Part II: Hello, MicroPython! And MicroPython and the Internet of Things, Part III: Building a MicroPython Application. Get them all out on Miguel’s site and a course.
Three Things You Should Know About Visual Studio Code by Nina Zakharenko.
2.0.0.dev3 – pre release for PyGame – GitHub.
Here are the most popular programming languages used by the world’s largest unicorn startups – GeekWire. If you guessed Python is #1, you guessed right!
SciPy 2019: Scientific Computing with Python Conference – YouTube. There are 104+ videos!
Convert .py to .exe with PyInstaller – Python 3.6 – YouTube.
The transfer problem in computing education by Andy J. Ko.
Numenta: biologically inspired machine intelligence – GitHub.
A minimal DeepDream tutorial in TF 2.0 – GitHub.
DemonSeed, HID attack hardware inside of USB cables – GitHub.
Mac Open Web: A collection of open and indie Mac, iOS, and web apps that help promote the open web, site & GitHub.
Nanophotonic media for artificial neural inference via Hackaday.
The latest Python software foundation newsletter is out, sign up here – python.org. Adafruit donated to the foundation during the Q2 donation drive.
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? CircuitPython downloads on CircuitPython.org!
PyDev of the Week: Cris Medina on Mouse vs Python
CircuitPython Weekly Meeting for July 22nd, 2019 on YouTube and on diode.zone
Made with Mu – Python HyperCard experiment by Nicholas Tollervey
“Inspired by work done by Adafruit for their CircuitPython boards, I’ve taken their HyperCard based application and turned it into a module that will let beginner developers create GUI based applications that are both simple yet potentially sophisticated. It’s early days, and I’m demoing the result of short hacking session.”
Python Your Own Adventure – learn.adafruit.com & PYOA for PyGamer/PyBadge – Adding Cursor Support to CircuitPython.
Related:
- Apple’s HyperCard – history and a possible remake – Adafruit.
- HyperCard Adventures – a classic Mac and HyperCard emulated in-browser – Adafruit.
- Learn Mac HyperCard via this 1989 educational package – Adafruit.
- How HyperCard inspired a generation of future developers – Adafruit.
- HyperCard! – Adafruit.
- Atkinson Dithering, Live in Processing – Adafruit.
Coming soon
STEMMA QT cryptographic coprocessor.
Gizmos!
CircuitPython displayio support for OLEDs! You can get REPL output on tiny OLED displays and use all the cool font support we’ve added.
We are excited about this and we are in testing! Nordic is excited, and Matt is excited too ??
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.
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 166!
New Libraries!
Here’s this week’s new CircuitPython libraries:
Updated Libraries!
Here’s this week’s updated CircuitPython libraries:
- Adafruit_CircuitPython_PyPortal
- Adafruit_CircuitPython_SimpleIO
- Adafruit_CircuitPython_Hue
- Adafruit_CircuitPython_CursorControl
- Adafruit_CircuitPython_AdafruitIO
- Adafruit_CircuitPython_TinyLoRa
- Adafruit_CircuitPython_INA260
- Adafruit_CircuitPython_ESP32SPI
- Adafruit_CircuitPython_Display_Text
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 | 1470 | 41737 |
Adafruit_CircuitPython_BusDevice | 916 | 17135 |
Adafruit_CircuitPython_MCP230xx | 448 | 3756 |
Adafruit_CircuitPython_Register | 180 | 7481 |
Adafruit_CircuitPython_Motor | 136 | 5026 |
Adafruit_CircuitPython_ServoKit | 135 | 3578 |
Adafruit_CircuitPython_PCA9685 | 128 | 4537 |
Adafruit_CircuitPython_NeoPixel | 124 | 6307 |
Adafruit_CircuitPython_ESP32SPI | 109 | 1424 |
Adafruit_CircuitPython_SSD1306 | 106 | 1811 |
CircuitPython.org by the numbers
By the numbers: CircuitPython has over 66+ boards supported, adding more each week & has 16+ SBC Linux boards supported, adding more each day, & over 164+ Libraries, adding more every week!
Upcoming events!
PyOhio is July 27-28, 2019 in Columbus, Ohio, USA! Kattni Rembor will be the opening keynote speaker! PyOhio is a non-profit annual Python community conference held in Columbus, OH. It is free to attend and welcomes anyone with an interest in Python. Content ranges from beginner to advanced and is intended to be relevant to all types of Python users: students, software professionals, scientists, hobbyists, and anyone looking to learn more. There are keynotes, tutorials, talks, sprints, open spaces, lightning talks and more. Registration is now open! PyOhio
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.
2020 Open Hardware Summit – March 13th 2020, Tishman Auditorium at NYU School of Law, New York
The Open Hardware. In 2020, we will be celebrating tenth anniversary of the Open Hardware Summit. The 2020 Open Hardware Summit will be held Friday, March 13th, 2020 at Tishman Auditorium – NYU School of Law located at 63 5th Ave, New York, NY 10003, USA.
In addition to it being the 10th of the Open Hardware Summit, it’s the 20th anniversary of the keyhole logo that evolved to the logo for the Open Source Association as well as the community-made Open-Source Hardware logo.
Latest releases
CircuitPython’s stable release is 4.0.2 and its unstable release is 4.1.0-rc.1. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20190722 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.0b2.
1,315 Stars Like CircuitPython? Star it on GitHub!
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
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: apply@adafruit.com
13,205 thanks!
The Adafruit Discord community, where we do all our CircuitPython development in the open, reached over 13,205 humans, thank you! Join today! https://adafru.it/discord
Discord now offers “server boosts”. Adafruit currently has 12 on our server (level 2), and 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.
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.