The bench

Everything in the parts bin

Each tile is the part itself, drawn by the same code the editor uses, and all of it is free.

  • 228parts on the bench
  • 31boards to put them on
  • Freeall of them, on every plan

Basics

6 parts

The four almost every circuit on this site reaches for first: a light, a resistance, a timing element and a clock with no processor behind it.

Boards

32 parts

Each board has a documented memory map and pinout. Its page shows which peripherals run here and where the model stops.

ESP32-C3-DevKitM-1
A RISC-V board that runs your firmware at 160 MHz on the real memory map.
Raspberry Pi Pico
The RP2040 board on our own Cortex-M0+ core. Pick a program and press Run.
Raspberry Pi Pico W
Raspberry Pi Pico W (RP2040). The same board and the same pinout as a Pico, with the CYW43439 on it. The WiFi is simulated (no radio, no real internet), and the on-board LED, which hangs off that chip rather than off GP25, is driven through the same path. Everything else is the Pico.
STM32F411 Black Pill
The Black Pill on our own Cortex-M4 core. Pick a program and press Run.
BBC micro:bit V2
The nRF52833 board with its 5x5 LED matrix, buttons A and B and a speaker. Wire the rings to a breadboard.
STM32 Blue Pill (F103)
The Blue Pill on our own Cortex-M3 core, with an ADC. Pick a program and press Run.
Arduino Uno R4 Minima
The Uno R4 Minima on our own Cortex-M4 core: an Uno shape, a Renesas RA4M1 at 48 MHz. Pick a program and press Run.
Arduino Uno R3
A complete ATmega328P at 16 MHz, wired with jumpers like the real one.
Arduino Nano
The same ATmega328P, small enough to push into the breadboard, with two extra analog pins.
Arduino Mega 2560 R3
Fifty-four digital pins, sixteen analog inputs and four serial ports, at the real addresses.
Arduino Leonardo
Arduino Leonardo (ATmega32U4). An Uno-shaped board whose USB goes straight to the chip: Serial is the USB and Serial1 is pins 0 and 1. Load one of the built-in programs, or your own ELF, and the monitor shows what it prints.
ESP32-C6-DevKitC-1
ESP32-C6-DevKitC-1. A RISC-V board with thirty-one GPIOs and an addressable RGB LED on GPIO 8: load one of the built-in programs, or your own ELF, and its UART appears in the serial monitor.
ESP32 DevKit V1
The classic ESP32 on our own Xtensa core, at 240 MHz. Write your sketch or pick an example, and press Run: it compiles in the tab.
ESP32-S3-DevKitC-1
The ESP32-S3-DevKitC-1 on our own Xtensa core, at 240 MHz, with its RGB LED on the RMT. Write your sketch or pick an example, and press Run: it compiles in the tab.
ESP8266 NodeMCU V1.0
The NodeMCU on our own Xtensa core, at 80 MHz. D0 to D8 are not GPIO numbers and both LEDs are active low, here as on the desk.
Seeed XIAO SAMD21
Seeed XIAO SAMD21 (ATSAMD21G18A). A thumbnail-sized Cortex-M0+ board: eleven pads that are all analog inputs, Serial on the chip’s own USB and Serial1 on D6 and D7.
Arduino Pro Mini, 5 V 16 MHz
The Nano without its USB: the same chip and the same programs, in the smallest Arduino there is.
Arduino Pro Mini, 3.3 V 8 MHz
The Pro Mini at 3.3 V and 8 MHz. A sketch built for 16 MHz runs at half speed on it, as it does on the bench.
Arduino Micro
The Leonardo shrunk to push into a breadboard: USB on the chip, pin 13 LED and all.
SparkFun Pro Micro
The Leonardo’s chip on a Pro Mini footprint. No pin 13 LED: its lamps are RX and TX, lit by pulling low.
Wemos D1 mini
The NodeMCU’s ESP8266 on a board a third the size, with the same D0 to D8 names.
ESP-01S
An ESP8266 with eight pins and four of them GPIO. Wired with jumpers, because it will not sit in a breadboard.
Seeed XIAO ESP32-C3
The ESP32-C3 on a thumbnail. D0 to D10 are the XIAO’s own numbers, not GPIOs.
Seeed XIAO ESP32-C6
The ESP32-C6 on a thumbnail. D0 to D10 are the XIAO’s own numbers, and the user LED is on GPIO 15, lit LOW.
ESP32-DevKitC V4
Espressif’s own ESP32 board: thirty-eight pins named by GPIO, an inch between the rows, no user LED.
Wemos LOLIN32 Lite
A classic ESP32 with a LiPo socket. The blue LED on GPIO 22 lights when the pin is LOW.
Seeed XIAO ESP32-S3
The ESP32-S3 on a thumbnail. D0 to D10 are the XIAO’s own numbers, and the user LED is on GPIO 21, lit LOW.
Arduino Nano ESP32
An ESP32-S3 on the Nano outline, with an orange LED on D13 and an RGB LED that lights LOW.
Arduino Nano RP2040 Connect
The Pico’s RP2040 on the Nano outline, with an LED on D13. The radio and the IMU are not modeled.
ESP32-C3 SuperMini
The smallest C3 board in common use, with a blue LED that lights when its pin is LOW.
Arduino Uno R4 WiFi
The Uno R4 with a 12 x 8 LED matrix to draw on, and WiFi on a simulated network.
ATtiny85
A whole microcontroller in eight pins, straight into the breadboard.

