You should probably read Liberation Technology 1: Who and Why
One of the features of Liberation Technology as I currently envision it is that it has different entry points — different creative scenes that have their own uses for the technologies around microcontrollers and develop their own custom installations for their own purposes. By giving beginning creators relevant starting material (who might bring a lot of existing skill from the associated crafts of that scene), the environment can encourage the creators to fully explore and expand the medium. Eventually, those creators can go on to develop new entry points for other creative scenes that they’re a part of as their interests expand and their existing skills retain applicability.
Off the top of my head, I can imagine the needs of a few scenes, but these are just the ones that I happen to think are interesting enough to already know a little about. There are more that I haven’t considered, where I don’t really even know enough about how they technologies are used right now, never mind speculating fruitfully about how they could be used. There are scenes of amateur meteorologists and astronomers, car modders, bird watchers, body modders, makers of digital sex toys, smart watches, and simulator cockpits controllers, and though Liberation Technology certainly can be used there, I don’t know enough about how to build those things to create an applicable toolkit.
I don’t have to.
Liberation Technology by design can spread from one creative community to another through shared members and overlapping techniques. It has to entice creators within those scenes, then provide them with an initial palette that they can then refine toward their needs with the rest of their community over time.
When a creator begins to explore a new medium, it’s because they have things they want to create. The curiosity that motivates them is not about the medium itself, but about if they can use it to express something they have a hard time expressing with their current tools and techniques.
I started learning about microcontrollers because I wanted to make musical instruments (as well as other things, like robots and human interface devices). I wanted to learn how to make art that used computation because I see computation as a creative medium that is as relevant now as optical machinery was to the first photographers.
From my first staggering steps at an Arduino workshop organized among friends, I learned programming (a skill I have always wanted to build, despite lacking the talents it favors), and then — over many years — have learned electronics so I can build the support circuits I need in order to make the microcontrollers do what I wanted.
I continue to learn at my slow, autodidactic pace, following my nose about what to learn next, pursuing directions that no teacher would deliberate advise a student to pursue. Sometimes I find myself asking and re-asking questions of the Internet of Helpful Strangers when I gain new perspective, and sometimes I put down ideas forever because other ideas become more approachable and lead me on new paths.
That’s a long way from “teaching microcontrollers” or “programming class”. The process for me has gone like this:
- Develop an interest in an art form (creating musical instruments)
- Find myself at a technical limit for pursuing that art
- See a new medium (microcontrollers)
- Recognize that it can do things that I want to do
- Learn to use it
- Adapt my interests to my understanding of the medium
- Help new creators who find themselves in my sphere because not only am I paying forward my knowledge, but explaining to others help me understand and perceive it more fully
Liberation Technology might be of interest to, say, ESP32 fans. Sure. Maybe they’ll want to build a WiFi repeater with it. Or maybe a Useless Machine. But that crowd will come along no matter what, if it works well.
I feel pretty strongly, though, that we not design Liberation Technology for existing microcontroller hobbyists — it should be first designed for particular creative scenes, with those scenes designing initial setups for their community. Each of these installations has common features that:
- Provide a common visual language in a scene, using iconography and color coding that relates to their most probable use case within that scene
- Ensure the prominence of particularly relevant programming objects
- Prioritize community support from within that particular creative community so help remains within the context of that scene’s creative needs
Some highly-speculative suggestions by creative scene, along with some hardware requirements for each:
- Addressable LEDs
- Motion sensors
- Objects as signal operators, function generators, filters, etc.
- Support for purpose-built level shifters and amplifiers
- Rotary encoders
- OLED screens
- Radio Control cars, drones, planes
- Motor control boards
- Video throughput and overlays
- Radio boards
- LEGO robots
- Power supply boards to level shift existing motors and sensors to common, low-cost microcontrollers, powered by power banks
- Learning algorithms
- Video processing
These peripheral pieces of hardware are not limitations. They are the palette the new creator is offered. The IDE groups available programming objects by both their creative scene and by their function. A LEGO robot enthusiast might need to control their robot with a PID math object created within the RC scene, but they’ll probably find it by searching for objects that are designed to smooth and predict motion.
As a creator within one of these scenes becomes more proficient, they will find themselves adapting and creating new objects for their own use that they can add to their own palette of objects. As other creators work collaboratively on those objects, they will become popular choices, developing into forks as creators adapt them to their own purposes, and other creators will see those suggestions when they are searching for tools.
Some of those creators will start digging more deeply into the code that runs those objects, developing Python that runs them — or C that runs the low-level libraries to keep performance high.
All of these additions and developments percolate not only toward creators within their scene, and not only to creators at their skill level, but toward all scenes and toward all creators who might need the facilities those creators have built.
The developers of the environment, used by expert and novice alike, will be users of the environment. Built into the tool is the pedagogy that can allow it to thrive and develop.