Scott’s #CircuitPython2022 @tannewt

2022 with Blinka as the zero

2021 was another banner year for CircuitPython. We got off to a roaring start with the launch of the RP2040 in January and found more folks who could use CircuitPython in their projects. Many new folks are using CircuitPython on their Raspberry Pi Picos to do USB Human Interface Device (HID) projects like “bad usb”, macropads and full keyboards. @ladyada dipped her toe in the deep rabbit hole of mechanical keyboards and Adafruit launched our own macropad along the way.

The chip shortage deepened in 2021 which enabled us to focus on more software-only work rather than new platforms. Jeff worked on RGB Matrices and cameras. Dan improved dynamic USB support and enable concurrency through asyncio. I created a BLE workflow on the nRF boards and then brought CircuitPython to the Raspberry Pi.

My two themes last year for myself were community and the BLE workflow. For a third year in a row, these will continue to be *my* focus but I’ve included some other ideas below as well. However, my perspective will be shifted this year compared to prior years.

Community

My partner and I are expecting our first child towards the end of March and I plan on taking a total of 18 weeks off (6 at the start and then 12 as she goes back to work.) As a result, I’ll be relying more than I have in the past on the community we’ve built to keep CircuitPython going forwards. Two years ago I mentioned the value of having other people able to do the same work as you. I’m grateful for Kattni’s community leadership and all of the CircuitPython contributors who make it possible for me to step away for short breaks and now longer breaks. Our community not only takes care of the code but also the community itself. Moderating, helping, teaching and mentoring are all vital components of CircuitPython as an open source community. We’re so lucky to have many folks who have these skills.

Last year was also my first full year doing Deep Dive w/Scott streams. It’s been a wonderful experience hanging out with so many awesome folks each week. We’ve built up a large back catalog of topics and, thanks to David (@dcd) and Patrick (@askpatrickw) we have a searchable repo of all the stream notes. My plan is to stream through my ESP32-S3 work and then stop as the baby’s birth gets near. I’m not sure whether I’ll stream after I get back. It will depend on Adafruit priorities and how much time I’ve got to dedicate to streaming.

Taking longer stretches of time off and learning how to parent will also alter my ability to take on larger projects. So, in times near leave, I’ll be focused on smaller improvements and bug fixes. However, I have two-ish months until my first leave.

BLE Workflow

In the first two months of 2022 my focus will be on the ESP32-S3. I want to bring BLE to the ESP so that the BLE workflow works with those chips as well. The S3 will be the first chip that can do both WiFi and BLE at the same time (hopefully). This will make it a great BroadcastNet bridge for me. Much easier to maintain than a full Raspberry Pi.

Adding the BLE workflow to another platform will also help emphasize the work on the iOS apps File Glider and PyLeap (thanks Antonio and Trevor). code.circuitpython.org (thanks Melissa) is a great option for those on Chrome and Android. Much of the nRF work was done before the apps were ready and made it hard for folks to test along with my development progress. I’m excited to see folks testing the BLE workflow earlier on the ESP chips.

My hope is (fingers crossed) that the work I do for the ESP32-S3 will transfer easily to the ESP32-C3 and older ESP32 as well.

Other Ideas for CircuitPython

While I won’t have a lot of time for large projects this year, here are a few I’d love to see progress. There are many other skilled contributors who can take these on.

USB Host

CircuitPython has excelled based on being a USB device. USB device allows for CircuitPython to act as a USB device such as keyboard, mouse, serial converter and midi input.

Adding USB Host will allow us to host devices like these. Hosting keyboards would allow us to take input directly into CircuitPython. In particular, this would be exciting for the Pi 400 because it has a built-in keyboard. When combining USB Host support with existing device support, CircuitPython would be able to augment existing HID devices by changing the way they behave to the computer.

USB Audio and Video

TinyUSB, the USB core used by CircuitPython, has basic audio and video support now. It’d be awesome to use this in CircuitPython to send audio and video from displayio up to a host computer. This would make it very easy to capture and/or stream displayio projects.

async networking

asyncio has largely been developed by the Python networking community. Network code often waits for more data from the computer at the other end and is therefore I/O bound. This makes is good for asyncio because other code can be run on the CPU while waiting for a response. While I don’t want us to rewrite all of our code to asyncio, I think it’d be useful for network libraries to do cooperate with other tasks using asyncio.

Testing

Automated, on device testing would greatly benefit CircuitPython over the long term. With 250+ boards and numerous chip families, it is getting harder and harder to keep all of the existing code working. We’ve started to see more regressions in CircuitPython 6.x and 7.x where functionality that used to work no longer does. Automated testing is very helpful at finding breakages when they occur and are easiest to fix.

Conclusion

This year will be much different for me (in a good way!) Thank you all for making it possible for me to step away without worry. I’m excited to see what we all create and grow this year.


Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Join 35,000+ makers on Adafruit’s Discord channels and be part of the community! http://adafru.it/discord

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Follow Adafruit on Instagram for top secret new products, behinds the scenes and more https://www.instagram.com/adafruit/

CircuitPython – The easiest way to program microcontrollers – CircuitPython.org


Maker Business — How (some) chips get made

Wearables — Sample code is your new best friend

Electronics — Solder braid quick fix

Python for Microcontrollers — Python on Microcontrollers Newsletter: Mu 1.2.0 Released, WSL Out of Beta and so much more! #CircuitPython @micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Jellyfish Lanterns, Matter 1.0, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — JP’s Product Pick of the Week 11/22/22 EyeSPI Breakout @adafruit @johnedgarpark #adafruit #newproductpick

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !



No Comments

No comments yet.

Sorry, the comment form is closed at this time.