Inputs

21 parts

Buttons, switches, sticks and pads, for whatever a person presses, twists or types.

Pushbutton
A 12 mm tactile switch. Hold it while the simulation runs.
Thumb stick
Two axes and a push switch. Drag the cap to move it.
Rotary encoder, KY-040
A shaft that counts clicks, either way around, with a switch under it. Turn it with the pointer or the wheel.
Game console buttons
A D-pad plus A and B, six switches to ground. Click them, or use the arrow keys, Z and X.
PS/2 keyboard
A real PS/2 keyboard on two wires, scan code set 2. Click it while it runs and type on it for real; Escape gives the keyboard back.
Arcade button
The 30 mm cabinet button with a microswitch under it. Hold it while the simulation runs.
LED arcade button
The cabinet button with a lamp inside: the switch on two tabs, a 5 V or 12 V LED on the other two.
Arcade joystick lever
The Sanwa JLF style lever: four microswitches to a common GND. Drag the ball, or use the arrow keys or W A S D.
Rotary dial
A telephone dial: its pulse contacts open once a step, ten a second, while the off-normal contacts say it is running.
Potentiometer
A 10k knob you can turn. Ends to the rails, wiper to an ADC.
Slide potentiometer
The same track laid out straight, with a knob you push along it.
Touch sensor, TTP223
A finger on the pad drives SIG high within 60 ms. No pull-up, no bounce.
Touch foil
A piece of foil for the CapacitiveSensor library. A finger adds about 100 pF, and the count climbs.
Limit switch, lever microswitch
COM rests on NC and moves to NO while the lever is held. The robot limit switch.
Keypad, 4x4
Sixteen keys on eight pins. Scan a row at a time, and mind the ghosting.
Keypad, 4x3 telephone
The twelve keys off a telephone, on seven pins. The same scan, two pins cheaper.
Keypad, 5x4 calculator
Twenty keys on nine pins, printed the way a desk calculator is: four operators, a point, clear and equals.
Tilt switch
A ball that rolls off the contacts when you tip it. Click to tip it.
Slide switch
Two positions, held where you leave it.
4-way DIP switch
Four little switches in a chip-sized body.
8-way DIP switch
Eight switches, one byte, set by hand.

Sensors

47 parts

Light, heat, distance and motion, read the way the real part reads them.

