Breadboard
docs
10 · Every part

Component reference

Generated from the same part documentation the app ships: footprints, behavior notes, pin meanings, and sharp edges, by category.

This reference also lives inside the app (Help → Component reference), where each part links to the examples that use it and can be placed with one click.

Basics

Resistor
resistor

props.resistance in ohms; props.maxPower rating in watts (0.25 default); exceed it long enough and it burns open.

ab
Inductor
inductor

props.inductance in henries (e.g. 0.01 = 10 mH). ~1 Ω winding resistance modeled; DC = near-short.

ab
LED
led

props.color: red|green|blue|yellow. Pin a = anode (+), k = cathode. ALWAYS use a series resistor (220–470 Ω at 5 V); sustained >30 mA burns it out.

ak
Capacitor
capacitor

props.capacitance in farads (100e-6 = 100 µF).

ab
Text label
label

Text annotation with NO electrical function. Anchor on any free hole; props.text is the displayed string. Use to title boards or explain circuit sections.

anchor
Button
pushbutton

Momentary SPST between pins a and b; the user clicks it to close.

ab
Trim Pot
potentiometer

props.resistance = track ohms, props.position 0–1 = wiper spot. Pins a / wiper / b.

awiperb
Keypad 4×4
keypad4x4

4×4 matrix keypad: pressing key (row r, col c) connects pin r0-r3 to c0-c3, so standard MCU scanning firmware works. The user clicks keys on the canvas (click latches, click again releases).

r0r1r2r3c0c1c2c3
RGB LED
rgbled

Common-cathode RGB LED: r/g/b anodes + shared k. Series resistor per channel.

rkgb
Buzzer
buzzer

props.kind: "active" (DC in → 2.4 kHz beep) or "passive" (follows drive frequency, e.g. from a 555).

posneg
DIP Switch
dipswitch

4 independent SPST switches: a0/b0 … a3/b3, straddling the channel. User toggles them.

a0a1a2a3b0b1b2b3
Encoder
encoder

Rotary encoder: quadrature a/b close to com as the user turns it. Add pull-ups on a and b.

acomb

Power

5V
Battery
battery

Anchor ON a "B+n" rail hole; the − lead lands on "B-n" below it. Provides the ground reference automatically. props.voltage 1.5–12 V.

posneg
Fuse
fuse

props.currentRating in amps (0.5/1/2/5). Blows open on sustained over-current (i²t); place in series with the supply.

ab
Relay
relay

SPDT. Energize the coil (~70 Ω, needs ~45 mA through coilA→coilB) to switch com from nc to no. The coil is inductive, so put a flyback diode across it (cathode to the driven side).

coilAcoilBcomnonc
7805
7805 Reg
reg7805

Linear 5 V regulator, pins in/gnd/out. Needs ≥7 V at in; out holds 5 V.

ingndout
12V
DC Jack
barreljack

12 V wall supply. Anchor ON a "B+n" rail hole like the battery; − lands on "B-n". props.voltage.

posneg
Buck Conv
buckconverter

DC-DC step-down: vin/gnd in, vout/gnd2 out. props.outputVoltage (default 5).

vingndvoutgnd2

Semis

Diode
diode

Silicon 1N4148, ~0.7 V drop. Pin a = anode, k = cathode; conducts a→k only.

ak
Vz
Zener
zener

props.breakdownVoltage (3.3/5.1/6.8/9.1/12). Wire CATHODE toward + for a shunt clamp at Vz.

ak
Schottky
schottky

Low-drop diode (~0.3 V). Pin a = anode, k = cathode.

ak
NPN
npn

2N2222-style BJT. Pin order on the board: e, b, c (left to right).

ebc
MOSFET
nmos

N-MOSFET. Pin order: g, d, s.

gds

ICs

741
Op-Amp
opamp

LM741 in a DIP-8 that must STRADDLE the channel: anchor on row e; the dy:-3 pins land on row f. Needs vcc and vee supplies.

