Posts tagged ‘Adafruit’
CircuitPython 2020 Thoughts
Adafruit has asked for feedback on CircuitPython goals for 2020. Here’s their list of topics. I’ll add my comments in a different color so they stand out. This was just off the top of my head, so I’ll make updates if/when I think of other things. Comments from others that I need to incorporate will be in this dark green. I guess I’ll make my own additional thoughts in this color.
First off, I would like to give credit and thanks to everyone who makes these projects possible!
Projects you’d like to build
Oh boy. That’s a lot.
- Finish the Sphero Adafruit CircuitPython library.
- Finish the Sphero RVR Cat Chaser (uses Blinka).
- Update my weather station to do a better job of maintaining persistent data through restarts (uses Blinka).
- Revised home security system.
- Figure out why Feathers occasionally just lose their brains and require manual reset. This happens when they’re gathering data and pushing them up to AdafruitIO, for example.
- Learn how to design PCBs and create a multi-cell-bank Battery Management System for large-ish rovers. I’m thinking SAMD51 with large flash and SD card interface, with a bootloader installed (how do I do that?) to control the charging and discharging cycles.
- Design and built large solar panel array to pump electricity into above-mentioned BMS to maintain charge on large battery banks.
- Build custom PCB, again with bootloader and CircuitPython, for the High Power Rocket Flight Control System.
- Plan some high energy physics projects.
- CANbus (OBD II) hacks?
Things you think could be easier
No offense intended to any of the contributors!
- Firmware build workflow.
- Debugging hardware running CircuitPython. Maybe I haven’t spent enough time doing my homework, though.
- Submitting feature request/suggestions. (Is support@adafruit.com correct?) Scott says, “feature requests should be done as GitHub Issues.”
Additional community programs
Weekly meeting
I hadn’t really thought about this. The CircuitPython weekly meeting is very good, and Discord #circuitpython is great.
The only thing I could possibly suggest would be a live stream “CircuitPython Office Hours” (waving at Scott) where the “regulars” can take questions about CircuitPython, or, perhaps, pick one project/problem and do a deep dive into figuring it out. Scott says, “the in the weeds section [of the Monday CircuitPython status call] tends to be the place we take questions now.”
Core CircuitPython features
Core CPython libraries to add
Additional microcontroller platforms
RISC-V, but I think we’ve covered that in Discord conversations.
New boards to support
Wireless/USB keyboard and mouse FeatherWing with HDMI connector, so we can directly edit code.py and bits on the Feathers?
Library improvements
Blinka
Additional libraries
- Port the SD card support to STM32F.
- adafruit_circuitpython_sphero (but that’s on my plate)
Package management
Documentation improvements
I’m not sure where it would go, but perhaps a master cheat sheet for CircuitPython? A Google Docs page, or a ReadTheDocs page, or a Learning Guide, or a Wiki. Something that puts all the information people need in one place. I’m thinking
- Link to starters guides that Kattni wrote.
- Links to the Library Bundle magic.
- Links to the “how to add libraries” guide.
- Links to the “how to build CircuitPython” guide.
- How to request features.
- Consistent workflow for “how to report bugs.”
- How to do a pull request to work on patching code or adding new things.
- Python boilerplate templates that include the standard Adafruit header info and sequences of code blocks. Mine are:
- Docstring
- Header comments
- Libraries (standard, third-party, and package-specific sections)
- Globals
- Pre-Main Setup
- Classes
- Functions
- Main
Scott says, “the awesome page is the master cheat sheet: https://github.com/adafruit/awesome-circuitpython
- Several guides need to be revised or re-visited, or perhaps even retired (or marked retired.) I say this because, for example, the process I always used to build CircuitPython was to cd into my source directory, then “git submodule sync” and “git submodule update –init –recursive”. I learned in Discord very recently that the correct sequence is “git pull” “git submodule sync” and “git submodule update –init” (without “–recursive”). This particular one has been fixed, but I’m sure there are others. As a guide author I should go back and make sure all mine are still relevant and correct.
- Finding the most current library Bundle with .mpy files instead of .py is somewhat hidden, since every time I need to do it I think, “now where do I find this?” I always end up opening a guide, finding the library section, clicking it, and then finding the correct .zip file. It would be great if that process were uniform and documented so it’s easier for people to do without referring to multiple sources.
- It would be fantastic to get Randal Munroe (XKCD) to draw a “how to select the right boards” flowchart for Adafruit projects!
Ecosystem needs
Tooling enhancements
Github Actions
Some comments above.
the bootloader
Where to get the bits. How to “install” them on a bare chip. How to debug.