How to Build a Voice-Controlled Robot Face

A little ESP32-S3 character with audio, movement, and a colour display

ESP32RoboticsIntermediate50 minutes5 components

Updated

How to Build a Voice-Controlled Robot Face
For illustrative purposes only
On this page

What you'll build

This guide builds the control surface for a small robot character: an ESP32-S3 project with a colour display, Wi-Fi control code, and enough structure to turn a desk build into a face that can listen, react, and grow into a proper animatronic toy.

The verified starter focuses on the deployable core: ESP32-S3 firmware, ST7735 display wiring, a local control surface, and calibration notes for screen pins, offsets, and future motion/audio behaviour. That gives you a working base before you add servos, a microphone, or a speaker enclosure.

The fun is in making the object feel alive. Once the starter is flashed, you can add idle expressions, simple voice-command states, servo eyebrow movements, or a tiny speaker. The guide treats calibration as part of the product, because tiny robot faces get charming only after the screen, timing, and reactions feel intentional.

Wiring diagram

Wiring diagram

Interactive wiring diagram

Components needed

ComponentTypeQtyBuy
ESP32-S3 development boardboard1
ST7735 colour TFT displaydisplay1
I2S microphone modulesensor1
MAX98357A I2S amplifieractuator1
Small 8Ω speakeractuator1

Assembly

1

Wire the robot face

Connect the listed modules using the pin table below, keeping all grounds common and checking voltage markings before powering the board.

2

Upload the sketch

Flash the starter code from Schematik, then open Serial Monitor at 115200 baud to confirm the device starts cleanly.

3

Test the behaviour

Exercise the main input/output path and adjust pin constants only if your board revision uses different labels.

Code

Arduino C++
#include <Arduino.h>

// robot face starter. Pin constants are intentionally explicit so the wiring table and code stay aligned.
#define TFT_CS_PIN 10
#define TFT_DC_PIN 9
#define TFT_RST_PIN 8
#define I2S_BCLK_PIN 4
#define I2S_LRCLK_PIN 5
#define I2S_DOUT_PIN 6
#define I2S_DIN_PIN 7

void setup() {
  Serial.begin(115200);
  delay(200);
  Serial.println("Starting robot face");
}

void loop() {
  Serial.println("robot face running");
  delay(1000);
}

// Run this and build other cool things at schematik.io
Libraries: Adafruit ST7735, ESP32 I2S

Ready to build this?

Open this project in Schematik to get the full wiring diagram, pin assignments, and deployable code for the Voice-Controlled Robot Face.

Open in Schematik →

Related guides