More resources and demo boards: Genesis Mini

Creating a standard like this turned out to be far more difficult than I ever expected. Every decision affected everything else: the size, the pinout, the price, the types of modules that would be possible, and how future proof the whole idea could be.

Designing the pinout alone was a challenge. You are not thinking about one module, or even ten. You have to think about hundreds of possible modules, both the ones that already exist and the ones that have not been imagined yet. At the same time, the pinout has to stay simple enough that different microcontrollers can support it without special tricks.

At first, AX22 was just digital and analog pins, spread across two ports. Then we grouped them. Then I²C felt necessary. Then SPI. Every addition made the system more capable, but also more complex. In reality, the standard changed many times along the way. Even after we already had 40–50 individual PCBs designed and manufactured, small changes would force everything to be redone. One pin moved, one signal reconsidered, and suddenly the entire batch had to be respun.

That meant redesigning every single PCB again. Not just once, but multiple times.

Each module was not only a PCB. It also meant schematics, pinouts, documentation pages, 3D models, and example code. A small change in the standard would ripple through everything. At times it felt like managing hundreds of projects at once, all moving, all depending on the same decisions.

This part was exhausting. One decision could undo weeks of work, and there were moments where progress felt like going backwards. But over time, the changes became fewer, and the design started to settle into something that felt right.

One of the hardest decisions was power. Should the port include 5V? Would that make things easier or more confusing? In the end, we chose to keep the port at 3.3V only. This does limit some use cases, like motors, which usually need more power. But we looked at it from the outside: if someone is driving a motor, they are almost always using an external power source anyway. AX22 is a development interface, not a power supply. Even though this decision still bothers me a little, it felt like the most practical and honest choice.

Supporting multiple protocols was another balancing act. UART does not have dedicated pins, but it can run on digital pins, either through bit-banging or native hardware mapping on most modern MCUs. PWM follows the same idea. Most microcontrollers already handle it well across many pins, and relying on this flexibility kept the port simple and widely compatible.

Trying to think about all of this at once was exhausting. There were many sleepless nights and more than a few moments where I wondered if I was overthinking everything. AX22 started as a curiosity project. I was not expecting it to grow this far, but step by step, it did.

Genesis is one result of this thinking. It brings eight AX22 ports together on a single board. But the real idea is the port itself. My hope is that people will add AX22 ports to their own PCBs. I do this myself all the time. I love prototyping, and now I can drop a pair of headers onto a board and plug in whatever module I need. It feels natural and convenient.

Genesis itself went through a dozen design directions before settling into its current form. Early on, the idea of a swappable main controller seemed appealing, but real use quickly showed that it added complexity, power issues, and long-term maintenance problems without providing meaningful benefits. In practice, a single, integrated design proved to be more robust, easier to support, and better suited for consistent documentation, examples, and long-term use.

This is the first full version of the idea, and ideally the standard will not change. Every change means respinning the entire ecosystem, and as more modules are added, that quickly becomes impractical. Stability matters.

I hope you...

Read more »