nc1inninpveenc5outvccnc8
555
555 Timer
ne555

555 timer, DIP-8 straddling the channel (anchor row e). Classic astable: see the examples.

gndtrigoutresetctrlthresdischvcc
NAND
NAND ×4
74hc00

Quad NAND, DIP-14 straddling the channel (anchor row e). Wire VCC and GND or outputs float.

1A1B1Y2A2B2YGND3Y3A3B4Y4A4BVCC
NOT
NOT ×6
74hc04

Hex inverter, DIP-14 straddling the channel.

1A1Y2A2Y3A3YGND4Y4A5Y5A6Y6AVCC
AND
AND ×4
74hc08

Quad AND, DIP-14 straddling the channel.

1A1B1Y2A2B2YGND3Y3A3B4Y4A4BVCC
OR
OR ×4
74hc32

Quad OR, DIP-14 straddling the channel.

1A1B1Y2A2B2YGND3Y3A3B4Y4A4BVCC
XOR
XOR ×4
74hc86

Quad XOR, DIP-14 straddling the channel.

1A1B1Y2A2B2YGND3Y3A3B4Y4A4BVCC
595
74HC595
74hc595

Serial-in/parallel-out shift register, DIP-16 straddling the channel. Tie mr HIGH and oe LOW. Clock data on shcp, latch to q0–q7 with stcp. q7s cascades.

q1q2q3q4q5q6q7gndq7smrshcpstcpoedsq0vcc

Displays

7-Segment
sevenseg

Common-cathode 7-segment, straddles the channel (anchor row e). Segment pins a–g + dp, common = com. Series resistors per segment.

edcomcdpgbfa
OLED
OLED 128×64
ssd1306

SSD1306 128×64 OLED, I²C address 0x3C. Wire scl/sda to the MCU scl/sda pins and run firmware "example:oled-hello".

gndvccsclsda
NeoPixel ×8
ws2812

NeoPixel strip, 8 addressable RGB LEDs. Wire din from an MCU pin and run firmware "example:neopixel" (uses D2). 5 V on vcc.

vccdingnd
HELLOWORLD
LCD 16×2
lcd1602

HD44780 16×2 character LCD, 4-bit mode. Pair with firmware "example:lcd-hello": D4–D7 = MCU d2–d5, e = d6, rs = d7.

vccgndrsed4d5d6d7
OLED
OLED 1.3″
sh1106

SH1106 1.3" 128×64 OLED, I²C address 0x3C. Like the SSD1306 but page-addressed with a 2-column RAM offset: a correct SH1106 driver sets the column pointer to 2. Pins: gnd/vcc/scl/sda.

gndvccsclsda
OLED128²
OLED 1.5″ 128×128
sh1107

1.5″ 128×128 monochrome OLED (SH1107) on I²C at address 0x3D (so it coexists with a 0x3C SSD1306/SH1106). Page-addressed: 16 pages × 128 columns, no column offset; select page 0xB0+p, column via low nibble 0x00-0x0F + high 0x10-0x17, then write 128 data bytes. 0x20/0x21 are standalone addressing-mode commands (no argument, unlike the SSD1306). Init: 0xAE, config, 0xAF.

gndvccsclsda
LED Matrix 8×8
max7219

8×8 LED matrix driven by a MAX7219 over SPI. Pins: vcc/gnd/din/cs/clk. Clock 16-bit words MSB-first (register in high byte, data low byte); registers 1–8 are the 8 rows, 0x0C shutdown (send 1 for normal), 0x0F display-test. Use SoftSPI/bit-bang from MCU GPIOs. Powers up blank in shutdown; send 0x0C,0x01 first.

Powers up blank in shutdown; send 0x0C,0x01 before anything shows.
vccgnddincsclk
LED Matrix 32×8 (4-in-1)
max7219x4

