> cat /diy/*.md

Beginner-friendly builds you can do with parts from the shop. Each guide lists exactly what you need — click [shop] to grab it. Don't want to wire it yourself? Add our preconfiguration service and we'll flash & test it before it ships.

// available guides

  1. Flash your first ESP32 — beginner · ~20 min
  2. Raspberry Pi headless setup (no monitor) — beginner · ~25 min
  3. Wi-Fi temperature & humidity sensor — beginner+ · ~30 min
  4. ESP32-CAM Wi-Fi security camera — intermediate · ~30 min
  5. ESPHome presence sensor for Home Assistant — intermediate · ~30 min
guide_01

Flash your first ESP32

difficulty: beginnertime: ~20 minno soldering

The ESP32 ships blank. This gets firmware onto it the easy way — straight from your web browser, no toolchain to install.

What you'll need
ESP32 dev board$12.95 [shop]
USB data cable (not charge-only)have one
A computer running Chrome or Edge
Steps
  1. Plug the ESP32 into your computer with a data USB cable. (Charge-only cables are the #1 cause of "nothing happens" — if unsure, try another cable.)
  2. If the board isn't detected, install the USB-serial driver. Most boards use CP2102 (Silicon Labs) or CH340 — search that chip name + your OS, install, reboot.
  3. The no-install path: open web.esphome.io in Chrome/Edge, click Connect, pick the serial port, then Install to flash ESPHome. (Great if you're heading toward Home Assistant.)
  4. Prefer Arduino? Install the Arduino IDE → Preferences → add the ESP32 boards URL → Boards Manager → install "esp32" → select ESP32 Dev Module and your port → upload the Blink example.
  5. Confirm it worked: the onboard LED blinks, or ESPHome shows logs streaming. You're live.

Troubleshooting

  • Port doesn't appear: wrong cable or missing driver — see step 2.
  • Upload fails / "connecting…….": hold the BOOT button while it starts uploading, release when it begins.
  • Garbled serial output: set the serial monitor baud rate to 115200.
▲ back to top
guide_02

Raspberry Pi headless setup (no monitor)

difficulty: beginnertime: ~25 minno extra display needed

Set up a Raspberry Pi with no monitor, keyboard, or mouse — just your laptop and Wi-Fi. Perfect for servers, Pi-hole, or Home Assistant.

What you'll need
Raspberry Pi 5 (4GB)$109.95 [shop]
microSD 64GB (A2/U3)$16.95 [shop]
27W USB-C PD supply$19.95 [shop]
Computer with an SD card reader
Steps
  1. Download and install Raspberry Pi Imager from raspberrypi.com.
  2. Insert the microSD. In Imager: choose your device, then Raspberry Pi OS Lite (64-bit) for a headless server (no desktop).
  3. Click the gear / Edit Settings button — this is the key step. Set: hostname (e.g. pi.local), enable SSH, set a username + password, and enter your Wi-Fi SSID, password, and country.
  4. Write the image, then pop the card into the Pi and power it on. Wait ~90 seconds for first boot.
  5. From your computer's terminal, connect over SSH:
ssh # use the username + hostname you set
ssh pi@pi.local
  1. Once in, update everything:
sudo apt update && sudo apt full-upgrade -y

Troubleshooting

  • pi.local not found: find the Pi's IP in your router's device list and ssh user@192.168.x.x instead.
  • Won't join Wi-Fi: you must set the Wi-Fi country in Imager; also note Pi Zero/3 don't do 5GHz networks.
  • Lightning-bolt / low-voltage warning: use a proper PD supply, not a phone charger.
▲ back to top
guide_03

Wi-Fi temperature & humidity sensor

difficulty: beginner+time: ~30 minlight wiring

Build a little sensor that reports temperature and humidity to your phone or Home Assistant over Wi-Fi. Uses an ESP32 and a DHT22 from the sensor kit.

What you'll need
ESP32 dev board$12.95 [shop]
37-in-1 Sensor Kit (has DHT22)$29.95 [shop]
Jumper Wire Kit$7.95 [shop]
ESP32 enclosure$5.95 [shop]
Wiring
  1. DHT22 VCC → 3V3 on the ESP32.
  2. DHT22 GND → GND.
  3. DHT22 DATA → GPIO4. (Most DHT22 breakout boards include the needed pull-up resistor. If yours is a bare sensor, add a 10kΩ resistor between DATA and 3V3.)
Firmware (ESPHome)

Flash the ESP32 with ESPHome (see guide 01), then use this config:

esphome:
  name: room-sensor
esp32:
  board: esp32dev
wifi:
  ssid: "YOUR_WIFI"
  password: "YOUR_PASSWORD"
api:
logger:
ota:

sensor:
  - platform: dht
    model: DHT22
    pin: GPIO4
    temperature:
      name: "Room Temperature"
    humidity:
      name: "Room Humidity"
    update_interval: 30s

Save, install, then add the device in Home Assistant (it auto-discovers) to see live readings and build automations.

Troubleshooting

  • Readings show nan: check the DATA wire and that model: matches your sensor (DHT22 vs DHT11); add the pull-up if missing.
  • Values update slowly: the DHT22 is rated for one reading every ~2s — keep update_interval at 15s or higher.
  • Want it battery-powered? See guide 03's parts — pair an 18650 + holder + TP4056 charger, and use deep sleep to stretch battery life.
▲ back to top
guide_04

ESP32-CAM Wi-Fi security camera

difficulty: intermediatetime: ~30 minneeds a good 5V supply

Turn the tiny ESP32-CAM into a live-streaming Wi-Fi camera you can view in any browser. The catch: it has no USB port, so you flash it through a USB-serial adapter (or an ESP32-CAM-MB carrier board).

What you'll need
ESP32-CAM$15.95 [shop]
Jumper Wire Kit$7.95 [shop]
27W USB-C PD supply$19.95 [shop]
IP65 project box$7.95 [shop]
USB-TTL adapter or ESP32-CAM-MB boardsource separately
Steps
  1. Wire the USB-TTL adapter: 5V→5V, GND→GND, TX→U0R, RX→U0T. Then jumper GPIO0 → GND to enter flashing mode.
  2. In the Arduino IDE select board AI Thinker ESP32-CAM and the adapter's port.
  3. Open File → Examples → ESP32 → Camera → CameraWebServer. Set your Wi-Fi SSID/password and make sure the CAMERA_MODEL_AI_THINKER line is enabled.
  4. Click upload. When it says "Connecting…", tap the RST button on the CAM.
  5. After upload: remove the GPIO0↔GND jumper and press RST. Open the Serial Monitor at 115200 to see the camera's IP address.
  6. Browse to that IP on the same network → hit Start Stream. Mount it in the enclosure and you're done.

Prefer Home Assistant? Skip Arduino and flash an ESPHome config with the esp32_camera component instead.

Troubleshooting

  • "Brownout detector triggered" / reboots: the camera is power-hungry — use a solid 5V supply and short, thick wires, not a flaky USB port.
  • "Camera init failed": reseat the ribbon cable connector and confirm the AI Thinker model line is the one enabled.
  • Weak Wi-Fi: some boards have a u.FL connector for an external antenna — check the onboard jumper is set correctly.
▲ back to top
guide_05

ESPHome presence sensor for Home Assistant

difficulty: intermediatetime: ~30 minsmart-home favourite

A PIR sensor only sees motion — walk in, sit still, and the lights turn off. A mmWave radar (like the LD2410) detects that you're still present even when motionless. This build combines both for rock-solid room presence in Home Assistant.

What you'll need
ESP32-C3 Super Mini$8.95 [shop]
37-in-1 Sensor Kit (has PIR)$29.95 [shop]
Jumper Wire Kit$7.95 [shop]
LD2410C mmWave Presence Sensor$9.95 [shop]
Wiring
  1. LD2410 VCC → 5V, GND → GND.
  2. LD2410 TX → GPIO4, RX → GPIO5 (UART).
  3. PIR module (optional second signal): VCC → 5V, GND → GND, OUT → GPIO6.
Firmware (ESPHome)
esphome:
  name: presence-sensor
esp32:
  board: esp32-c3-devkitm-1
wifi:
  ssid: "YOUR_WIFI"
  password: "YOUR_PASSWORD"
api:
logger:
ota:

uart:
  tx_pin: GPIO5
  rx_pin: GPIO4
  baud_rate: 256000
  parity: NONE
  stop_bits: 1

ld2410:

binary_sensor:
  - platform: ld2410
    has_target:
      name: "Presence (radar)"
  - platform: gpio
    pin: GPIO6
    name: "Motion (PIR)"
    device_class: motion

Flash it, let Home Assistant auto-discover it, then use the Presence (radar) entity to keep lights on while you're sitting still — no more being plunged into darkness.

Troubleshooting

  • No radar data: double-check TX/RX aren't swapped and the baud rate is 256000.
  • Triggers from the next room: tune the LD2410's distance "gates"/sensitivity in its config or the official app.
  • PIR keeps re-triggering: adjust the time + sensitivity trimmer pots on the PIR module itself.
▲ back to top