Projects
Every built-in project, in one grid
Each one is a real project, ready to run: pick a board or a kind of lesson and open it in the editor. Teachers hand any of them to a class as the starter.
Blink and press
A pushbutton and a 2 Hz clock, no processor in sight.
Hello, breadboard
A switch, a resistor and an LED: the first circuit, with the whole loop in view.
MOSFET switch
A 2N7000 switching an LED from a slide switch, with no gate resistor anywhere: the switch a board pin reaches for.
Zener regulator
A 1N4733A holding 5 V out of a 12 V supply, with the load line that says where it settles and what the load costs.
555 tone
A 555 astable drives a piezo straight from the output pin, no board and no button.
Gate lab
Two buttons drive an AND, an XOR and a NOT, so the truth table lights up as you press.
Binary counter
Two 74HC74s ripple-count on four LEDs, four steps a second, no microcontroller.
Decade chaser
A 555 astable clocks a CD4017 decade counter and ten LEDs take turns to light, with no microcontroller.
Switch shifter
A 74HC165 loads an 8-way DIP switch at the press of a button and clocks the byte out one bit a second onto an LED.
BCD display
Four DIP switches set a number in binary and a CD4511 shows it as a digit on a seven-segment display.
Decoder chaser
A 74HC14 oscillator clocks a 74HC161 counter and a 74HC138 decoder lights one LED of eight at a time.
Up/down counter
A slide switch and a 74HC02 steer a clock into a 74HC193, which counts up or down in binary on four LEDs.
ESP32-C3 blink
An LED on GPIO 8, driven by real firmware.
ESP32-C3 knight rider
An ESP32-C3 sweeps a bright dot back and forth along six LEDs, one GPIO each.
ESP32-C3 Ring Simon
Simon on a sixteen-LED ring with a rotary encoder: turn the knob to the color you were shown and press the shaft.
ESP32-C3 OLED dice
A die tumbling on a 128x64 OLED, thrown by holding an arcade button and slowing to a stop when you let go.
Uno OLED pong
Pong on a 128x64 OLED with a thumb stick for the paddle: where the ball strikes sets the angle it leaves at.
ESP32-C3 OLED pong
The thumb-stick pong, on the other board: a twelve-bit ADC moves the paddle and the score is drawn in digits.
ESP32-C3 thumb stick
A thumb stick on the ESP32-C3 ADC: the raw axes go to the serial monitor and how far the stick is pushed sets how brightly the LED on that side is lit.
Uno snake on two matrices
An 8x16 play field on two MAX7219 modules, steered with a thumb stick: eat the apple, grow, and do not hit a wall or yourself.
ESP32-C3 Stacker
The arcade stacker game on two cascaded MAX7219 matrices: the row slides, the button drops it, the overhang is cut off.
ESP32-C3 rainbow strip
An ESP32-C3 runs a hue wheel along sixteen WS2812Bs, bit-banged to the datasheet pulse widths.
ESP32-C3 OLED shapes
The same 128x64 SSD1306 demo on the other board: one driver, two pin numbers changed.
ESP32-C3 Simon
Four LEDs flash a growing sequence, four buttons play it back.
Uno traffic light
An Uno runs a pelican crossing, with a 74HC04 lighting the WAIT lamp straight off the button.
Uno reaction timer
The Uno lights a lamp at a random moment and prints how many milliseconds you took.
Uno electronic dice
A button rolls a die and an Uno tumbles the number onto a seven-segment display.
Uno Pong console
An Uno, a 240x320 TFT, a thumb stick and a piezo: a paddle game in the window an Uno can repaint.
Uno metronome
The Uno clicks a beat on a piezo and two buttons walk the tempo between 40 and 240 bpm.
Uno night light
A lamp fades up when the sensor pin goes dark, with a pushbutton standing in for the light sensor.
ESP32-C3 Morse sender
An ESP32-C3 sends a word in Morse on a lamp and a piezo at once, and a button picks the next message.
Uno reaction duel
Two buttons, three lamps and a piezo: the Uno lights the middle lamp and the first press wins.
ESP32-C3 dice
A button rolls a die and an ESP32-C3 tumbles the number onto a seven-segment display.
ESP32-C3 binary clock
An ESP32-C3 writes the hours, minutes and seconds as three rows of binary lamps on a 128x64 OLED.
Uno joystick bar graph
A thumb stick moves a bar along eight LEDs, and pressing the stick swaps the bar to the other axis.
Uno shift-register bar
An Arduino Uno runs a bar and a bouncing dot along eight LEDs through a 74HC595.
Uno matrix ball
An Arduino Uno bounces a dot around an 8x8 LED matrix on a MAX7219, three wires and eight registers.
OLED on an Uno
A 128x64 SSD1306 over bit-banged I2C: titles, shapes, a bouncing ball and a counter.
Uno Snake
Snake on a 240x320 TFT with a thumb stick: eat the apple, grow, and repaint only the squares that moved.
Two boards, one wire
An ESP32-C3 pulses a number down one wire and an Arduino Uno counts it back out on the serial monitor.
555 blinker
A 555 astable blinks an LED, and a slide switch swaps the timing resistor from 1.4 Hz to 7.4 Hz.
Doorbell
A pushbutton lifts the 555 out of reset and a 4 Hz astable beeps the buzzer.
ESP32-C3 plasma panel
Three sine waves drift across a 16x16 WS2812B matrix, 256 LEDs on one wire from an ESP32-C3.
ESP32-C3 Pong
The same TFT paddle game on an ESP32-C3, full screen at forty frames a second, played with two buttons.
Pico chaser
A dot sweeps back and forth along six LEDs on GP2 to GP7, one GPIO each.
STM32 chaser
The same six-LED sweep on the Black Pill, wired to PA1 through PA6.
Dimmer
A potentiometer on A0 sets the brightness of an LED on pin 9. Turn the knob while it runs.
ATtiny85 dimmer
A knob on PB2 dims an LED on PB0, out of an eight-pin chip in the breadboard. No board, no USB, just the chip and its two rails.
Night light
A light-dependent resistor in a divider fades a lamp up when the room goes dark. Drag the slider on the sensor.
Lux night lamp
A BH1750 light meter on I2C and an LED on a PWM pin: the darker the room, the brighter the lamp, with the reading in lux on the serial monitor.
Dosing pump
A peristaltic pump on an encoder gear motor and an L9110S: press the button and it pumps exactly 5 ml, counting the encoder's pulses and slowing for the last turn.
Line-following cart
A five-channel line tracker, a TB6612FNG and two gearbox motors on a 2S 18650 pack: the cart steers to keep the tape under its middle sensor and stops at the finish bar.
Pocket gaussmeter
A 49E linear Hall sensor on A0 and a 16x2 I2C LCD: the field in gauss, which pole it is, and the strongest seen since power on.
Secret knock lock
An SW-420 vibration sensor on the door listens for a secret rhythm, three quick knocks and one after a pause: the right one opens the servo bolt, anything else flashes red.
Touchless soap dispenser
An FC-51 infrared obstacle sensor and a pump on a transistor: hold a hand under the spout and it pumps one dose, then waits for the hand to go away.
Thermometer
A TMP36 on A0 and the temperature on a 16x2 LCD in four-bit mode, with the high and low on the second row.
Parking sensor
An ultrasonic ranger and a buzzer that beeps faster as the wall gets closer. Drag the slider to move the wall.
D-pad pong
A TFT, a console pad and a piezo on an Uno: paddle game, arrow keys or clicks, A to serve.
Tilt alarm
Tip the tilt switch and a buzzer and a lamp sound off until the arcade button on pin 3 resets them. Half-size board.
Servo fader
A slide potentiometer on A0 sets the angle of a servo on pin 9. Push the fader and the horn follows.
Motor on a transistor
A DC motor driven from pin 9 through a 2N2222, with a flyback diode across it. The PWM ramps up and down and the shaft follows.
Motor both ways
An L293D H bridge turns a DC motor forward and back from three Uno pins, and shows what braking does that coasting does not.
Robot car drive
Two gearbox motors on an L298N module from six Uno pins: forward, a turn, a spin on the spot and reverse, with the speed on ENA and ENB.
Obstacle-avoiding car
A 2WD robot car on an L298N with an HC-SR04 on the front. It drives ahead, and when something comes within 25 cm it backs up, turns and carries on.
L9110 motor by hand
An L9110S module, a motor, a four-AA pack and two switches, no board: each output follows its input, and equal inputs brake.
TB6612 robot drive
Two gearbox motors on a TB6612FNG from a four-AA pack, with the SparkFun library: forward, half speed, a spin, reverse, a brake and standby.
Bumper car
A 2WD robot car on a DRV8833 with two lever microswitches for bumpers. It drives until a bumper is hit, then backs off and turns away from that side.
Robot arm with joysticks
A four-servo desktop arm on four Uno pins, steered by two joysticks with the Servo library: base and shoulder on one stick, elbow and claw on the other.
Pick and place arm on a PCA9685
A four-servo arm on a PCA9685 servo board with the Adafruit library: it picks a part up on one side, sets it down on the other and goes home, over and over.
Stepper turntable
A photo turntable on a 28BYJ-48 and its ULN2003 board with AccelStepper: press the button and the plate turns a full circle in eight stops, flashing the camera LED at each.
Touch climate display
An AHT20 and a 16x2 I2C LCD on the same two wires, and a TTP223 touch pad that flips the reading between Celsius and Fahrenheit.
Heat, magnet and wheel
An LM35 on A0, an A3144 Hall switch on pin 2 and a slotted photo interrupter counting a 20-slot wheel on pin 3, read on the serial monitor.
Steppers on A4988 and DRV8825
STEP and DIR into an A4988 and a DRV8825, each turning a NEMA 17. The same pulses to both, and the DRV8825 turns half as far.
Music box
A tune on an 8 ohm speaker through 100 ohms, a continuous-rotation servo turning the drum, and a coin vibration motor on a transistor buzzing on the beat.
Relay board
A four-channel relay board chasing four lamps from pins 2 to 5. Active low, so LOW is on, and the pins are written HIGH before they become outputs.
Relays reverse a motor
Two motors turned both ways by relays: one on a two-channel board wired as an H bridge, one on a bare DPDT relay switched by a transistor.
Claw machine controller
Move a two-motor gantry with the joystick, then press Drop to lower, grab, lift and release with a winch motor and servo.
Door alarm
A reed switch and a magnet on pin 2: open the door and a buzzer and a lamp latch on until the arcade button resets them. Half-size board.
Motion light
A PIR module, a transistor and a lamp, no board. Click the dome and the light holds for two seconds after the movement stops.
Comparator boards
An MQ-2, a flame sensor and a TCRT5000, each lighting a lamp from DO with no board. The same LM393 under three sensors, and DO goes low.
Squeeze and bend
A force-sensing resistor lights a lamp harder the harder it is pressed, and a flex sensor climbs from 25 k on a multimeter as it bends.
Thermometer on an I2C LCD
A 10 k NTC bead in a divider on A0, the temperature on a 16x2 character LCD over its PCF8574 backpack. Four wires to the display.
Weather station
A DHT22 on one wire and a 16x2 I2C display on two. Forty bits and a checksum, a first reading that fails, and a sensor that will not be hurried.
Air quality monitor
An SGP30 and an SHT31 on one I2C bus with a four-digit LED display: CO2 in ppm, then temperature and humidity, and a red LED above 1000 ppm.
Color sorter
A TCS34725 color sensor looks at each candy and a servo swings the chute to its bin: six colors, and an empty chute it waits on.
Scoreboard
A MAX7219 eight-digit display driven with LedControl: home score, a ten-minute game clock and the guest score, with a button for each team and one for the clock.
Round watch face
An analog watch face on a GC9A01 round display: hour, minute and second hands from a DS3231 clock, redrawn each second.
E-paper name badge
A 2.13 inch SSD1680 e-paper badge driven with GxEPD2: the name drawn once, a button that swaps the bottom line with a partial refresh, and a picture that stays with the power off.
Clap switch
A KY-038 sound sensor: clap and the lamp toggles. A clap is a burst of pulses on D0, and A0 barely moves, because there is no amplifier.
Kitchen scale
A bar load cell on an HX711, read with the HX711 library: tare, a scale in counts per gram, and grams on the serial monitor.
Plant monitor
A soil moisture sensor, a rain sensor and a water level sensor on three analog pins. Two read lower when wetter and one reads higher.
Desk clock
A DS3231 over I2C and a TM1637 on two wires that are not I2C. BCD registers read in one transfer, a colon that blinks every second, and a logic analyzer on the bus decoding every byte.
Community
What people are building
The shared projects with the most hearts on them. Every one opens in the editor.
Yours could be the first
Build something and make it public. It shows up here for anyone to open and heart.
Share a project