32×8 LED matrix: four cascaded MAX7219s (FC16 4-in-1 bar) over SPI. Pins: vcc/gnd/din/cs/clk. Shift 4×16-bit words per CS-low window, MSB first: the FIRST word addresses the LEFTMOST 8×8 block; register 0x00 is a no-op filler. Registers 1–8 are rows, 0x0C shutdown (send 1 per chip to wake), 0x0F test. MicroPython max7219.Matrix8x8(spi, cs, 4) drives it exactly like hardware.

vccgnddincsclk
E-Ink 1.54″ 200×200
eink154

E-paper 1.54″ 200×200 (SSD1681), 4-wire SPI. Pins: vcc(3V3)/gnd/din/clk/cs/dc/rst/busy. Drive with SoftSPI + GPIO for dc/cs/rst and poll busy (input): writes to RAM (0x24) show NOTHING until Master Activation (0x20) completes a ~1 s refresh (BUSY is high throughout). Standard init: rst pulse, 0x12 SW reset, 0x11 0x03 entry mode, 0x44/0x45 window, 0x4E/0x4F counters, stream 5000 bytes (MONO_HLSB, 1 = white), 0x22 0xF7, 0x20, wait BUSY. The image persists with power removed.

RAM writes are invisible until Master Activation (0x20) completes.
A full refresh takes ~1 s with the characteristic inversion flash.
The image survives power-off; clearing it requires another refresh.
vccgnddinclkcsdcrstbusy
vcc: 3.3 V supply
gnd: ground
din: SPI MOSI: pixel data and commands, MSB first
clk: SPI clock: data sampled on the rising edge while CS is low
cs: chip select, active low; frames each transaction
dc: data/command select: low = command byte, high = data bytes
rst: hardware reset, active low (hold ~10 ms at init)
busy: OUTPUT: high while a refresh is running; poll until low
E-Ink 2.13″ 250×122
eink213

E-paper 2.13″ 250×122 (SSD1680), same 8-pin SPI header and command set as eink154. Controller RAM is PORTRAIT 122×250 (16 bytes × 250 rows, 4000 bytes); the panel mounts landscape (RAM y runs along the long edge), so draw into a 128×250 MONO_HLSB framebuf and rotate your content 90° like real drivers do. Refresh via 0x20 takes ~1 s (BUSY high); the image persists unpowered.

RAM is portrait (16 bytes × 250 rows); the panel mounts landscape, so rotate your framebuffer like real drivers do.
Refresh (0x20) takes ~1 s with BUSY high; content persists without power.
vccgnddinclkcsdcrstbusy

Sensors

SEN55
sen55

I²C air-quality sensor (Sensirion command set). Wire sda/scl to the MCU sda/scl pins and run firmware "example:i2c-sen55".

vddgndsdasclsel
DS3231 RTC
ds3231

DS3231 real-time clock, I²C at 0x68 (BCD time registers). Time advances with simulation time from props.baseTime (ISO string), so it is deterministic. Pins: gnd/vcc(3V3)/scl/sda.

gndvccsclsda
BME280
bme280

Bosch BME280 environment sensor, real I²C protocol at 0x76 (chip-id, calibration, compensation). Standard MicroPython/Arduino BME280 drivers read the temperature/humidity/pressure configured in the Inspector. Pins: gnd/vcc(3V3)/scl/sda.

gndvccsclsda
MPU-6050
mpu6050

MPU-6050 6-axis IMU, real I²C protocol at 0x68 (WHO_AM_I, sleep/wake, full-scale ranges). Standard drivers read the acceleration/rotation configured in the Inspector. Pins: gnd/vcc(3V3)/scl/sda.

gndvccsclsda
Temp (TMP36)
tempsensor

TMP36: out = 0.5 V + 10 mV/°C. props.tempC is the simulated temperature (user slider).

vccoutgnd
Photoresistor
photoresistor

LDR: ~1 kΩ bright to ~1 MΩ dark. props.lightLevel 0–1 (user slider). Use in a divider.

ab
HC-SR04
hcsr04

