-
MicroPython
MicroPython - a lean and efficient Python implementation for microcontrollers and constrained systems
-
Adafruit_Learning_System_Guides
Programs and scripts to display "inline" in Adafruit Learning System guides
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
In MicroPython we use a much simpler scheme for error message compression that is based on a table of commonly-used words. It literally breaks the messages up into words, and if the high bit is set then the byte is a lookup into a table instead. The key thing is to minimise the amount of code required for the decompression. CircuitPython uses a more sophisticated scheme because they support localised messages and can't do the high-byte trick. If you're interested in the details and analysis see https://github.com/micropython/micropython/pull/5168
Since we (Adafruit) started working on MicroPython, we've evolved our version of it, called CircuitPython, into the easiest way to get started programming microcontrollers. In CircuitPython we've focused on making the "first five minutes" smooth and rewarding. They are then followed up by a plethora of resources such as tutorials with example code and libraries. None of this would be possible without the great CircuitPython community we've grown that centers around our Discord server.
First, a bit about me. My first experience with programming and electronics was in 2017. I spent a few of weeks trying to learn Python, and didn't get very far with it. While purchasing accessories for my first Raspberry Pi, I grabbed a Circuit Playground Express, having no idea what it was (I thought I could connect it to the Pi like a sensor, but that was not the case). It turns out the CPX is a stand-alone microcontroller. When I finally looked into what to do with it, I struggled for a bit before finding CircuitPython. Within a short period of time, I made an LED blink. Nothing I had done in trying to learn programming up to that point hooked me as much as that moment. It was the difference between manipulating data and manipulating the physical world. Within a month, I made my first library PR, and within 2 months, began working with Adafruit by publishing my first guide. Since then, I have become a Creative Engineer with Adafruit where, among many other things, I am a community leader, CircuitPython library project maintainer, software developer, hardware designer, and technical guide and library author.
We say Code + Community = CircuitPython, and we mean it. CircuitPython would not exist in the form it does today without both the community and the code. Many of our contributors are members of the CircuitPython community. To be clear, writing code is not the only way to contribute. Assisting others with questions, reviewing others' contributions, attending our CircuitPython Weekly Community Meeting, and letting us know what you'd like to see out of CircuitPython moving forward are only a few of the ways you can contribute. While the CircuitPython core code is written in C, all of the libraries are written in Python, so you don't need to know C to contribute code to the CircuitPython project. And we're always available to help you learn how to contribute in a way that works for you. Join us in the #help-with-circuitpython and #circuitpython-dev channels on the Adafruit Discord server. Visit circuitpython.org to learn more.