How embedded-purdue/irltspice works
IRLTSPICE turns a circuit design into a physical analog circuit: the PC-side IRLC software parses and compiles a netlist, checks it against board constraints, routes it across physical components, and can emit programming data for the board. Firmware receives configuration and applies it to the hardware; shared framing and ring-buffer code support motherboard communications. The README documents the product workflow and capabilities, but excerpts do not expose every compiler-stage call or firmware protocol link, so uncertain connections are omitted or marked unverified.
Main entry points: compiler.hpp Compiler Workflow · main.c Legacy Config Loop · parse_spice.cpp SPICE Parser · route.cpp Circuit Routing
Components 20
PC Circuit Compiler
- IRLC Entry
software/irlc/src/main.cpp - Compiler Workflow
software/irlc/include/core/compiler.hpp - SPICE Parser
software/irlc/src/core/parse_spice.cpp - Eeschema Parser
software/irlc/src/core/parse_eechema.cpp - Circuit Netlist
software/irlc/include/core/netlist.hpp - Value Handling
software/irlc/src/core/numbers.cpp - Circuit Verification
software/irlc/src/core/verify.cpp - Board Model
software/irlc/src/core/board_info.cpp - Circuit Routing
software/irlc/src/core/route.cpp - Board Programming
software/irlc/src/core/emit.cpp
Shared Communications
- Packet Framing
firmware/src/common/framing.c - Ring Buffer
firmware/src/common/ring_buffer.c
Legacy Board Firmware
- Legacy Config Loop
firmware/src/legacy/main.c - Potentiometer Control
firmware/src/legacy/bruz200.c - Single Cell Control
firmware/src/legacy/single_cell.c
Motherboard Firmware
- Motherboard Entry
firmware/src/motherboard/main.c - Command Receiver
firmware/src/motherboard/recv_commands.c
Other components
- Circuit Designer
- Circuit Design
- IRLTSPICE Board
Connections 20
- Circuit Designer → Circuit Design: designs circuit
README.md - Circuit Design → IRLC Entry: supplies input
- IRLC Entry → Compiler Workflow: invokes
software/irlc/src/main.cpp - Compiler Workflow → SPICE Parser: parses SPICE
- Compiler Workflow → Eeschema Parser: parses EDA
- SPICE Parser → Circuit Netlist: builds netlist
software/irlc/src/core/parse_spice.cpp - SPICE Parser → Value Handling: parses values
software/irlc/src/core/parse_spice.cpp - Compiler Workflow → Circuit Verification: checks circuit
- Compiler Workflow → Circuit Routing: routes design
software/irlc/src/core/route.cpp - Circuit Routing → Board Model: uses board model
software/irlc/src/core/route.cpp - Circuit Routing → Circuit Verification: uses rules
software/irlc/src/core/route.cpp - Compiler Workflow → Board Programming: emits programming
- Board Programming → IRLTSPICE Board: programs board
- Legacy Config Loop → Potentiometer Control: configures pots
firmware/src/legacy/main.c - Legacy Config Loop → Single Cell Control: uses cell control
firmware/src/legacy/main.c - Motherboard Entry → Command Receiver: receives commands
firmware/src/motherboard/main.c - Command Receiver → Packet Framing: parses frames
firmware/src/motherboard/recv_commands.c - Packet Framing → Ring Buffer: reads buffer
firmware/src/common/framing.c - Legacy Config Loop → IRLTSPICE Board: applies configuration
firmware/src/legacy/main.c - Motherboard Entry → IRLTSPICE Board: controls board