Hardware / A practical starting guide
Getting started with hardware development
A tiny screen, a few sensors, and software you can change. That’s enough to build a desk companion, a useful home controller, or the first version of a product.
20 kits & board families · 11 software tools · 9 project ideas
· Reviewed 28 October 2026
Choose your starting point
These are different kinds of tools. Pick the kind of product you want to make, then choose the board.
- A device with a screen
- Start with an integrated LCD or AMOLED kit. A wired-up screen and working example remove a lot of early driver and pinout work.
- A quiet, occasional-update display
- Choose e-paper for a calendar or daily dashboard. Choose LCD / AMOLED for moving graphics, games, and responsive controls.
- A small custom gadget
- Choose an ESP32, XIAO, Nano, or Pico board and add the sensors and display you need. Expect more wiring and power-design work.
- A Linux app in a box
- Choose a Raspberry Pi computer for a browser kiosk, camera service, or software that needs Linux packages. Plan for boot time, storage, and power.
ESP32-S3 is a chip family; a development kit adds power circuitry, connectors, and sometimes a screen, microphone, or enclosure. The same chip does not mean two kits share firmware or pin mappings.
Your first working prototype — checklist & tools
- Bring up the board. Use a data-capable USB cable, install the correct board package, select the port, flash the vendor example, and read the serial output. Keep a copy of this known-working setup.
- Learn the electrical basics. Identify ground, supply voltage, GPIO, and current limits from the pinout. Most ESP32 GPIO uses 3.3 V logic; don’t assume a 5 V sensor output is safe.
- Read one input. Start with a button, then an I²C sensor. Learn pull-ups, debouncing, and the difference between I²C, SPI, UART, and I²S for audio.
- Draw one useful screen. Show a real value, add a loading or error state, and update it without freezing input. Learn timing and state machines before adding more features.
- Add connectivity. Fetch one JSON response or publish one MQTT message. Handle disconnects and timeouts. Keep service secrets in a backend where practical.
- Make it survive normal use. Test unplugging, rebooting, unavailable Wi-Fi, invalid data, and long runtimes. Add saved settings, update recovery, and power measurements as the project grows.
A small starter toolbox
One kit, a USB data cable, a multimeter, a breadboard, jumper wires, resistors, a button, and one documented sensor. Add a soldering iron when you need permanent connections; a logic analyzer is useful later. A ready-made screen kit can get you started with just USB.
Find a development kit
A curated starting catalog, rather than every board on the market. Select any kit for photos, a suggested use, software, and Indian purchase links. Check the exact revision and included accessories before ordering; prices and availability vary by seller and region.
20 of 20 kits · select a kit for details
Photos are from the manufacturers, with documentation links on each kit. Indian retailer links were located on 28 October 2026; stock and prices are not monitored live. Search links and related variants are labeled. Hardware facts link to vendor documentation or the manufacturer’s repository. Waveshare’s panel-revision note is also covered in the awesome-esp32 device guide. Build suggestions are editorial recommendations.
Understand the software stack
Arduino IDE / VS Code → build, flash, and monitor that firmware
You don’t need to learn everything here. Start with one board and one firmware path. An editor, a framework, a graphics library, and a simulator solve different problems.
Arduino IDE + Arduino coreStart here · C/C++
The editor uploads your sketch; the board core supplies hardware APIs. On ESP32, install the ESP32 board package and start from your board vendor’s working example.
Official documentation →ESP-IDFFirmware framework · C/C++
Espressif’s official SDK for ESP chips. Learn it for FreeRTOS tasks, networking, power management, OTA updates, and deeper control. Use the SDK release your board example supports.
Official documentation →VS Code + PlatformIOEditor & build tooling
Manage environments, libraries, builds, and serial monitoring in a project. It can use Arduino or ESP-IDF underneath; it is not a replacement firmware framework. Check board and framework-version support first.
Official documentation →MicroPythonFirmware runtime · Python
A friendly way to explore GPIO, sensors, and networking through a REPL. Generic ESP32-S3 support does not automatically include drivers for your screen, touch controller, or audio hardware.
Official documentation →CircuitPythonFirmware runtime · Python
Useful for quick iterations and supported Adafruit / maker boards. Choose an exact supported board build and matching libraries from the official downloads list.
Official documentation →ESPHomeDevice firmware · YAML
A practical route to Home Assistant sensors, switches, and displays. Choose supported components and pin mappings; you still need to understand your wiring.
Official documentation →LVGLDisplay UI library · C
Build buttons, menus, charts, and touch interfaces on embedded displays. It sits above display and touch drivers. Match the LVGL major version to your vendor example and UI editor.
Official documentation →M5Unified + UIFlow2Board libraries & visual programming
M5Stack’s libraries and visual tools help bring up supported M5 hardware. Start from the tutorial for your exact device rather than assuming every M5 board has the same sensors.
Official documentation →WokwiSimulator
Try supported microcontrollers, buttons, sensors, and displays in the browser before buying parts. A simulator cannot confirm your real board’s power behavior or wiring.
Official documentation →KiCadSchematics & PCB layout
Move from jumper wires to a schematic and custom PCB after the prototype works. Learn footprints, electrical rules, board layout, and manufacturing exports.
Official documentation →ZephyrLater · RTOS & device ecosystem
Worth exploring for supported multi-vendor hardware, device drivers, and structured embedded projects. Check the board list before choosing it for a display-heavy kit.
Official documentation →For screen design, begin with the vendor’s display driver and graphics example. Add LVGL when you need widgets and multiple screens. Visual UI editors can help later, but their generated code must match your LVGL version.
Build something you’ll want to keep
Start with the first milestone, then add polish. Reference firmware only runs on its supported hardware; a similar-looking board may need a port.
Desk weather & room monitorFirst build
Build idea · T-Display S3 + BME280 sensor
Show temperature and humidity locally, then add a weather API once the sensor works.
First milestone: Display one real sensor value and refresh it without blocking button input.
You’ll learn: I²C, sensor readings, display layout, JSON, Wi-Fi reconnects.
ESPHome components & examples →Pomodoro cubeFirst build
Open-source reference · Waveshare ESP32-S3-Touch-AMOLED-1.8
Start with a countdown; later use the IMU to choose a duration by turning the device.
First milestone: Get a start / pause timer working before adding orientation controls.
You’ll learn: Timers, button input, motion sensing, UI state.
Orientation timer project →A tiny desk petNext step
Open-source reference · Waveshare ESP32-S3-Touch-AMOLED-1.8
Animate a character that reacts to touch or motion. Study pixelcat for a complete example.
First milestone: Draw two expressions and switch between them on touch.
You’ll learn: Animation, state machines, touch input, memory budgeting.
pixelcat source →Home Assistant control panelNext step
Open-source reference · A touchscreen explicitly supported by openHASP
Make physical room controls for lights, scenes, and sensor readings.
First milestone: Toggle one test entity and show its actual state.
You’ll learn: MQTT, touch events, network availability, local control.
openHASP source & supported hardware →A quiet e-paper calendarNext step
Build idea + reference · An existing PaperS3, or supported hardware for TRMNL firmware
Show your next event, today’s tasks, or a daily snapshot. Refresh only when the information changes.
First milestone: Render a static daily layout before connecting a calendar service.
You’ll learn: E-paper refresh, caching, sleep / wake, timekeeping.
TRMNL firmware & hardware support →A Wi-Fi LED lampFirst build
Open-source reference · Supported ESP32 + addressable LEDs + suitable power supply
Use WLED to turn a small LED strip into a controllable desk light.
First milestone: Light a short, low-brightness strip using the documented wiring.
You’ll learn: GPIO output, power budgeting, effects, local web control.
WLED project →Push-to-talk voice companionAdvanced
Open-source reference · A board supported by xiaozhi-esp32, with microphone and speaker
Capture a short request and play the response. A network model handles open-ended conversation.
First milestone: Record and replay audio locally before adding a model service.
You’ll learn: I²S audio, buffering, networking, latency, service credentials.
xiaozhi-esp32 source & board list →Off-grid message terminalNext step
Open-source reference · Two supported LoRa devices; T-Deck radio variant is one option
Send short messages between nodes without a cellular data connection.
First milestone: Exchange a message between two nearby nodes with compatible settings.
You’ll learn: Radio configuration, antennas, packet delivery, power use.
Meshtastic supported devices →Build-status display for your deskFirst build
Build idea · CoreS3, AtomS3, or T-Display S3
Show whether your latest build passed, then add a button to open its report on your computer.
First milestone: Serve a local success / failure value and display it on the board.
You’ll learn: HTTP or MQTT, state mapping, polling, a small backend.
T-Display S3 display examples →For LED projects, size the external supply and wiring for the load rather than powering a whole strip from GPIO. For LoRa, follow your local frequency and radio rules. Voice projects may depend on network services and ongoing API costs; a microphone on an ESP32 does not mean a large language model runs on the chip.
From a prototype to a product
A development kit can prove the interaction and even power a small pilot. A sellable product also needs repeatable hardware, reliable firmware, and a way to support it.
- Make the design repeatable. Record the bill of materials, board revision, wiring, toolchain versions, and assembly steps.
- Design the power system. Measure current, select a suitable regulator and supply, and use the battery protection and charging circuit specified for your cell. Stay with low-voltage USB projects while learning.
- Design the enclosure and PCB. Check mounting, connectors, antenna clearance, heat, and access to programming pins. Learn KiCad and an enclosure CAD tool once the electronics work.
- Plan updates and recovery. Add tested firmware updates, a recovery path, device provisioning, and sensible handling of user data and credentials.
- Check what you can ship. Review software and hardware licenses, manufacturing tests, component supply, and the certification requirements for your intended market. A certified radio module does not automatically certify the finished product.
Sources & further reading
Sources & further reading
Inspired by the project-first organization of awesome-esp32 and the browsable hardware catalog at Joseph Zhou’s AI Hardware. Descriptions here are original summaries; board and tool links above point to their own documentation.
- awesome-esp32 — community projects, device notes, and tools to explore next.
- Joseph Zhou’s AI Hardware — another way to discover devices and explore the hardware ecosystem.
- Espressif’s ESP-IDF getting-started guide — the official ESP32-S3 firmware path.
- M5Stack lifecycle notice (April 2026) — discontinuation of original AtomS3 and PaperS3.
- Wokwi documentation — try a supported circuit before ordering hardware.
Reviewed against available documentation on 28 October 2026. This is a learning guide, not a claim of hands-on testing of every kit. Confirm current hardware revisions, firmware support, licenses, and service requirements with the linked project.