I was late for this #CircuitPython2040 writing and I am not progressing on any of my Circuit Python projects (some in a “ready to develop” state).
I spend my free time on neo-retro-computing, one Home Assistant, on setting up a Nuc as a NAS and a Nvidia Shield as a Plex, on building a Home Lab Server... and reduce my Circuit Python project and contribution.
But I still have Circuit Python dreams, ideas for the future and suggestions to Adafruit. So let’s build a random list of 9 ideas... You will be surprised by idea number 7.
- 1. CircuitPython first
There are a few Adafruit boards (sensor) that do not have support in CircuitPython. While it is usually well documented, I keep acquiring those by mistake or with the secret hope of a future support in CP. But Adafruit should force themself to not release a product until it is clear that support in CircuitPython is guaranteed to be possible in the short or medium term.
- 2. Support for RP2040 successor
It is written in the star, Raspberry Pi is working on an evolved version of their RP2040 microcontroller. Maybe it will have more cores, more memory, more storage or what not. Adafruit should be in the starting block as soon as they have access to the hardware. CP support should be better and more user friendly than what MP can offer.
- 3. Excellent BT support for all
The support for Bluetooth is near perfect on NRF microcontroller, but there are limitations or things not supported on ESP32 S3 or PicoW board. It would be great to bring all the platforms to the same level of support for Bluetooth. Hidden limitations bring frustration to users that discover it, waiting for excellent support everywhere, platforms with limitations should be clearly identified as such.
- 4. More marketing for the software feature
Even when trying to follow the CircuitPython weekly meeting every week and the various other streams, it is still possible to miss a great new feature added to CircuitPython. Imagine if you just randomly watch those. There are great features every now and then… someone add something to the core, someone makes a great library, … but if this is from an individual, or not linked to a new product or the Adabox, the feature might go totally under the radar. I think that some effort should be made to track those gems and promote them. It could be a dedicated learn guide, a video a bit longer than the Circuit Python parsec to make it known.
- 5. Better indexing of the CircuitPython YouTube content
There are a lot of episodes of Circuit Python Parsec, product pick of the week or other CP and non CP minded segments, but over time they become harder to find as there is no searchable index of the episode. They should be listed somewhere so that newcomers can find them and others can find them again and re-visit them. If content is King, Metadata is Queen… just like we have written searchable notes for the CircuirPython meeting, do we even have an index of all the Great Search, all the Circuit Python Parsec, all the presentations in Show and Tell? I don’t think we have that, still that content could bring more value if made more accessible.
- 6. Improve USB Host support
It is there in 9.0 and very specific hardware such as “RP2040 Feather USB Host”, but those features need love and care: bug chasse, better support, more library and usage examples, learn guide, … Also the support cannot be limited to one board, We need the MAX3421E Featherwing to be a first class citizen and have the same support (don’t let that be an Arduino only product -see above-).
- 7. Create and support product with multiple MCU
The quest for a CircuitPython computer seems difficult if attempted on a single MCU and would be more easy having multiple RP2040 or other boards collaborating to produce a result. Just like AirLift needed a co-processor, Adafruit could use an RP2040 as DVI coprocessor/GPU (rather than the Feather DVI), or use two RP2040 and shared memory like Pimoroni did in PicoVision. A modular system could be created based on existing products where one could add an AirLift, or MIDI by adding one or another of Feather Wing to a main system already offering I2C joystick input, DVI output, USB Host for the keyboard…
- 8. Unified network stack
Today doing networking with CP is a bit different depending if you use AirLift or ESP32 or Wiznet. Work is in progress, but this should be unified to simplify learning are having the same code run on various hardware.
- 9. Stranger things over USB
CircuitPython can already do a lot on the USB side… being a mouse, a keyboard, and recently pretending to be a webcam. But what about pretending to be a network adapter, or presenting a usb mass storage independent from CIRCUITPY, or pretending to be a modem, a printer, a sound card? Think about all the things you can plug into a computer, and what you could do if you can program a CP board to pretend to be that and do something useful, unexpected, or original.