Light sensor
A light-dependent resistor, with a slider for how bright the room is.
Photoresistor sensor module
The LDR on a board with a comparator: an analog level, and a digital output set by its trimmer.
NTC temperature sensor module
A 10 k thermistor in a divider on a little board: an analog voltage that falls as it warms.
Phototransistor
The Arduino Starter Kit light sensor: a collector current that follows the light, read across a resistor. Drag the slider.
Light sensor, BH1750
A light meter on I2C that answers in lux: the count is lux times 1.2, with no calibration.
Temperature sensor
Half a volt at zero degrees and 10 mV a degree. Drag the slider to change the weather.
Temperature sensor, LM35
Ten millivolts a degree from zero, no offset. Needs 4 V, so a 3.3 V board is out of its datasheet.
Humidity sensor, AHT20
Temperature and humidity over I2C at 0x38, one 80 ms measurement at a time.
Thermistor, 10k NTC
Ten kilohms at 25 C and steeply lower as it warms. Put it in a divider and read the middle.
Temperature and humidity, DHT22
One wire, forty bits and a checksum. Drag the two sliders for the weather it reads.
Ultrasonic ranger
Pulse TRIG and time ECHO. The slider moves whatever it is looking at.
VL53L0X time-of-flight sensor
Times a pulse of laser light to the target and back: millimeters over I2C, up to about 1.2 m.
MAX30102 pulse oximeter
Red and infrared light through a fingertip: the pulse and the blood oxygen, over I2C.
APDS-9960 gesture sensor
Light, color, proximity and hand swipes from one little chip, over I2C.
Motion sensor
Click the dome to move in front of it. OUT stays high for two seconds after the movement stops.
Microwave motion sensor
A microwave radar that sees movement through plastic and thin walls. OUT holds 3.3 V for two seconds after.
Reed switch
Two blades in glass that snap shut when a magnet comes near. Drag the magnet along it.
Hall sensor, A3144
A south pole near the face pulls OUT low. It needs a pull-up and ignores the north pole.
Hall sensor, 49E linear
An analog Hall sensor: half the supply with no field, up 1.4 mV a gauss for a south pole and down for a north.
Photo interrupter, slot
A beam across a slot. Spin the encoder wheel through it and count the pulses.
Soil moisture sensor, capacitive
No metal in the soil: a capacitor in a stake. Wetter reads lower, which surprises everybody.
Gas sensor, MQ-2
A heated tin-oxide element on a comparator board. It reads like a gas leak until it has warmed up.
Sound sensor, KY-038
A microphone with no amplifier. Claps light it; talking barely moves it. Press clap.
Flame sensor
An infrared eye on a comparator board. DO goes low when a flame comes within half a meter.
Rain sensor
A plate of interleaved traces. Rain on it and AO falls; past the trimmer DO goes low.
Water level sensor
Bare traces and a transistor: S jumps the moment the tip gets wet and creeps up after.
Line sensor, TCRT5000
An infrared LED and eye side by side. Low over white, high over the black line.
Line tracker, 5 channel
Five TCRT5000s in a row on one board, the robot car's eyes. Each output is high over the black line.
Obstacle sensor, FC-51
An IR LED and receiver on a comparator board. OUT goes low when something comes within about 13 cm, closer for black.
Vibration sensor, SW-420
A vibration switch on a comparator board. DO is low when still and pulses high for a knock, so a sketch takes the first edge.
Force-sensing resistor
A pad that is open until touched, then lower the harder it is pressed.
Flex sensor
A strip that rises from 25 k flat as it bends. Five of them make a glove.
Load cell with HX711
A 24-bit converter and a bar load cell. Clock it on SCK and it hands you grams.
Accelerometer and gyroscope, MPU6050
Six axes over I2C. Drag the board to tip it and the accelerometer follows gravity.
Nine-axis IMU, MPU-9250
An MPU6050 with a compass inside: set BYPASS_EN and the AK8963 answers at 0x0C. Drag it to tip it.
Accelerometer, ADXL345
Three axes of acceleration on I2C at 0x53, 2 to 16 g, from the GY-291 board. Drag it to tip it.
Temperature sensor, DS18B20
A thermometer with a 64-bit serial number, so any number share one wire. Needs a 4k7 pull-up.
Thermocouple converter, MAX6675
A K-type thermocouple on SPI, a quarter degree a count up to 1023. Read it no faster than four times a second.
Pressure, humidity and temperature, BME280
Temperature, humidity and air pressure as raw counts, and the datasheet sums that turn them into weather.
Temperature and humidity, SHT31
Temperature and humidity over I2C at 0x44, a CRC on every word, 15 ms a reading.
Air quality sensor, SGP30
CO2eq and TVOC over I2C at 0x58, after a 15 s warm-up. The heart of an air quality monitor.
Color sensor, TCS34725
Red, green, blue and clear counts over I2C at 0x29, with a white LED to light the card. The eye of a color sorter.
Pressure and temperature, BMP280
The same sensor without the humidity: pressure, temperature, and so altitude.
BMP180 pressure sensor
Bosch’s older barometer on its GY-68 board: pressure and temperature, read through the Adafruit BMP085 library.
Current monitor, INA219
A 0.1 ohm shunt in series with a load, and the current, voltage and power it sees, over I2C.
Sixteen-bit ADC, ADS1115
Four sixteen-bit analog inputs, single or in pairs. The gain sets the full scale, not the supply.
ADC and DAC, PCF8591 (YL-40)
Four 8-bit inputs and one analog output on I2C at 0x48, with the YL-40 board LDR, thermistor and trimmer on jumpers.

