Inspiration

Hardware prototyping has always felt fragmented — jumping between pinout charts, datasheets, wiring tutorials, and the IDE, with no single source of truth for whether your wiring is actually safe. Web development solved this problem years ago with tools like Vercel that take you from idea to deployment with almost no friction. That contrast was the spark: what would a "Vercel for hardware" look like? Circuitship Studio is my answer — describe a project in plain English, and get a guided, safety-aware path from idea to working firmware.

What it does

Pick a board (Arduino Uno, ESP32 DevKit, or Raspberry Pi Pico W), describe your project — "Make a smart doorbell with motion sensor and buzzer" — and Circuitship Studio infers the components, assigns safe pins, renders a live SVG wiring diagram, flags common safety mistakes, and generates matching Arduino C++ or MicroPython firmware, all inside a dark IDE-style interface with a context-aware Copilot and serial debugger.

How I built it

I kept the stack deliberately minimal — vanilla HTML, CSS, and JavaScript, no framework, no backend, no build step — so the whole thing runs by just opening index.html. At the core is one shared pin-map object: a prompt-inference layer picks components from keywords, a pin mapper assigns them to board-safe pins, and everything else — the SVG diagram, the firmware generator, the safety checks, the checklist — is just a live projection of that one piece of state.

Challenges I faced

The biggest challenge was keeping the diagram, firmware, and checklist from drifting out of sync — early versions treated them as separate pieces, which caused mismatches. Restructuring around a single source of truth fixed that. Board-aware pin labeling (D2 vs GPIO21 vs GP4) also took more care than expected, as did designing safety checks that are genuinely useful without overstating what a browser-based tool can verify.

What I learned

A single source of truth eliminates entire categories of bugs that clever synchronization can't. Constraints — no framework, no build step — pushed simpler, more direct code. And a rule-based Copilot showed me exactly how much "intelligent" behavior comes from well-modeled state, before ever reaching for a real LLM.

Built With

  • arduino
  • arduino-c++
  • arduino-uno
  • blob-api
  • browser
  • codex
  • css
  • embedded-systems
  • esp32
  • esp32-devkit
  • firmware-generation
  • gpt-5.5
  • gpt-5.6
  • html
  • iot
  • micropython
  • pin-mapping
  • raspberry-pi-pico-w
  • svg
  • vanilla-js
  • web-serial-api
Share this project:

Updates