Ultrasonic ranger: ≥10 µs pulse on trig → echo high 58 µs/cm. props.distanceCm 2–200 (user slider). Pair with firmware "example:ultrasonic" (trig=d9, echo=d8).

vcctrigechognd
DHT11
dht11

Single-wire temp/humidity sensor. props.tempC, props.humidity (user sliders). Pair with firmware "example:dht11" (data=d2).

vccdatagnd
PIR Motion
pir

PIR motion sensor (HC-SR501). Pins: vcc/out/gnd. OUT is a ~3.3 V push-pull logic output that pulses high for props.holdSec seconds when motion is triggered (Inspector "Trigger motion" button).

vccoutgnd
MQ-2 Gas Sensor
mq2

MQ-2 gas/smoke sensor (LM393 breakout). Pins: vcc/gnd/aout/dout. aout ≈ 0.4 V clean air → 3.75 V dense smoke (ADC-readable); dout is push-pull and drops LOW when gas exceeds props.threshold. The heater warms up ~5 s after power (readings run high until settled; poll like real firmware does). props.gas 0–1 and props.threshold 0–1 (Inspector sliders).

No alarm and inflated readings during the ~5 s heater warm-up; poll before trusting, like real firmware.
DOUT is active-LOW (stock LM393 boards light their LED on low).
vccgndaoutdout
vcc: 5 V supply (the heater is the real load)
gnd: ground
aout: analog gas level: ~0.4 V clean air → ~3.75 V dense smoke
dout: OUTPUT: comparator alarm, LOW when gas exceeds the threshold
Soil Moisture
soilmoisture

Analog soil-moisture / water-level probe. Pins: vcc/gnd/aout. aout is an absolute analog voltage (~2.5 V dry → ~0.2 V saturated) an ADC reads. props.moisture 0–1 (Inspector slider).

vccgndaout
vcc: ≥2.7 V supply
gnd: ground
aout: analog level: ~2.5 V dry → ~0.2 V saturated

Modules

MCU
atmega328p

Arduino-Nano-style MCU straddling the channel (anchor row e). props.firmware = "example:<id>" (see FIRMWARE PROGRAMS below) or a full Intel HEX string. Wire vcc and gnd.

gndvccd2d3d4d5d6d7d13d12d11d10d9d8a1a0sdascl
Arduino Uno
arduinouno

Classic Arduino Uno (real emulated ATmega328P). Header pins: d2-d13, a0/a1, sda(A4)/scl(A5), gnd/vin/5v/3v3. Power via vin or 5v. props.firmware = "example:blink" | "example:serial-hello" | Intel HEX from the Arduino IDE (Sketch → Export Compiled Binary). Best placed free on the bench and wired pin-to-pin.

gndvin5v3v3a0a1sdasclgnd2d2d3d4d5d6d7d8d9d10d11d12d13
Pi Pico
pipico

Raspberry Pi Pico (real emulated RP2040, 3.3 V logic!) straddling the channel, anchor row e, 11 columns. Wire gnd + vsys (5 V in); the 3v3 pin is a real 3.3 V output. props.firmware = "example:<pico id>" or "uf2:<base64>".

gndvsysgp0gp1gp2gp3gp4gp5gp6gp7gp83v3gp16gp17gp18gp19gp20gp21gp22gp26gp27gp28
ESP32
esp32

Classic ESP32 DevKit (real emulated dual-core Xtensa LX6 at 240 MHz, 3.3 V logic). Boots unmodified ESP-IDF apps, official MicroPython (ESP32_GENERIC), and compiled Arduino-ESP32 sketches. Wire gnd + vin (≥3.7 V; the onboard LDO makes the 3v3 output). Pins: gnd/vin/3v3/en + g2 (onboard LED), g4, g5, g18, g19, g21, g22, g23. props.firmware = "example:esp32classic-blink" | "bin:<base64 0xE9 image>" | "elf:<base64>". I²C defaults SDA=g21/SCL=g22; ADC on g2/g4 (ADC2, 0–3.3 V, 12-bit). Serial monitor = UART0. Wi-Fi radio initializes (wlan.active/scan/connect API works) but the ether is empty, like real hardware in a shielded room.