Outputs

27 parts

Motors, motion and light that draw more current than a pin can give on its own.

Addressable RGB LEDs
RGB LEDs on one wire, as a strip or a 16 wide panel.
Motor driver, TB6612FNG
Two MOSFET H bridges for two motors. STBY must be high, and PWM low is a brake.
Motor driver, L9110S
Two tiny bridges on one supply. Each output follows its input, and no coast: equal inputs brake.
Hobby servo
A pulse width, not a duty cycle. The horn turns to wherever you send it.
DC motor
Needs a transistor. The shaft shows how fast it is going and which way.
Gear motor with encoder
A gearbox motor with a two-channel Hall encoder on its back: count the edges on A and B for how far and how fast, and which way.
Robot car chassis, 2WD
Two TT gear motors on a deck. Drive one wheel faster than the other and it turns.
Motor driver, DRV8833
Two small H bridges from 2.7 V up. Both inputs low coasts, both high brakes.
Robot arm, 4 servos
Base, shoulder, elbow and claw: four SG90s, each on its own signal pin.
Stepper motor, 28BYJ-48 with ULN2003
Four coils and a 1:64 gearbox: 4096 half-steps to a turn, and a stall if the sequence jumps.
Motor driver, L293D
Four half bridges. A pair across a motor turns it both ways, and keeps 2.4 V for itself doing it.
Relay module
A logic level on one side, something that has nothing to do with logic on the other.
Motor driver module, L298N
Two H bridges for a robot car. Three jumpers decide how it is powered and whether ENA and ENB are pins.
Stepper driver, A4988
STEP and DIR in, two coil currents out, and it does nothing until RST is tied to SLP.
Stepper driver, DRV8825
The A4988 footprint with 1/32 steps and a 45 V rail. The mode pins mean something else.
Stepper motor, NEMA 17
Two coils, 200 steps a turn, and lost steps if you ask it to go faster than it can.
Biaxial stepper
Two steppers on one axis, a hand each, like a clock: two pairs of coils, 200 steps a turn.
Relay board, two channels
Two relays with optocouplers, active low: LOW on IN is on.
Relay board, four channels
Four relays in a row, active low, each on its own terminal.
DPDT relay
The bare relay: a coil for a transistor to drive and two poles on one arm.
Vibration motor
The coin in a phone. 75 mA and a start voltage, so it wants a transistor.
Solenoid
A coil and a plunger. It needs a transistor, and a diode across it for the kick when it lets go.
Speaker, 8 ohm
Eight ohms, so 100 ohms in series or a transistor, and tone() plays through it.
RGB LED
Three dice under one lens on a shared leg, and three resistors.
Two-color LED, KY-011
Red and yellow-green dice under one lens on a shared leg. PWM the two legs for orange and yellow.
Piezo speaker
Makes whatever tone you drive it with, and shows it.
Buzzer
Sounds when it is driven, and shows it on screen.

Displays

26 parts

Everything with a screen, a digit or a dot, ready to draw on the moment it is wired up.

