Skip to content
All robotsEmoji companionsPixel
EMOJI COMPANIONS / ESP32 OLED

PixelA little face. A first big idea.

Meet Pixel: a compact starting point for an expressive desktop robot. Bring an OLED face, a servo and an ESP32 control board together, then explore the relationship between power, wiring and a few lines of behavior.

Includes assembly, starter wiring and executable virtual JavaScript.
ASSEMBLY PREVIEW/EMOJI
Pixel · ESP32 OLED concept illustration; the 3D preview uses the actual preset geometry
Static illustration · loading 3D
Orbit the actual starter assembly. Open the workbench to edit or run it.
6components
11starter connections
0.48 kgestimated component mass
ESP32 DevKitcontrol platform
Pixel · ESP32 OLED, an illustrated emoji companions assemblyConcept illustration · inspect actual geometry above.
A COMPLETE STARTING POINT

Get to know
what's inside.

Compact face, display and expressive servo with 3.3 V GPIO aliases. All 6 components and 11 starter connections remain editable in your own project.

First robotics projectsExpressive interfacesDisplay and servo experiments
View the included component types
  • Emoji enclosure
  • 2S battery · 2.2 Ah
  • 5 V buck regulator
  • ESP32 DevKit · virtual controller
  • Emoji OLED display
  • Position servo
YOUR FIRST THREE EXPERIMENTS

Build understanding.
One change at a time.

Use the starting assembly to ask better questions about your design. Save a copy, change a parameter and compare what happens.

01

Inspect the design

Follow the battery and regulator paths into the controller, display and servo.

02

Try a change

Run the included expression loop and change its timing or display messages.

03

Compare and learn

Swap a compatible board or power source and inspect the connection checks.

emoji-esp32-oled.jsVIRTUAL API
let previous = '';
function step(robot) {
  robot.drive(0, 0);
  if (robot.brownout || robot.battery.voltage < 6.25) { robot.display('🪫'); return; }
  const face = ['😊', '🤖', '◕ ◕', '😴'][Math.floor(robot.time / 2) % 4];
  robot.display(face);
  robot.servo('servo', 0.45 * Math.sin(robot.time));
  if (face !== previous) { robot.log('Expression:', face); previous = face; }
}

The full, editable starter script is included in the workbench.

KNOW WHAT YOU'RE TESTING

Expression & servo preview

Powered display and bounded servo-horn animation. Virtual JavaScript API; no ESP-IDF/Arduino firmware emulation.

  • Editable 3D assembly, wiring and code
  • Connection and power diagnostics
  • Generic, uncalibrated component estimates
Read the simulation and fidelity guide

This is a virtual JavaScript environment. It does not emulate ESP-IDF, Arduino firmware or a manufacturer's exact hardware.

KEEP EXPLORING

Another way to build.

View all 16 robots
Emoji companions

Pocket · ESP32-C3

A lighter desktop companion around a compact C3 board.

ESP32-C3Expression & servo preview
Emoji companions

Vision · ESP32-S3

Camera, display and audio planning with a separate virtual AI host.

ESP32-S3 + AI moduleExpression & servo preview
Emoji companions

Mochi · Original companion

The original display, microphone, speaker and servo example.

Virtual controllerExpression & servo preview
FROM AN IDEA TO AN ASSEMBLY

Make Pixel your own.

Open the template, inspect the wiring and run its first behavior.

Open Pixel in the workbench