Skip to main content
Profile
Ainekio Project
Robot familiar field notes
V2 · 12 servosDated experiment

A Face on the Robot: Display, Camera, and Voice Progress

The physical robot has an illuminated wide LCD. Explore actual renderer previews, recorded camera and speaker checks, and the expression and speech work still in development.

Current status →

On this page
  1. A working display, with a growing expression library#
  2. Recorded device results and current source work#
  3. Expressions without requesting movement#
  4. Reproducing the display work#

A working display, with a growing expression library#

The October 8 photograph shows the physical robot’s wide LCD lit with its cyan resting face. The selected module is the recorded XIITIA 1.9-inch ST7789, using its 170 × 320 panel in 320 × 170 landscape orientation.

The local face library contains 59 selectable names, including resting expressions, speaking variants and faces associated with movements. Its previews come from the same C renderer used by the firmware. They are rendered pixels from the project, not concept artwork or photographs of the LCD.

Sixteen examples from Ainekio's wide LCD renderer, including cyan resting eyes, happy and sad faces, colored hearts, stars, thinking, wave and run expressions.
16 of the 59 expressions in the October 8 renderer library.

Recorded device results and current source work#

AreaRecorded resultWhat remains distinct
LCD and camera orientationThe October 6 firmware record says both were connected and working; LCD orientation was confirmed upright by the owner and fresh camera stills were uprightThe photograph establishes a lit panel, not every expression or camera mode
Connected-screen presentationThe recorded 0.8.3 installation removes the connected text footer and adds small fault iconsLater workflow-driven expression selection is a newer source extension
Speaker outputThe 0.8.4 installation record includes a completed low-volume tone; the owner reported that the connected speaker worksIt is not a measurement of long-form speech quality or simultaneous media/motion load
Wake-word captureThe normal 0.8.6 image was reinstalled after transport and acoustic checks; live wake events and PCM were recorded without reported microphone dropsThe owner reported needing close, loud speech; normal speaking-distance accuracy remains unqualified
Expression refinementsLocal source adds revised animation, colored halos and workflow feedback through the existing rendererThese working-tree changes are separate from the recorded installed versions
Longer speechLocal MetaHuman source admits synthesized speech chunks while later chunks are still renderingThe robot’s sustained playback quality needs its own listening test

The wake-word work fixed a specific recording problem: the gateway needed a recording-start event as well as the wake event to assemble the following audio. A later microphone-task stack increase addressed a live inference overflow. The recorded follow-up kept the controller connected through a 60-second check and reported 3,712 bytes of minimum free microphone stack. These are dated firmware observations, not a general claim that voice interaction is finished.

Expressions without requesting movement#

Body Control’s Faces section selects an expression independently of motion. Selecting a face named run or walk sends a face command; it does not start that gait. Actual motion can select its associated presentation, and speaker playback adds animated voice bars.

Open six animated previews from the renderer
Animated cyan resting face
Resting
Animated happy face
Happy
Thinking eyes and traveling dots
Thinking
Attentive listening expression
Listening
Animated wave expression
Wave
Animated run expression
Run

The current local profile targets a deliberately stepped 15 fps animation style. The preview generator uses the firmware scheduler’s 66 ms frame interval. This is a configured target, not a measured CPU saving or display-throughput result. Thinking has a 7.2-second sequence; Listening uses a 2.4-second pulse. An animated thinking face by itself is not evidence that remote work is progressing.

The new workflow-feedback source gives each temporary expression its own selection identity. An old release message cannot clear a newer selection, and a configurable robot-local timeout returns to the underlying face. This extension requires updated P4 firmware and its matching MetaHuman path.

Reproducing the display work#

The recorded panel uses SPI signals, despite its pins being labeled SCL and SDA; they are not the servo controller’s I²C bus. The project LCD guide contains the module-specific pin table, wiring image and earlier implementation record. faces.def owns the expression recipes, face.c draws them, and the gallery tool invokes that renderer for its previews. Display work runs outside the servo task.

The committed guide above predates some of the local refinements illustrated here. The October 8 manifest records the exact reviewed source and preview hashes. The P4 firmware record provides the dated installation and media-test details.

A Face on the Robot: Display, Camera, and Voice Progress
https://ainek.io/posts/2026-10-08-face-and-media/
Author
Ainekio
Published at
2026-10-08
License
CC BY-NC-SA 4.0