View this email in your browser.
Native MP3 decoding/playback in CircuitPython
Adafruit is testing out a new PR in CircuitPython by JEpler. This one adds native MP3 decoding – no playback chip required! Thanks to the patent expiration, we can now distribute MP3 decoding and it’s a great way to support compressed audio playback. We can even play 2 mp3’s at once. More than that isn’t possible yet, due to RAM constraints. Also being tested is an nRF52840 BLE feather with I2S audio. We’ll also try SAMD51 next. SAMD21 won’t be able to do it, due to the RAM requirements – YouTube.
Circuitpython snakes its way to Fomu thanks to TinyUSB
Want Python in your USB port? Try the beta of CircuitPython for Fomu! Full USB support thanks to the new eptri USB port, and the awesome TinyUSB library. Binaries and instructions are here – v0.1.1-fomu: Beta Release 2 – GitHub. AND xobs has a cool post about making a profiler for optimization too – xobs.io
TinyUSB – it now supports all NXP iMXRT cortex m7s including rt1010, rt1015, rt1020, rt1050, rt1060, rt1064 – GitHub. Over 300+ stars and 70+ forks!
NXP i.MX RT family takes flight with Feather and CircuitPython!
CircuitPython snakes its way to the powerful NXP i.MX RT family of MCUs, 500+ MHz and up to 1 MB RAM. Arturo is working on 2 Feathers: RT1011 + ESP32, and RT1062 with more GPIOs broken out (including the LCD interface) and a SD card – Twitter.
News from around the web!
AdafruitRadio Advertisement class for BLE in CircuitPython – GitHub.
Speaking of BLE and CircuitPython! Here are couple shots, and a video link of the demo(s) Scott has working for getting notifications from Slack, Twitter and more! – YouTube.
Blinka’s Breakout, a CircuitPython implementation of a game similar to the Atari classic Chips Challenge, by foamyguy – YouTube.
Wow! David is running CheerLights on a PyGamer + AirLift FeatherWing. CircuitPython allowed David to do IoT rapid prototyping with WiFi internet access. Changing the color from a simple tweet, and BLE communication – Twitter, and code – GitHub.
Here’s a FeatherWing that attaches to a Feather MCU board and provides a Stemma or StemmaQT interface connection. The other board is a backpack that adds a standalone Stemma interface to a non-MCU FeatherWing (like I2C OLED and LED displays) – hackaday.io, thanks Cedar Grove Studios!
CircuitPython and Raspberry Pi Lectures: video 1, video 2, and video 3 from maduino – YouTube.
Build a CircuitPython-powered, touch-sensitive, Bluetooth aware, app-controllable, talking, Christmas cheer and candy cane dispensing “Buddy the Elf”. A no-solder build powered by the Circuit Playground Bluefruit board – YouTube, and GitHub.
Here’s the start of a PyPortal smart switch using adafruit.io and IFTTT that turns on and off a light with voice commands using Alexa or Google Assistant – Twitter.
The CCCoven Badge runs CircuitPython, Twitter, and sign up here to show interest in purchasing one!
FeatherSnow is an easy way to unlock your programming creativity with CircuitPython – hackaday.io
The Feather compatible Open Book project is making great progress! Here are some photos and more on the latest AND! Joey posted up some code that helps drive e-ink displays – GitHub.
This project displays a count of the AWS service announcements during the week of re:Invent. The physical display is a PyBadge with a code project running on it, inspired by the PyBadge tutorial. The data for the project is pulled from the AWS announcement RSS feed. The data is polled hourly by a lambda function, which stores all the announcements, and updates a counter. A second lambda function and API gateway serve as the endpoint for the PyBadge to fetch the stats from GitHub.
Actinius’ Environmental Sensor FeatherWing measures temperature, humidity, pressure, and air quality
The Feather-compatible environmental sensor add-on also includes a Grove connector for use with any I2C-compatible microcontroller – hackster.io
Turkey cats, turkey cats, does the turkey get the cat, or does the cat get the turkey? – Turkey cats.
OpenMV Cam H7 Plus pre-order now available – OpenMV.
The latest on the electronic bag that Geek Mom Projects is working on. It is micro:bit powered and a production sample of the third Bright Bag style, called the “Annie” named after groundbreaking NASA programmer and rocket scientist Annie Easley – Instagram and brightwearables.com.
MINHF4, An STM32F4 Arduino Compatible Board. A feather-like STM32F4 – hackaday.io
The MicroPython ILI9341 driver is working. By Unexpected Maker, this might be for the MicroPython based reflow oven – Twitter.
A MicroPython port for the RT1050/1060, includes the OpenMV firmware – GitHub.
A thread about C, Python, JS, C/C++, for MCUs – Twitter.
Super cute Bubble Punk by Mohit. Based on the Teensy LC, bubble punk measures temperature and humidity using an Adafruit SHT31-D breakout board, and displays them on a vintage seven segment bubble display – Twitter.
The Mind at Work: Guido van Rossum on how Python makes thinking in code easier.
PyCon Africa 2019 videos – YouTube.
Python Earrings – Etsy.
Use Tensor Flow Lite and a Particle Xenon to build the ML-gesture wand of your dreams – Particle.
Human Activity Recognition with OpenCV and Deep Learning – PyImageSearch.
Thermal testing time for Raspberry Pi 4 – Pi Weekly.
Ten years and nearly ten million users: my experience being a solo maintainer of open-source software in academia – Philip Guo.
Code a Frogger-style road-crossing game in Python – Raspberry Pi.
PINS-TOOL-IMX: Pins Tool for i.MX Application Processors – NXP.
A LIDSat-2: Feather M0 Express, CCS811 Gas Sensor and ST7735 1.8” TFT display. DORJI DRA818V and DRA818U with HobbyPCB bandpass filters for RF – Twitter.
A simple Python game with a micro:bit and an OLED display – suppertime.co.uk
What’s New In Python 3.9 – python.org
Shawn uses a Feather STM32F405 Express…and wrote some C to turn it into a temperature logger – YouTube.
A cool laser cut case for the Edge Badge that was shown at Supercon – Twitter, and files on Thingiverse.
Dong xi – an interactive supply chain exploration tool.
TinyGo 0.10 is out! New M4 boards, blocking selects, LLVM 9, and so much more – GitHub.
On Troll Hugging, Hole Digging, and Improving Open Source Communities – perl6.party
The Art of Electronics: The x-Chapters expands on topics introduced in the third edition of The Art of Electronics, check out the table of contents, sample chapters, and more.
AFRL tests in-house, rapidly developed small engine, called the the Responsive Open Source Engine (ROSE) – Air Force Research Laboratory Aerospace Systems.
NASA’s Second Astrobee Wakes Up in Space. NASA has developed three new robotic teammates to work alongside astronauts on the International Space Station as they help to advance research – NASA.
The Long-Forgotten Flight That Sent Boeing Off Course: A company once driven by engineers became driven by finance – The Atlantic.
Why We Need to Retire the Blinking LED as the Entry Into Embedded Programming – hackster.io
Inkscape is looking for testers to make sure the GCode extension is working after it has been updated to Python 3 – Inkscape.
Seamless Integration of LTSpice in Python/numpy Signal Processing – acidbourbon.
moises.ai separates song tracks using machine learning. It leverages the power of a state-of-the-art audio source separation algorithm developed by Deezer Research – moises.
The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with safety and security in mind. Adafruit has joined the project, along with the Linux Foundation, which the Zephyr project is part of.
Ladyada teaches how to safely wield the legendary soldering iron – safely! – YouTube.
The Lunduke Show, interview with Limor Fried – YouTube, and text.
CircuitPython Weekly December 2nd, 2019 on YouTube and on diode.zone
PyDev of the Week: Bob Belderbos on Mouse vs Python
#ICYDNCI What was the most popular, most clicked link, in last week’s newsletter? CircuitPython Downloads!
Made with Mu – A Manga Book on CircuitPython and Mu
A Made with Mu post about the upcoming book and the origins of the name Mu! – Made with Mu.
Take Flight with Feather – Hackaday and Digi-Key
The Adafruit Feather is the latest platform for microcontroller development, and companies like Particle, Sparkfun, and Seeed Studios are producing Feather-compatible devices for development and prototyping. Now it’s your turn. Design a board to fit in the Feather ecosystem and we’ll manufacture it. The best project in the Take Flight With Feather contest will be sent off to pick and place machines and head straight to the Digi-Key warehouse!
To get started, take a look at the current Feather ecosystem and get acquainted with the GitHub repo filled with examples and tutorials.
There are over 38+ entries at this time!
Stop by hackaday.io for more details!
Tis’ the season – ADADEALS, DigiWish, and more!
It’s the holiday season, so there are tons of deals and more for folks who do electronics. We emailed a bunch of companies that are in the maker/engineering world and asked what sales they had to help get the word out, we called this #ADADEALS and have over a dozen posts, check them out, some of the sales and deals are still going on. Many of them have some type of Python on hardware offering too.
Next up, DigiWish is happening. For DigiWish, all you need to do is pick something that is $100 or less in the Digi-Key store and then use the tag #DigiWish on Twitter, Facebook, or Instagram. Digi-Key will let folks know each day if they won. Contest begins December 1, 2019 and ends December 24, 2019. Digi-Key has tons of Python on hardware, go get it! More details here – Digi-Key.com
Tuesday, Dec 3rd, is #GivingTuesday. We’ll post up some organizations that help education, open-source, good causes, and more.
AND for Python folks, #GivingTuesdayPSF is December 3rd and runs for 24 hours local time. The Python Foundation @ThePSF PSF is participating in Giving Tuesday, by giving, you support sprints, meetups, community events, Python documentation, fiscal sponsorships, software development, and community projects – Give here, and help spread the word!
None of this was sponsored by anyone, or any company, Adafruit just wants to help get the word out about some good companies and good causes.
This weekend, we at Adafruit worked up making a Stemma QT (qwiic/Grove compatible) breakout for the MLX90640 32×24 camera. We’ve got it working nicely in Arduino up to about 8 fps (you need a fast processor like the SAMD51 with lots of RAM). Then, we went back to our old AMG88xx thermal cam demo and ported it to the Adafruit Edge Badge. This camera could be good for low cost thermal imaging and also machine learning! – YouTube.
A preview of the “Bluefruit Playground” app … We’re working on the best way to record the iPhone screen and the wireless Circuit Playground Bluefruit (Nordic nRF52840) – YouTube.
New Learn Guides!
Bluefruit Luminary Lanterns with Capacitive Touch from Erin St. Blaine
Snow Globe with Circuit Playground Bluefruit from John Park
What is the team up to this week?
HERE WE GO!
My bench is currently occupied by prototypes of the ICM-20649, a fancy little 6-DoF IMU from ST. This one is special because it offers a much wider range of measurement than most other similar devices on the market. Capable of measuring +/- 30G of acceleration and up to 4000 degrees per second of rotation, this is the sensor you want for capturing data on high impact and high performance applications.
Drivers are progressing and with a bit more time we’ll dig into some of the other features lurking under the covers. I also recently made a large order of prototypes from the fab, so stay tuned for a big bunch of boards in the coming weeks.
I updated the Learn Guide code for all of our CircuitPython BLE projects, and the authors are now doing final testing. Some guides have already been updated. Next week, Scott and I plan to get BLE bonding working so that we can conveniently support services like BLE HID. I’ve fixed a few bugs and reviewed lots of pull requests. We’ve had more contributors to CircuitPython recently and we’re getting many fixes and enhancements.
I worked on making an existing MP3 decoder, Adafruit_MP3, usable from CircuitPython. So far it’s been lightly tested on both nRF and SAMD51 boards, and it’s time to chase bugs and improve code quality so it can be included in official builds. Limor recorded a short video showing it off – YouTube.
In the land of guides, I finished up two guides: Ultrasonic Distance Sensors and eInk Gizmo. Both of those are in the works and will be ready soon. I tested some BLE updates to a couple of previous guides to verify everything still works with the latest CircuitPython. In the land of code, I did a complete refactor on the Circuit Playground library to now include the Circuit Playground Bluefruit. You can now use all the same features available for Circuit Playground Express on the Bluefruit, as well as two new features available for Bluefruit only! The plan is to eventually add some of the Bluetooth setup to the Bluefruit module to make it super simple to get going with all the hardware features on the Bluefruit. Check it out and keep an eye on it for new updates!
This past week, I finished up the Arduino pages for the eInk Gizmo guide. This included adding eInk support to the Arduino ImageReader library. Since it was a short week with the holidays, I took the opportunity to catch up on a lot of the small things that had been put on hold while I was updating guides. I went through and performed lots of CircuitPython code updates for outstanding issues, finished reviewing Pull Requests, and made small Guide updates. Next up, I will be adding some more examples to the IS31FL3731 CharliePlex library and updating any associated 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!
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 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 196!
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:
TechAhoy Inc. is a nonprofit makerspace located in Queens, NY building tech literacy by educating, encouraging and empowering community members, some classes coming up!
“We are planning two family workshops that will be hosted over the weekend: 1. Code Together – learn to code with your kids using a Circuit Playground Express, an amazing board from Adafruit and 2. Light up the Night – learn how to add LEDs and EL wire to jackets, hats, and more. We are also offering the Code in Python class on Saturday December 7th at 3PM!”
Scott is speaking at PyCascades about Python’s Next Decade and Us. It’s February 8th and 9th, 2020.
“PyCascades is a two-day, single-track Python conference. We previously hosted PyCascades in Vancouver and Seattle. For our third iteration in 2020 we’ll be in Portland, Oregon. PyCascades is organized by members of the Python communities in Vancouver, Seattle, and Portland. We aim to bring together Python users and developers from both the Pacific Northwest and around the world.”
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.
CircuitPython’s stable release is 4.1.0 and its unstable release is 5.0.0-beta.0. New to CircuitPython? Start with our Welcome to CircuitPython Guide.
20191128 is the latest CircuitPython library bundle.
v1.11 is the latest MicroPython release. Documentation for it is here.
3.8.0 is the latest Python release.
1484 Stars Like CircuitPython? Star it on GitHub!
Call for help – CircuitPython messaging to other languages!
We recently posted on the Adafruit blog about bringing CircuitPython messaging to other languages, one of the exciting features of CircuitPython 4.x is translated control and error messages. Native language messages will help non-native English speakers understand what is happening in CircuitPython even though the Python keywords and APIs will still be in English. If you would like to help, please post to the main issue on GitHub and join us on Discord.
We made this graphic with translated text, we could use your help with that to make sure we got the text right, please check out the text in the image – if there is anything we did not get correct, please let us know. Dan sent me this handy site too.
jobs.adafruit.com 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 15,265 humans, thank you! Join today! https://adafru.it/discord
ICYMI – In case you missed it
The wonderful world of Python on hardware! This is our first video-newsletter-podcast that we’ve started! The news comes from the Python community, Discord, Adafruit communities and more. It’s part of the weekly newsletter, then we have a segment on ASK an ENGINEER and this is the video slice from that! The complete Python on Hardware weekly videocast playlist is here.
This video podcast is on iTunes, YouTube, IGTV (Instagram TV), and XML.
Weekly community chat on Adafruit Discord server CircuitPython channel – Audio / Podcast edition – Audio from the Discord chat space for CircuitPython, meetings are usually Mondays at 2pm ET, this is the audio version on iTunes, Pocket Casts, Spotify, and XML feed.
And lastly, we are working up a one-spot destination for all things podcast-able here – podcasts.adafruit.com
Codecademy “Learn Hardware Programming with CircuitPython”
Codecademy, an online interactive learning platform used by more than 45 million people, has teamed up with the leading manufacturer in STEAM electronics, Adafruit Industries, to create a coding course, “Learn Hardware Programming with CircuitPython”. The course is now available in the Codecademy catalog.
Python is a highly versatile, easy to learn programming language that a wide range of people, from visual effects artists in Hollywood to mission control at NASA, use to quickly solve problems. But you don’t need to be a rocket scientist to accomplish amazing things with it. This new course introduces programmers to Python by way of a microcontroller — CircuitPython — which is a Python-based programming language optimized for use on hardware.
CircuitPython’s hardware-ready design makes it easier than ever to program a variety of single-board computers, and this course gets you from no experience to working prototype faster than ever before. Codecademy’s interactive learning environment, combined with Adafruit’s highly rated Circuit Playground Express, present aspiring hardware hackers with a never-before-seen opportunity to learn hardware programming seamlessly online.
Whether for those who are new to programming, or for those who want to expand their skill set to include physical computing, this course will have students getting familiar with Python and creating incredible projects along the way. By the end, students will have built their own bike lights, drum machine, and even a moisture detector that can tell when it’s time to water a plant.
Visit Codecademy to access the Learn Hardware Programming with CircuitPython course and Adafruit to purchase a Circuit Playground Express.
Codecademy has helped more than 45 million people around the world upgrade their careers with technology skills. The company’s online interactive learning platform is widely recognized for providing an accessible, flexible, and engaging experience for beginners and experienced programmers alike. Codecademy has raised a total of $43 million from investors including Union Square Ventures, Kleiner Perkins, Index Ventures, Thrive Capital, Naspers, Yuri Milner and Richard Branson, most recently raising its $30 million Series C in July 2016.
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.