OLED display, 128x64
The small OLED over I2C at 0x3C. Two wires plus power.
TFT display, 240x320
A 2.4 inch color TFT over SPI, for games and gauges.
LED matrix, 8x8
An 8x8 LED matrix on three wires. Chain more for a longer sign.
Handheld console
An OLED, a D-pad and four buttons in one case. Wire it as an OLED plus six switches and an old sketch still works.
Character LCD, 16x2
Two rows of sixteen characters, HD44780 style, on four data lines.
Character LCD with I2C backpack
The same two rows on four wires, through the PCF8574 backpack at 0x27. Mind the backlight bit.
Four-digit display, TM1637
Four digits and a colon on two wires. It looks like I2C and is not: no address, and bits go the other way around.
LED and key board, TM1638
Eight digits, eight LEDs and eight buttons on three wires. STB low, bytes least significant bit first.
Four-digit display, HT16K33 backpack
Four digits and a colon on two I2C wires at 0x70. The chip scans, dims and blinks the display itself.
Eight-digit display, MAX7219
Eight seven-segment digits on three wires. The chip scans them itself; LedControl writes a digit at a time.
Character LCD, 20x4
Four rows of twenty on the same controller as the 16x2. Text that runs off row 0 carries on in row 2.
Character LCD, 20x4, with I2C backpack
The 20x4 on four wires, through the same PCF8574 backpack at 0x27.
OLED display, 1.3 inch SH1106
The 1.3 inch OLED. It looks like an SSD1306 and is not: 132 columns, page addressing only.
OLED display, 1.12 inch SH1107
A square 128x128 OLED on I2C, the Grove 1.12 inch: sixteen pages of RAM for a 2 KB frame.
OLED display, 128x32
The 0.91 inch strip: the same SSD1306, 32 rows tall.
TFT display, 1.8 inch ST7735
A 1.8 inch color TFT, 128x160, on the ILI9341 command set. Pick the tab color your library was told.
IPS display, ST7789
An IPS color TFT, 240x240, 240x320 or 135x240. It shows a negative until the driver sends INVON.
Round display, GC9A01
A 1.28 inch round 240x240 IPS screen over SPI: watch faces, gauges and dials.
E-paper display, SSD1680 2.13 inch
250x122 black and white e-paper over SPI. Seconds to refresh, and it keeps the picture with no power.
E-paper display, 2.9 inch
296x128 black and white e-paper over SPI. Three seconds to refresh, and it keeps the picture with no power.
Touch TFT, 2.8 inch ILI9341 with XPT2046
The 2.8 inch TFT with a resistive touch panel on its own SPI bus. Press on the picture to touch it.
Touch TFT, 2.8 inch ILI9341 with FT6206
The 2.8 inch color TFT with a capacitive touch panel: the display on SPI, the touch on I2C.
Nokia 5110 display, PCD8544
The 84x48 screen out of a Nokia phone. Dark on gray, readable without the backlight, and invisible until Vop is set.
LED bar graph, 10 segments
Ten LEDs in a row in one DIP, each with its own two legs and its own resistor.
Four-digit seven segment, multiplexed
Four digits on twelve legs: one digit at a time, fast enough that the eye sees all four.
Seven segment display
Common anode or cathode, with the decimal point.

Logic

31 parts

Ideal gates for teaching the idea, then the real 74HC chips that carry it out with a datasheet’s own delay.

