Final Project
Loco Pik
A small alien companion living on your desk.
Loco Pik is a group of soft, curious, and emotional alien-like creatures. They do not mainly communicate through human language, but through movement, light, sound, and simple emotional reactions.
World View
Loco Pik is a group of small alien-like companions from a distant planet. They
quietly land on Earth and begin to live on human desks. They are not cold
machines or traditional functional robots. Instead, they are soft, curious, and
emotional little creatures that accompany people in daily life.
Loco Pik does not mainly communicate through human language. It senses the
surrounding environment and expresses itself through small body movements, light,
sound, and simple emotional reactions. When it sees something interesting, it may
become curious. When it reaches the edge of the table, it becomes nervous and
moves backward. When there is no interaction for a long time, it may slowly enter
a sleepy state.
In this fictional world, Loco Pik does not have a fixed body shell. Its outer
shell can change according to different environments, materials, and emotional
states. Some shells may look like stone, wood, ceramic, moss, or other natural
textures. This setting explains why the robot can have replaceable shells and why
AI-generated forms and 3D printing can be used to create different bodies for the
same internal system.
Research
The core idea of Loco Pik is language-free emotional companionship. Instead of
designing it as a voice assistant that only answers questions, I want it to feel
like a small living creature on the desk. Its emotional interaction is built from
several physical outputs: leg movement, ambient light, and short sound feedback.
These outputs allow the robot to show different states such as happy, curious,
nervous, sleepy, and idle.
The robot will use the Seeed Studio XIAO ESP32S3 Sense as the main controller.
This board provides Wi-Fi, BLE, an onboard camera, and an onboard digital
microphone. The camera can be used for simple visual sensing, such as detecting
objects on the desk. The microphone is kept as a sound input for future voice
interaction. For the first working prototype, the goal is not to run a complete
large language model inside the robot. Instead, the focus is to build a stable
physical system that can sense the environment, move safely, and express emotion
through simple behaviors.
The outer shell will be fabricated mainly through 3D printing. By combining
AI-generated form exploration with 3D modeling and 3D printing, the robot can
have a soft, organic, and non-mechanical appearance. The current front design
uses two sensing holes: one for the camera and one for the microphone sound
input. A bottom LED will be used as an ambient emotional light, so the front face
can remain simple and mysterious.
First Sketch
This is my first concept sketch, along with AI-generated conceptual product renderings based on it. These early images helped me explore the personality, body proportion, surface texture, and interaction direction of Loco Pik. At this stage, the design still included many possible technologies, such as AI dialogue, NFC interaction, emotional sound, replaceable shells, and body movement.
Midterm Update
From concept to a
buildable robot system.
At the midterm stage, I refined the project scope. The world setting and emotional companion concept are kept, but the first prototype now focuses on movement, sensing, edge detection, sound output, and a custom PCB.
What I Keep From the Original Concept
The world view of Loco Pik is still the foundation of the project. Loco Pik is
still a group of small alien companions from a distant planet. They are not
designed as cold machines, but as warm and curious desktop creatures. The organic
body, the replaceable shell, the alien identity, and the language-free emotional
interaction are all kept.
The project also keeps the idea of using AI-generated visual exploration and 3D
printing to create natural shells. The shell can be inspired by wood, stone,
ceramic, moss, or other natural materials. This makes the robot less mechanical
and more like a small creature with its own personality.
What I Reduced or Moved to Later Versions
Some early functions were interesting, but they would make the first prototype too complex. At the midterm stage, I decided to reduce them or move them to future versions.
| Original Idea | Midterm Decision | Reason |
|---|---|---|
| Full AI dialogue inside the robot | Moved to future extension | ESP32-S3 cannot run a full large language model locally. The first version will focus on sensing and emotional behavior. |
| Front screen facial expression | Removed from first prototype | The current front face uses one camera hole and one microphone sound hole. Emotional expression will be shown through movement, bottom light, and sound. |
| Two LED eyes | Changed to one bottom ambient LED | The front face should remain simple. The bottom LED can create a softer emotional atmosphere. |
| Vibration motors | Removed from first prototype | Four servo legs already provide enough physical expression for the first version. |
| Magnetic social interaction between robots | Moved to later version | This requires multiple robots and extra sensing design, so it is not part of the first build. |
| NFC feeding and emotion cards | Optional extension | NFC interaction is still interesting, but the first priority is movement, sensing, sound, and power stability. |
What I Added or Clarified
During the midterm development, I clarified the hardware system and separated
the project into smaller functional parts. Instead of treating the robot as one
complex system, I divided it into sensing, movement, sound, light, power, and
structure. This helped me decide which parts should be kept in the first
prototype and which parts should be moved to future versions.
I first made a hand-drawn wiring plan to understand how the XIAO ESP32S3 Sense,
PCA9685 servo driver, servos, ToF sensor, camera, speaker amplifier, LED, NFC
module, and battery could be connected together. This sketch helped me check
the relationship between different modules before making the PCB. In the later
simplified version, I removed the TCRT5000 sensor and kept only one ToF distance
sensor for obstacle and edge-distance testing.
| Part | Hardware Choice | Purpose |
|---|---|---|
| Main controller | Seeed Studio XIAO ESP32S3 Sense | Camera, onboard microphone, Wi-Fi / BLE, and robot control. |
| Camera | Original camera or compatible OV5640 camera | Used for simple visual sensing. A 24Pin 0.5mm FFC/FPC extension cable may be tested. |
| Microphone | Onboard PDM microphone | The second front hole will be used as a microphone sound hole. No external microphone is planned for the first version. |
| Leg movement | 4 × MG90S micro servos | Four legs create emotional movement and simple wandering behavior. |
| Servo control | PCA9685 servo driver | Controls four servos through I2C and reduces GPIO usage on the XIAO. |
| Sound output | MAX98357A I2S amplifier + small speaker | Plays emotional sound effects instead of full human speech. |
| Distance sensing | VL53L0X / VL53L1X ToF sensor | Detects table edge or obstacles by measuring distance. |
| Light feedback | WS2812B bottom LED | Creates emotional ambient light from the bottom of the robot. |
| Power system | 2S LiPo battery + 5V / 6V 5A UBEC | Provides stable current for four servos, speaker, and LED. |
Connection With Previous Weeks
The current version of Loco Pik is not an isolated final project idea. It is
gradually developed from the skills and experiments I completed in previous Fab
Academy weeks. Each weekly assignment helped me test one part of the final
system, including electronics design, electronics production, output devices,
camera-based AI recognition, and digital fabrication.
Through these weekly experiments, I started to understand how the final robot
should be divided into smaller technical systems: structure, movement, sensing,
output, power, and interaction. The midterm stage helped me connect these
separate tests into one clearer final project plan.
| Previous Week | Experiment | Connection to Final Project |
|---|---|---|
| Week 06 — Electronics Design | Designed and tested a custom PCB layout. | This experience helped me design the first version of the final robot PCB, including the XIAO socket, servo connectors, LED output, power input, and signal routing. |
| Week 08 — Electronics Production | Milled, soldered, and checked a single-sided PCB. | The same CNC PCB fabrication process will be used for the custom interface board of Loco Pik. |
| Week 10 — Output Devices | Tested output devices such as a servo motor and LED. | The servo test became the basis for the four-leg movement system. The LED test also influenced the bottom ambient light design. |
| Week 11 — Networking and AI Recognition | Tested camera-based recognition using an AI model. | This experiment supports the visual sensing direction of the final robot, such as recognizing an apple or detecting objects on the desk. |
| 3D Design and 3D Printing | Modeled and fabricated physical parts through 3D printing. | These skills will be used to fabricate the round outer shell, internal supports, camera holder, sensor holder, and four short legs. |
System Diagram and Hardware Architecture
This system diagram shows how the main controller, sensing modules, output
devices, movement system, and power system are connected in the first prototype
of Loco Pik. The updated hardware system is organized around the XIAO ESP32S3
Sense. The camera and microphone are used as the front sensing organs. The
PCA9685 servo driver controls four MG90S servos through the I2C bus. The ToF
sensor, optional PN532 NFC module, and PCA9685 can share the same I2C bus. The
MAX98357A amplifier uses I2S for sound output, while the WS2812B LED provides
bottom ambient light.
The power system is separated from the XIAO logic power. The servos and audio
amplifier will be powered by an external 5V or 6V UBEC, while the XIAO only
sends control signals. All GND lines must be connected together.
| XIAO Pin | Connected Module | Function |
|---|---|---|
| D4 / GPIO5 | PCA9685, ToF, optional PN532 | I2C SDA |
| D5 / GPIO6 | PCA9685, ToF, optional PN532 | I2C SCL |
| D0 / GPIO1 | MAX98357A | I2S BCLK |
| D1 / GPIO2 | MAX98357A | I2S LRC |
| D3 / GPIO4 | MAX98357A | I2S DIN |
| D8 / GPIO7 | WS2812B | Bottom ambient LED |
First Version of the Final PCB
Based on the electronics design experience from Week 06, I designed the first
version of the PCB for the final project. This PCB is not the complete final
control system yet, but it is an important step toward integrating the robot's
hardware into a cleaner structure.
The first PCB focuses on organizing the basic connections for the XIAO board,
servo connectors, LED output, power input, and extra pin headers. It helps
reduce messy jumper wires and makes the robot easier to assemble inside the
small 3D printed body.
After milling the board, I soldered the pin headers and checked the basic connection layout. This version is mainly used to verify the physical arrangement of the connectors and the feasibility of the single-sided PCB. From this test, I can further adjust the board size, connector direction, and power routing for the next version.
Mechanical Structure
The robot will use a round 3D printed body. The front shell has two holes. One
hole is used for the camera, and the other one is used as a microphone sound
hole. This creates a simple alien-like face while keeping the sensing functions
visible.
The current version has four servo-driven legs. The four MG90S servos will be
mounted around the lower body to create simple walking, turning, and emotional
movement. The legs are not designed for fast walking, but for small desktop
movements and expressive body gestures.
The camera should be placed close to the shell opening. If the lens is too far
from the hole, the shell may block the camera view. Therefore, I will either
place the XIAO ESP32S3 Sense close to the front shell or test a short 24Pin
0.5mm FFC/FPC camera extension cable. If the camera extension becomes unstable,
I will return to the safer structure where the whole XIAO ESP32S3 Sense board is
mounted near the front face.
The bottom of the robot will contain the battery, UBEC, speaker, ToF distance
sensor, and bottom ambient LED. In this version, I kept only one ToF distance
sensor for obstacle and edge-distance testing.
Updated Behavior Plan
The robot will not rely on a large AI model to control every movement. Instead, it will use a behavior-based system. The camera and ToF distance sensor provide input, and the program decides the emotional state and movement response.
| Input | State | Output Behavior |
|---|---|---|
| Camera detects an object or apple | Curious / happy | Move closer, play a cute sound, and turn on the bottom light. |
| ToF distance sensor detects a table edge or close obstacle | Nervous | Stop, move backward, turn away, and play a nervous sound. |
| No interaction for a long time | Sleepy | Slow movement, low light, and quiet sound. |
| Optional NFC card detected | Specific interaction mode | Trigger feeding, comfort, sleep, or play mode. |
sense the environment → decide a simple emotional state → move the legs →
play sound → show bottom light
Tasks to Be Completed
| Task | Status | Next Step |
|---|---|---|
| Finalize the system diagram | In progress | Update the diagram after the final PCB and sensor choices are confirmed. |
| Test XIAO ESP32S3 Sense camera and microphone | In progress | Check camera position and microphone opening in the shell. |
| Test four MG90S servos with PCA9685 | To do | Build simple walking, turning, and emotional movement patterns. |
| Test ToF distance sensor | To do | Use it for obstacle and edge-distance detection. |
| Test MAX98357A speaker output | To do | Play short emotional sound effects. |
| Test bottom ambient LED | To do | Connect light colors to different emotional states. |
| Design and mill the next PCB version | To do | Improve power routing, connector direction, and servo power stability. |
| Model and 3D print the shell | To do | Prepare the outer shell, internal frame, sensor holder, and leg parts. |
| Integrate all systems | To do | Assemble electronics, movement, power, and shell into one working prototype. |
About AI Dialogue
For the AI dialogue part, I confirmed that I will use
xiaozhi-esp32
as the main technical reference for future development. xiaozhi-esp32 is an
open-source ESP32-based AI chatbot project built around MCP. It uses ESP32
hardware as a voice interaction terminal and connects the device to large model
capabilities through network communication.
According to the project documentation, xiaozhi-esp32 supports Wi-Fi, offline
voice wake-up, WebSocket or MQTT + UDP communication, OPUS audio codec, and a
streaming ASR + LLM + TTS voice interaction architecture. It also supports
ESP32-C3, ESP32-S3, and ESP32-P4 platforms, and can control device-side modules
such as speakers, LEDs, servos, and GPIO through MCP.
This is useful for Loco Pik because the robot also needs to connect AI dialogue
with physical behaviors. In the first prototype, I will still focus on local
sensing, movement, emotional sound, and bottom light feedback. After the basic
robot system becomes stable, xiaozhi-esp32 can be used as the next step to add
voice conversation, wake-up interaction, and AI-controlled emotional behaviors.
Updated Materials List / Midterm BOM
This is the midterm version of the bill of materials. At this stage, all components are planned to be sourced from Taobao. The prices are estimated midterm values and will be updated in the final documentation after actual purchasing, fabrication, and system integration.
| Category | Component | Quantity | Source | Estimated Cost | Purpose |
|---|---|---|---|---|---|
| Main controller | XIAO ESP32S3 Sense | 1 | Taobao | ¥95–130 | Main control, camera, microphone, Wi-Fi / BLE. |
| Camera | Original camera / compatible OV5640 camera | 1 | Taobao | ¥35–60 | Visual sensing and object recognition. |
| Camera cable | 24Pin 0.5mm FFC/FPC cable | 1 | Taobao | ¥5–15 | Optional camera extension test. |
| Movement | MG90S metal gear servo | 4 | Taobao | ¥40–60 | Four legs and emotional movement. |
| Servo driver | PCA9685 16-channel PWM servo driver | 1 | Taobao | ¥12–20 | I2C servo control. |
| Sound output | TR-WS-2014B | 1 | Taobao | ¥8–15 | Drives the speaker. |
| Speaker | 4Ω / 8Ω small speaker | 1 | Taobao | ¥5–15 | Plays emotional sound effects. |
| Distance sensor | VL53L0X / VL53L1X ToF sensor | 1 | Taobao | ¥10–35 | Obstacle and edge-distance detection. |
| Light | WS2812B LED module / small LED ring | 1–4 | Taobao | ¥3–20 | Bottom emotional ambient light. |
| Power | 2S LiPo battery | 1 | Taobao | ¥35–70 | Main battery for the robot. |
| Power | 5V / 6V 5A UBEC | 1 | Taobao | ¥15–35 | Stable power for servos, speaker, and light. |
| Power switch | Mini slide switch / power switch | 1 | Taobao | ¥2–8 | Main power control. |
| Protection | Schottky diode / basic power protection component | 1 | Taobao | ¥1–5 | Basic protection for the power system. |
| Connectors | Pin headers, Dupont wires, screw terminals | Several | Taobao | ¥10–25 | Prototype wiring and module connection. |
| PCB | Copper-clad board / custom interface PCB material | 1 | Taobao | ¥5–15 | Custom power and interface PCB for system integration. |
| Structure | 3D printing filament / resin | 1 set | Taobao | ¥10–30 | Main body, replaceable shell, internal mounts, and legs. |
| Total | Midterm estimated total | - | Taobao | About ¥291–558 | This is a midterm estimate. The final cost will be updated after the actual prototype is purchased, fabricated, and assembled. |