An Expensive Hail Mary: 120 Charlieplexed LEDs on a JLCPCB Order

This is a PCB project built around 120 LEDs and a Pico, and it's one where I tried out a lot of new things at once, so it's a bit of a hail mary. I sent it off to JLCPCB and found out along the way that 0201 components are too small for the "cheap" assembly process, which pushed the price up to roughly $70 for 5 boards, plus $26 of Swiss tariffs and whatever the engineering request cost on top. The order was approved, which means JLC should be able to print the 0.1mm tracks and 0.3mm vias the design relies on. With 120 LEDs and twice as many connections, there's a good chance it's an expensive noop, but either way I'm calling it a learning experience.

I started this board wanting to try out a lot of new stuff at once, which is why I've been describing it as a bit of a hail mary from the beginning.

The first surprise came from the assembly side: the 0201 components I'd used are very small and aren't supported by JLCPCB's "cheap" assembly process. That bumped the cost up to about $70 for 5 boards. Later I had to add another $26 of Swiss tariffs, plus whatever the engineering request ended up costing. With 120 LEDs on the board and twice as many connections, it's very likely to be an expensive noop — but I'll call it a learning experience.

The good news is that the order was approved. That means JLC should be able to print the 0.1mm tracks and 0.3mm vias the layout depends on, which was one of the bigger unknowns going in.

I made several mistakes along the way, most of which I managed to work around rather than starting over. The main one was around where the pins on the Pico would be located — I only realised the problem after having already routed all 120 LEDs, so I had to change the design and shoehorn it in. I also got the dimensions wrong, and rather than rewire everything I filled the resulting empty space with drawn lines. Those zigzag shapes that look like edge cuts on the board are just silk screen — purely cosmetic filler.

On the routing itself: Charlieplexed LEDs don't have to run diagonally. That's the n00b-mode way of doing it, but the routes don't really have to be anything in particular.

It'll be a miracle if it works as expected. Once I get the PCBs back from JLC I'll start writing things up properly, and it'll all become clear — or not.