This year, we were asked to write about some of the things that we would like to see added to CircuitPython. Over the past year, I’ve noticed a few shortcomings and ended up developing some workarounds, but I would like to see some of these features added. This is more of a wishlist and I don’t know how hard it would be to add, but I figure the main point of asking us to come up with these things is to give the core developers some ides for a roadmap for the year.
Before I get into the things I would like to see added, I wanted to start with expressing the difficulty I found in coming up with a list as CircuitPython works very well as it is now and I find a new list harder and harder to write each year as it gets more feature-complete.
Threading
The first thing I would like to see added is threading. I have used it in Python on the Raspberry Pi and it can come in incredibly useful at times. The specific use case I had where I noticed this was when I was writing some examples for the MatrixPortal. Without threading, I was not able to grab data off the internet and scroll text simultaneously. I ended up displaying static text while it was downloading and continuing scrolling the text after it had completed.
Dynamic Importing
The other thing I would like to see is the ability to use strings and variables with import statements. I think the idea I had at the time I came up with this need was I tried to get a summary of python files in a folder and have it import those files dynamically. There are some methods to do this with regular python, but there currently is no way to do this using CircuitPython.
Blinka Displayio
Outside of CircuitPython, there are CircuitPython-related items I would also like to see added in the coming year. Most of that is around Blinka, out CircuitPython compatibility layer for Raspberry Pi and other Single Board Computers. In 2020, I laid a lot of the groundwork for getting displayio working in Blinka on the Raspberry Pi and got all of the Color OLED and TFT displays working with it. The main thing I would like to see is to finish up adding monochrome, grayscale, and eInk displays added to the library.
Other
The other thing I would like to see added to Blinka is some emulation of more of the smaller modules such as rtc and supervisor. One of the reasons for this would be so more code could be run natively on Blinka without modification. Aside from those I would like to see more boards added and that will likely happen because Blinka has gained more popularity and we’ve been fortunate enough to have community members add a number of boards already in the past year.
After looking back at my #CircuitPython2020 post I was pleased to see that just about everything I was hoping to come to CircuitPython did come, so hopefully the wishlist for this year will also become a reality.