I2C EEPROM, 24LC256
Thirty-two kilobytes that keep. Two address bytes, 64-byte pages, and 5 ms of silence after every write.
I/O expander, PCF8574
Eight more pins on two wires. No registers: a byte out is the pins, a byte in is what they read.
I/O expander, MCP23017
Sixteen more pins, two ports of registers, and interrupts. Tie RESET and the address pins or it is not there.
74HC595 shift register
Eight outputs from three pins. Shift a byte in and latch it.
CD74HC4067 analog multiplexer
Sixteen channels to one pin through analog switches: four address lines pick which one.
74HC4051 analog multiplexer
Eight channels to one pin through analog switches: three address lines pick which one.
NLSF595 tri-color LED driver
A 595 whose outputs sink current: eight cathodes of common-anode RGB LEDs on three pins.
74HC74 dual flip-flop
Two D flip-flops with preset and clear. Divide a clock with one.
74HC00 quad NAND
Four NAND gates in a DIP-14, with supply pins and a real propagation delay.
74HC04 hex inverter
Six inverters, same package, same rules.
74HC08 quad AND
Four AND gates.
74HC32 quad OR
Four OR gates.
74HC86 quad XOR
Four XOR gates.
74HC02 quad NOR
Four NOR gates, with the outputs on the other pins.
74HC14 Schmitt inverter
Six inverters with hysteresis. Clean up a slow edge, or make an oscillator from one R and one C.
74HC138 3-to-8 decoder
Three address lines pick one of eight outputs and pull it low.
74HC161 4-bit counter
Counts 0 to 15 with every output changing on the same edge.
74HC165 input shift register
Eight inputs on three pins. Load the switches, then clock them out.
74HC193 up/down counter
Counts up on one clock and down on the other.
CD4017 decade counter
Ten outputs, one high at a time, stepping along on every clock.
CD4511 7-segment driver
Four wires in, one lit digit out.
Logic gate
An ideal AND, OR, NAND, NOR or XOR, for teaching the idea before the chip.
Inverter
An ideal inverter, for the same job.
Bit switch
One ideal logic input, 0 or 1, and an input pin when the circuit becomes a chip.
Bit lamp
One ideal logic lamp, and an output pin when the circuit becomes a chip.
Number switch
Up to eight bits as one number you click to count, and a multi-bit chip input.
Number display
Up to eight bits shown in hex, decimal and binary, and a multi-bit chip output.
Constant bit
A clean 0 or 1 for an input that must be tied, inside a chip or out.
Step clock
A clock that ticks once a click, or runs free, for watching a counter move.
Program ROM
The Kestrel CPU's program: 256 instructions written in its own assembly.
Terminal
A text screen that takes one byte a clock, for a computer built from gates.

Timers and analog

19 parts

The parts an analog island solves together by nodal analysis: the 555, the op-amp, a diode, a transistor, a MOSFET and the bench instruments that watch them.

Transistor (NPN or PNP)
The part that lets a board pin run something a board pin cannot run.
Optocoupler, 4N35
An infrared LED and a phototransistor in one DIP-6, with no wire between them: switch a circuit you cannot connect to.
MOSFET
An enhancement-mode MOSFET, N-channel (2N7000 style) or P-channel (BS250 style) by its model. A voltage on the gate (no current at all) switches the channel between drain and source. It needs no gate resistor.
Diode
One way only. For flyback, for steering, and for a battery in backwards.
Zener diode
A Zener diode. Reverse biased it holds its own voltage; the band marks the cathode, which goes to the positive side.
4-resistor network
Four pull-ups or pull-downs in one row of pins.
8-resistor network
Eight pull-ups in one part, the partner every DIP switch wants.
NE555 timer
The real 555, astable or monostable, with the timing the capacitor gives it.
Op-amp
An ideal op-amp on a single supply, for amplifiers and comparators.
Inductor
Resists a change in current, so it rings with a capacitor.
Signal generator
Sine, square or triangle at the frequency and amplitude you set.
Function generator
The bench box: four shapes, knobs on the face, and a real 50 ohm output that a load pulls down.
Oscilloscope
Two channels on any two nodes, drawn against time as it runs, with the time base on the face.
Logic analyzer, four channels
Four probes, every edge with the time it happened, a timing diagram on the face and the whole capture as CSV.
Multimeter
Ten positions on the dial: volts, amps, ohms, continuity that beeps, diode, capacitance, frequency and duty.
Bench power supply
0 to 30 V with a current limit, and CV and CC lamps that say which of the two it is holding.
Frequency counter
Clip it on anything: frequency, period, duty, high time and a running pulse total, counted rather than sampled.
Logic probe
High, low, pulsing, and nothing at all for a pin nobody is driving, which is the fault a voltmeter cannot find.
Component tester
Push an unknown part into the three sockets and it names it, measures it, and says which leg is which.

Clocks and links

11 parts

A real-time clock, a Bluetooth serial bridge and the two infrared parts, each a small module wired over a few pins.

Power and wiring

9 parts

The rails, the ground and the breadboard itself: the wiring every other part stands on.

Put one on a breadboard

Open the editor, drag a part out of the bin and wire it up. Nothing to install, and no account needed.

Free forever. Every board and part. Saves your projects. Works on Chromebooks.