Driving three output devices from the custom ESP32-S3 board — a 1.3" OLED display, an LED on GPIO 2, and a small servo motor — each controlled and programmed to do something useful.
Output Devices week shifts the focus from reading the world to acting on it. A microcontroller is only as useful as what it can drive — displays, lights, motors. On my custom ESP32-S3 board, I worked with three output devices: a 1.3" OLED display over I²C, an LED on GPIO 2, and a small servo motor driven by PWM.
Each device represents a different output category — visual information, simple digital switching, and physical actuation — and together they demonstrate the range of things an embedded board can do beyond just reading sensors.
Group Assignment
Measure the power consumption of an output device.
As a group, we used a multimeter in series with an output device to measure current draw under different operating conditions — comparing idle vs active power and understanding what each device actually costs the power supply.
Individual Assignment
Add an output device to a microcontroller board you've designed, and program it to do something.
For my individual work, I connected and programmed all three output devices on the custom ESP32-S3 board — driving the OLED to display sensor readings, blinking the LED as a status indicator, and sweeping the servo in response to input.
Each output device was set up and tested independently before being combined into a single unified sketch that drives all three simultaneously.
0x3C.Tip: If the display doesn't initialize, try swapping the constructor between SH1106 and SSD1306 — both are common on 1.3" modules and look identical from the outside.
drawStr() and setCursor() to lay out the information cleanly across the 128×64 pixel canvas.Servo.h library doesn't work correctly on ESP32 boards. Installed ESP32Servo by Kevin Harrington from the Library Manager — it uses the ESP32's hardware timer channels to generate accurate PWM signals for servo control.Power note: Servos can draw significant current on movement. If the board resets when the servo moves, power the servo from an external 5V supply and share only the GND with the ESP32-S3.
Result: All three outputs respond in real time — the display updates with fresh readings every 2 seconds, the LED reacts to temperature, and the servo follows the potentiometer — confirming the board can drive multiple output types simultaneously.
Working with three different output types in the same week made the variety of ways a microcontroller can interact with the physical world very concrete. The OLED communicates structured information over I²C, the LED gives instant binary feedback via a single GPIO, and the servo converts a PWM signal into physical rotation — three completely different mechanisms, all driven from the same board.
Tying the servo position and LED trigger to live sensor readings rather than hardcoded values was the most valuable part — it shows how input and output devices work together as a system, which is the foundation for any real embedded application.