2026-05-02

Why I forked the ANAVI Macro Pad 10
instead of starting from scratch.

Someone already drew the schematic I needed. The least useful thing I could've done was redraw it.

When I started this, my plan was to design a 9-key macropad with a clickable rotary encoder and per-key backlight from scratch in KiCad. That was a vanity plan, and a slow one. The first weekend I spent searching for switch footprints, the second weekend I was still measuring castellated pads on my XIAO, and by the third weekend I'd written approximately zero lines of firmware.

Then I found Leon Anavi's ANAVI Macro Pad 10. 9-key 3×3 matrix with diodes. EC11 rotary encoder. Kailh hot-swap sockets for the switches. Per-key SMD LED backlight chain. Seeeduino XIAO socket so you can swap MCUs. Designed in KiCad. Released under CC-BY-SA-4.0. Functionally exactly what I wanted.

The version of me that wanted to "do it the hard way" wanted to redraw all of it in a fresh KiCad project — same schematic, same matrix, same LED chain, just with my file naming. That version of me was lying about why he wanted to start over. He wanted his GitHub repo to say "designed from first principles." Nobody was asking.

What forking actually meant

I forked the repo, migrated it from KiCad 5 to KiCad 10 (one giant migration commit; upstream is still on 5), then made the changes I actually had opinions about:

What I didn't change: the 3×3 matrix wiring, the diode anti-ghosting placement, the LED chain topology, the XIAO socket pinout. That's the part Leon already solved, and the part most likely to introduce embarrassing bugs if I redrew it "to make it mine."

CC-BY-SA-4.0 is the actual reason this works

Leon released the design under CC-BY-SA-4.0, which says: do whatever you want, including sell it, as long as you (a) credit upstream and (b) release your modifications under the same license. Both of those are easy to comply with and good things to do anyway.

Anavi's credit lives on the silkscreen of every board and at the bottom of every page on this site. The KiCad sources are public at github.com/matosichrvoje/matosic-macropad-pcb (currently private during development, opens when the design is final) under CC-BY-SA-4.0. Done.

What the forking did NOT cover

Two things are entirely my own work, not derived from Anavi's design, and so are under more permissive licenses:

The case will eventually move to a clean-room redesign so it can ship under a license I control too — the current case files in the repo are still close to Anavi's originals and therefore stay CC-BY-SA-4.0.

The ego cost

When I tell hardware-curious friends about this project, half of them ask "did you design it yourself?" and there's a temptation to fudge the answer. The truth is "I forked someone else's open hardware, modified it for my use case, and am the one shipping it." That's the same truth most product founders tell about every commodity component they didn't invent themselves — nobody apologises for using a Raspberry Pi or a Stripe API. The schematic is just another component.

The work that matters — the productisation, the firmware that's actually useful for AI coders, the brand, the Mac app, the case, the QC, the support emails — that's mine. The schematic isn't, and that's fine.

Next: JLCPCB's auto-match almost shipped me 1206-footprint LEDs as 0603 parts →