gndvin3v3eng4g5g2g21g22g23g18g19
ESP32-C3
esp32c3

ESP32-C3 module (real emulated RISC-V RV32IMC at 160 MHz, 3.3 V logic) straddling the channel, anchor row e, 11 columns. Wire gnd + vin (5 V in); the 3v3 pin is a real 3.3 V output. props.firmware = "example:esp32-blink" | "example:esp32-echo" | "bin:<base64 0xE9 image>" | "elf:<base64>". Serial monitor = UART0. Wi-Fi radio initializes (wlan.active/scan/connect API works) but the ether is empty, like real hardware in a shielded room.

gndving0g1g2g3g4g5g6g7g83v3g9g10g18g19g20g21engnd25v3v3b
ESP32-S3
esp32s3

Real emulated ESP32-S3 (dual-core Xtensa LX7, 240 MHz). Boots unmodified ESP-IDF, Arduino-ESP32, and MicroPython firmware; same pin footprint as esp32c3 (gnd/vin/3v3 + g0-g10, g18-g21); serial console in the serial monitor. Wi-Fi radio initializes (wlan.active/scan/connect API works) but the ether is empty, like real hardware in a shielded room.

gndving0g1g2g3g4g5g6g7g83v3g9g10g18g19g20g21engnd25v3v3b
ESP32-C6
esp32c6

ESP32-C6 module (real emulated single RISC-V RV32IMAC at 160 MHz, 512 KB SRAM, 3.3 V logic) straddling the channel, anchor row e, 11 columns. Wire gnd + vin (5 V in); the 3v3 pin is a real 3.3 V output. Boots unmodified ESP-IDF, Arduino-ESP32, and MicroPython firmware. Pins: gnd/vin/3v3 + g0-g9, g18-g20, g22, g23. props.firmware = "example:esp32c6-blink" | "bin:<base64 0xE9 image>" | "elf:<base64>". I²C defaults SDA=g23/SCL=g22; ADC1 ch0-6 on g0-g6. Serial monitor = UART0. The radio is not modeled, so there is no Wi-Fi on this board.

gndving0g1g2g3g4g5g6g7g83v3g9g18g19g20g22g23engnd25v3v3b
Servo
servo

RC servo: 50 Hz pulses on sig, 1–2 ms width = 0–180°.

gndvccsig
DC Motor
motor

Small DC motor (~20 Ω winding). Spins proportional to voltage.

ab
120mm Fan
pwmfan

4-pin 120 mm fan: gnd, v12 (needs 12 V!), tach (open-collector, add a pull-up), pwm control input. props.maxRpm.

gndv12tachpwm
Laser (KY-008)
laser

KY-008 laser emitter. Pins: s (signal), vcc, gnd. Power vcc (≥2.7 V) and drive s HIGH to emit; tie s to vcc for always-on. Pairs with a photoresistor as a break-beam tripwire.

svccgnd
s: emit control: logic high turns the beam on
vcc: 2.7–5 V supply
gnd: ground
Joystick
joystick

Two-axis analog joystick (KY-023). Pins: vcc/gnd/vrx/vry/sw. VRx/VRy are wiper voltages (0..VCC) an ADC reads; sw closes to GND when pressed (add a pull-up). props.x, props.y (0–1), props.pressed set by the Inspector.

gndvccvrxvrysw

Instruments

Func Gen
funcgen

Signal source. props: waveform (sine|square|triangle|sawtooth), frequency Hz, amplitude V, offset V. Square 0–5 V = amplitude 2.5, offset 2.5.

siggnd
5.0V
Voltmeter
voltmeter

High-impedance meter between pos and neg; reading shows on the canvas.

posneg
14mA
Ammeter
ammeter

Near-zero-ohm shunt in series; reading shows on the canvas.

posneg