Posted by jasonpeacock 2 days ago
Of course, for readers here with a solid grasp on how LLM's operate it's not exactly surprising. Still, I feel this is exactly the kind of thing that drives home that the way we reason about (general) intelligence does not map cleanly to LLM operation, no matter how advanced the current models are.
At this level of board complexity you almost have to try to make it completely non-functional, so although it is nice to see it in practice I am not exactly surprised that a LLM with a decent bunch of assistance managed to do it. But there's quite a gap between the equivalent of poorly copying a "Hello World" from StackOverflow and making actual production-ready boards.
[0]: https://pip-assets.raspberrypi.com/categories/1214-rp2350/do...
[1]: https://jlcpcb.com/blog/how-to-design-layout-with-rp2350
A standard benchmark using kicad to create or fix electronic designs would go a long way in motivating and measuring improvement.
Currently the major mistakes that AI makes: 1) Improperly rotated connectors (backwards USB port) 2) Endless routing loops for complex boards 3) Really huge/unreadable single page schematics
I'm extremely bullish on AI for PCB design, but there is a huge, huge tooling gap. We basically need to soup up all our collective design rule checks so that AI can work in corrective loops. It needs to check for things like "opamp schematic layout conventional" and "trace width closely matches reference design for chip". One thing that makes me super excited is supply-chain resiliency when chip/subcircuit-swapping becomes super easy
1) Improperly rotated connectors (backwards USB port)
2) Endless routing loops for complex boards
3) Really huge/unreadable single page schematics
AI is exceptionally good at RP2040/RP2350/ESP32-based boards.Instead of directly generating Kicad, I chose to let it write "generators" in Python that output Kicad (S-Exps!) pcb and project - with mixed results - but I can generate a version with/without per-key Neopixels and customize certain parts of the board, including debug-stuff. I also _think_ this makes it easier to resume working on this in new sessions but not sure. Otoh, I never actually looked at the Python (vibed...) so it's still a lot of hard-coding.
I also landed on and used KicadRoutingTools after trying FreeRouting, combined with some minimal "auto-placing" code for larger ICs and such that are placed with certain constraints. My routing runs are way slower though - on the order of minutes.
I always wanted to try atopile - that might be a good match for AI/PCB work. The only thing that really held me back was the lack of routing.
Unfortunately all public open source work halted 6 months ago and they pivoted to a browser based IDE product to monetize: https://atopile.io/blog/atopile-v16
Good thing I didn’t
However checkout EDA tools https://github.com/l3wi/claude-eda/ https://github.com/drandyhaas/KiCadRoutingTools
Was non-trivial (e.g. days and days of cumulative work) but worked with Codex to build up a parametric generator where I could adjust the star size, number of rings, leds per ring. It did all the LED-to-LED routing, panel layout with mouse bites, placed decoupling caps. At the time Codex wasn't as good at spatial reasoning, I expect that Astra would do this much faster.
4 x layer PCB with GND and 5V inner layers. WS2816B LEDs (not available in strips yet). 3D printed a frame so that two stars could be opposite each other (video shows only one side). ESP32 S3 on a 3.3v to 5v shifter board sandwiched in between. ESP32 wifi antenna pokes through and sits on a keep out section. Received control signals from a central controller via ESP Now.
It's funny, I made a CM5 board for my N40L not too long ago https://www.youtube.com/watch?v=AzW4rRsD8Uk
Was sol5.6 good enough to do the actual HDMI / PCI-E and USB 3 Routing ?
It would be an interesting step to get Claude (or other LLM) to do order the PCBs itself on the JLCPCB website.
We're nearly at the stage where you can describe what a device should do, let it design the circuit (using available components on JLCPCB), design a PCB and enclosure then order PCBs, assembly and 3d printed enclosure and get it sent to you for final assembly.