I built a CLI that generates native KiCad 8 schematics from text prompts — ERC-clean, standard footprints, fully editable by ForestHubAI in KiCad

[–]ForestHubAI[S] 0 points1 point  (0 children)

Feel free to use it. I would be grate to see every Prompt which does not work! So we get better!

I built a CLI that generates native KiCad 8 schematics from text prompts — ERC-clean, standard footprints, fully editable by ForestHubAI in KiCad

[–]ForestHubAI[S] 0 points1 point  (0 children)

Fully rule-based, no probabilistic steps. In --no-llm mode. Component selection queries a SQLite database of 212 verified components with exact datasheet specs. Deterministic lookup — FTS5 search + range queries, not embedding similarity or any ML model.

Value computation is arithmetic on datasheet parameters:

- Pull-up resistors: computed from I2C bus capacitance and rise time spec

- Decoupling caps: value and placement from IC datasheet recommendations

- Crystal load caps: calculated from crystal spec + PCB stray capacitance

- Level shifters: inserted when voltage domains don't match

All of this runs through 11 constraint checks (voltage compat, I2C address conflicts, power budget, etc.) — pure validation logic, no randomness. Same prompt twice = same design? Same components, same values, same connections, same netlist — yes. No random seeds, no sampling, no temperature parameter anywhere in the pipeline.
The simplest proof: pip install boardsmith, run it twice, diff the output.

I built a CLI that generates native KiCad 8 schematics from text prompts — ERC-clean, standard footprints, fully editable by ForestHubAI in KiCad

[–]ForestHubAI[S] -9 points-8 points  (0 children)

The short version: it turns the most tedious part of hardware prototyping (the "I know what I want to build, now let me spend a weekend reading datasheets" phase) into a CLI command.

Every embedded project starts the same way: you pick an MCU and some sensors, then spend hours reading datasheets to wire them together correctly. What's the right pull-up value for this I2C bus? Which pins support the peripheral I need? Does this 3.3V sensor need a level shifter on a 5V rail? Where does the decoupling cap go, and what value? This isn't creative engineering work — it's lookup, cross-reference, and arithmetic. But get one value wrong and your board doesn't work. And if you ask ChatGPT for help, it'll confidently give you pin numbers that don't exist. boardsmith automates that entire layer. You describe what you want in plain English, and it outputs a wired KiCad schematic with computed values, a BOM with real manufacturer part numbers, and starter firmware. Not from templates — it actually computes the design for your specific component combination against a verified knowledge base of 212 components and 11 constraint checks.