Scott’s #CircuitPython2023 @tannewt

2022 was a weird and wonderful year for me. My first child, Ari, was born on his due date in March and has grown and grown. I took two periods of leave. One six weeks long from the end of March to mid-June. The other 12 weeks long from CircuitPython day in August to the start of November. I’m super happy I took this leave because I feel very comfortable and competent as a new dad. Watching Ari grow is wonderful and joyful.

CircuitPython-wise, I spend much of the year disconnected from Adafruit and the CircuitPython community. It was weird. I’ve been involved since August 2016. CircuitPython was my baby before Ari. It was freeing to know that there were so many folks caring for the project and community. But, I missed the folks who make up CircuitPython. CircuitPython is my community. I’ve always wanted CircuitPython to grow bigger than myself and Adafruit. It certainly has grown more than myself. It is in good hands and I’m happy to have more time to spend with my CircuitPython folks this year.

My main hope for 2023 is that I can find a balance between participating regularly with CircuitPython and being a core part of Ari’s early life. It won’t be the same as 2021, pre-Ari, but it won’t be completely off and on like 2022. I’m excited to reconnect to the CircuitPython community, bring CircuitPython programming to mobile devices and make it do new tricks.

Workflows, Mobile Apps & Web Editor

Last year, CircuitPython’s workflow (how you edit and debug code) expanded to include both BLE and WiFi. It is not just USB any more. BLE workflow has been on my wishlist for a few years now (2022, 2021, 2020, 2019). WiFi was a bit unexpected but Wippersnapper inspired me. We’re so close to realizing wireless programming from a mobile device with a touch screen. Its been harder than I expected. With USB, the computer side of things are already done. On mobile, we need to complement our custom protocols with apps that use them. This is the year that we can refine these apps and get folks using them.

Trevor, Antonio, Liz and Tyler have been hard at work on two apps for both iOS and Android. PyLeap and File Glider are designed to make it easy to get code onto a CircuitPython device and allow you to modify it. I hope to see many more folks using these apps to code CircuitPython wirelessly.

Animation of start PyLeap on iOS, connecting to a device and downloading a project.

PyLeap’s goal is to make it easy to download Learn guide code directly to devices wirelessly. For most folks, the first steps to coding is modifying existing example code. PyLeap makes this first step easy. Early versions of PyLeap are available for iOS (source repo) and Android (source repo). Check out the Learn guide for PyLeap for the latest info. Please submit any bugs you find through the OS or through GitHub issues.

Animation of opening Runestone on iOS and selecting a file to load from File Glider.

File Glider includes a basic file browser and editor and, on iOS (Android in the future), bridges CircuitPython’s file system into the iOS. Other apps can be used to edit files on the device. Editing existing code is the next step to learn to code and File Glider makes that possible. Early versions of File Glider are available for iOS (source repo) and Android (source repo). Check out the File Glider learn guide for the latest info. Please submit any bugs you find through the OS or through GitHub issues.

Animation of connecting a USB device to code.circuitpython.org

code.circuitpython.org (source repo) rounds out this tooling. It is originally for desktop and laptops to use the BLE workflow but also works in Chrome on Android. Melissa has done awesome work adding support for both WiFi (circuitpython.local/code/) and USB as well. This will centralize our browser based editing experience. Adding USB support makes it easier to test and improve code.circuitpython.org.

Other Ideas for CircuitPython

Smart watch on wrist showing time and single email notification.

Watch

At the start of my second leave in August, I got CircuitPython running on the Bangle.js 2. I’ve had smart watches for years now but haven’t been super happy with any of them. I wanted something to 1) always show the time (no screen off) 2) sunlight visible and 3) show and buzz on notifications. So, I’ve had CircuitPython running on my wrist since August. This is the first time I’ve relied on CircuitPython continuously. It’s also wireless only. There isn’t an available USB connection. So, I’ve been using File Glider to tweak and debug the code over time. (I did the bulk of the coding on a test board with USB.) This has shown me that wireless coding is possible but needs more improvements over this year.

USB Host

This is a repeat from last year. While I did make some progress by settling on the PyUSB API, I didn’t finish implementing it. TinyUSB didn’t quite have the APIs I needed when I was working on it. Thach has now added them so it’s ready to be picked back up and finished on the iMX RT. Once it is done there, we can also bring it to the RP2040. Once we have USB host support, folks will be able to use other USB devices to control their CircuitPython program. They could also use CircuitPython to bridge USB devices onto BLE, WiFi, serial or back to USB. This bridging can be used to make old USB devices act like newer, standard devices. Bridging can also be used to modify the behavior of the device.

New chips are a wildcard

Much of the Adafruit-sponsored CircuitPython development revolves around new chips with new capabilities. In the last couple years, we’ve focused on the RP2040 and ESP32-S2/3 because they are available. Availability of new chips will hopefully get better through 2023 and we’ll have more options to explore with CircuitPython. These new chip announcements (like the ESP32-P4) can shift our development for the year and are always a wildcard for us.

High Speed USB

The iMX RT chips, most commonly found in the maker world on Teensy 4.x, feature high speed USB (480Mbit/s) which is much faster than 12Mbit/s full speed on most of our boards. There is a lot of room there to explore audio and video over USB. We could also look into make CircuitPython a better debugging tool including SWD debug and logic analysis. However, app support on the desktop or mobile device will still be a bottleneck.

Conclusion

While I’ve covered what is on my mind now, I’m sure we’ll work on many other things this year. Some tasks are on our radar for a while, and some are unexpected. I don’t have any long leaves planned so I’m excited to participate consistently again.

I’m excited to see CircuitPython grow further in 2023. CircuitPython 8 is a solid foundation for a wireless coding world that I’ve wanted to see for many years. I hope we can bring folks who primary use phones and tablets into coding with wireless CircuitPython.


#CircuitPython2023 is our annual reflection on the state of CircuitPython. We’d love to hear from you too! See the kick-off post for all of the details. Please post by January 18th.

Past posts:


Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in! adafruit.com/mastodon

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.

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!

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

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


Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, 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! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

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.