USB Desk Robot Design


The Hermes head bezel cover is the front frame of the robot’s head that surrounds and protects the 2.8-inch display.
Its main jobs are to:
  • Hold the display in landscape orientation
  • Expose only the active screen area through a rectangular window
  • Hide the display PCB, wiring, and unused border
  • Protect the glass from direct impacts
  • Attach to the rest of the head enclosure
  • Provide the robot’s finished “face”
The display is installed from behind. Its rear PCB face rests against internal supports, while clips or screws retain the PCB around safe edge areas. Nothing should press directly against the LCD glass, solder joints, connectors, or rear components.
Planned clearances are:
  • 0.5 mm around the display window
  • 0.5 mm around the display PCB
  • 1 mm beyond the tallest rear component
  • Cable space behind the display for a gentle bend and service loop
The bezel should be printed face-down if that produces a clean window edge without internal support material. The final window and support geometry must still be adjusted to the measured Adafruit PID 1770 PCB outline, active-area position, rear depth, and mounting pattern before the final print.
export project
I can’t export the project because no ACUs are currently available. No new export was generated.
You can export manually from the Flux project’s Export/Download menu. Choose the required format:
  • Gerber ZIP for PCB fabrication
  • BOM CSV for component purchasing
  • Pick-and-place CSV for assembly
  • STEP for the PCB mechanical model
  • Project/source export if you need an editable backup
The most recent Gerber, BOM, pick-and-place, and STEP exports were already generated earlier in this conversation.
List existing exports
Export manufacturing files
Export STEP model

Hermes Desk Robot — Project Specification
Status: Approved for schematic capture
Revision: 0.5 — 2026-08-06
Project Overview
A small, 3D-printed desktop robot that acts as a Windows USB peripheral for Hermes Agent. The robot provides expressive motion, an animated face, microphone input, and optional local speaker output while the computer performs all AI and speech processing.
Intended Use
  • Indoor desk use beside a Windows computer.
  • One-off modular prototype using readily available development boards and modules.
  • Connected to Hermes Agent Desktop through a small local plugin or companion application.
  • Intended for learning, experimentation, and expressive AI interaction rather than unattended or safety-critical operation.
What the Device Should Do
  • Display animated eyes, an optional mouth, and optional status information.
  • Turn its head approximately 45 degrees left and right.
  • Raise and lower its left and right arms independently.
  • React to Hermes states such as listening, thinking, speaking, tool activity, success, and errors.
  • Offer a fallback reactive mode based on microphone activity and USB/connection state.
  • Appear in Windows as a standard USB microphone and speaker.
  • Allow Windows/Hermes to use either the robot audio devices or separate computer audio devices.
Main Features
  • Verified Adafruit SPI TFT LCD Display Touch ILI9341 module, 2.8-inch, 240 x 320 pixels (Flux part UID 86457530-204e-4e30-9ac7-55b0be369132), mounted landscape for a 320 x 240 face.
  • Three micro servos: one head and one for each shoulder.
  • USB audio with microphone input and speaker output.
  • USB serial or HID control channel for expressions and motion commands.
  • Two-cable power arrangement for reliability:
    • USB data/electronics cable from the computer.
    • Dedicated 5 V USB servo-power cable.
  • 3D-printed body, 6–8 inches (15–20 cm) tall, with no legs.
System Architecture

Text


Windows PC / Hermes Agent
          |
          | USB data + electronics power
          v
   Internal USB 2.0 hub
      |             |
      v             v
USB audio module   RP2040 controller
(mic + playback)    |       |
      |              |       +--> Adafruit 2.8-inch ILI9341 SPI touchscreen
      |              +----------> 3 servo control signals
      v
Microphones + small audio amplifier + speaker

Dedicated 5 V USB servo supply
          |
          +--> fuse/protection --> bulk filtering --> 3 micro servos
                                      |
                                      +--> common ground with controller
The internal hub allows the robot to expose both its audio module and motion/display controller through one data cable. The second cable powers only the noisy, high-peak-current servo rail.
Hardware Subsystems
Controller
Approved part: Raspberry Pi Pico SC0915 (Flux part UID e29510c9-a78c-431c-982d-b47536d971fc).
Reasons:
  • Native USB device support for a serial or HID command channel.
  • Adequate SPI performance for a small animated TFT.
  • Enough PWM/GPIO resources for three servos.
  • Good Arduino and CircuitPython ecosystem for a learning-focused prototype.
Face Display
Approved part: Adafruit SPI TFT LCD Display Touch ILI9341, 2.8-inch 240 x 320 SPI touchscreen module (Flux part UID 86457530-204e-4e30-9ac7-55b0be369132), mounted landscape for a 320 x 240 face. This verified library part replaces every earlier planned or unverified 2.4-inch display direction.
Display modes:
  1. Animated eyes only.
  2. Eyes and mouth.
  3. Expressions plus compact status text/icons.
Touch is approved for wiring where Pico GPIO availability permits; display operation remains the primary requirement.
Motion
  • Three 9 g micro servos.
  • Metal-geared MG90S-class servos are preferred for durability, subject to mechanical load testing.
  • Head travel limited in firmware and mechanically to approximately ±45 degrees.
  • Each shoulder provides one degree of freedom: arm raise/lower.
  • Firmware must use eased acceleration and avoid commanding all servos to reverse abruptly at once.
USB Audio
Approved codec: CM108B USB audio codec in headset mode (USB Audio Class playback + recording), using its internal crystal-free oscillator, internal ADC/DAC, microphone bias/input, and stereo analog outputs.
Preferred characteristics:
  • Windows class-compliant USB audio.
  • Two or more microphones.
  • Acoustic echo cancellation, noise suppression, and voice activity detection where available.
  • Playback output suitable for feeding a small amplifier.
Do not base the prototype on the original EOL ReSpeaker USB Mic Array. Confirm the currently available ReSpeaker Lite/XVF-series variant and its playback interface before purchase.
Speaker Output
  • Small 4 ohm or 8 ohm speaker in the body.
  • Compact class-D amplifier module driven by the USB audio module’s analog playback output, if that output is available on the selected module.
  • Physical or software volume control is desirable.
  • Speaker placement and microphone isolation must minimize acoustic feedback.
USB Hub
  • Approved FE1.1s USB 2.0 four-port hub, bus-powered from DATA_5V.
  • One protected upstream pair from the Windows PC.
  • Two populated protected downstream pairs: Raspberry Pi Pico SC0915 and CM108B. Unused hub ports are intentionally not populated.
  • Every used USB D+/D- pair has USBLC6-2SC6 protection placed connector-side before hub/device circuitry.
Servo Power and Protection
  • Separate 5 V USB input rated for at least 3 A.
  • Selected fuse: F2 Bel Fuse 0ZCF0300AF2C, resettable PPTC, 2920 SMD, 15 Vdc, 3.00 A hold / 5.20 A trip at 23°C. SMD050F-2 remains prohibited on SERVO_5V because its 0.50 A hold rating cannot pass this rail.
  • Reverse-current/backfeed prevention between the servo input and computer USB power.
  • Installed bulk: two Chemi-Con EMZS250ARA102MJA0G low-ESR SMD aluminum electrolytics, 1000 uF/25 V each (2000 uF total), 60 mOhm max ESR and 1.19 A rated ripple each at 105 C/100 kHz, plus local ceramic bypassing.
  • Common ground between servo supply and controller; 5 V power rails remain isolated from each other.
Interfaces and Connections

Table


InterfacePurpose
USB data/electronics inputHub upstream connection; Windows audio and robot control
USB servo-power inputDedicated 5 V supply for three servos
USB Audio ClassRobot microphone and speaker selection in Windows
USB serial or HIDHermes/companion-app motion and expression commands
SPIController to TFT face display
3 x PWMHead, left-arm, and right-arm servos
Analog audioUSB audio playback output to class-D amplifier, if required
Power and Runtime Expectations
  • The robot is always tethered; no battery is planned.
  • Data-side electronics should target no more than 500 mA from a conventional USB port unless the selected hub and computer connection explicitly support more.
  • Servo supply should be a regulated 5 V, 3 A USB wall adapter or equivalent dedicated source.
Power Tree and Preliminary Budget
Computer USB data rail

Table


LoadPreliminary allowance
RP2040 controller50 mA
Adafruit 2.8-inch ILI9341 touchscreen and backlightVerify module maximum; budgeted within the negotiated DATA_5V source limit
USB hub overhead30–80 mA
USB microphone/audio module100–200 mA
Total planning range280–510 mA
The exact audio module and TFT backlight current must be confirmed. If the measured total exceeds a reliable 500 mA budget, use a hub with controlled external power while preserving backfeed isolation.
DATA_5V input protection is Micro-USB VBUS → SMD050F-2 (0.50 A hold / 1.00 A trip) → DATA_5V, with SMF5.0A from protected DATA_5V to GND. This fuse is suitable only for the lower-current data input.
Dedicated 5 V servo rail

Table


LoadPreliminary allowance
Three MG90S-class servos movingapproximately 0.3–1.5 A combined, motion-dependent
Three-servo worst-case/stall allowanceup to approximately 2.6 A combined
Selected supply target5 V, at least 3 A
Servos must not be powered from the controller board or computer USB data rail.
Servo power path is J7 VBUS (SERVO_VBUS_RAW) → F2 0ZCF0300AF2C → protected SERVO_5V. D3 SMF5.0A remains on the protected side to common GND. F2 is rated 15 Vdc, 3.00 A hold / 5.20 A trip at 23°C, with an 8 A / 20 s maximum trip-time test point and 10 mΩ initial minimum / 48 mΩ post-trip-or-solder R1max. At 3 A this corresponds to approximately 30–144 mV drop (0.09–0.432 W), with an untouched device expected near the low end. The preliminary 2.6 A combined servo-stall allowance is below its room-temperature hold rating, while its thermal delay tolerates brief startup/stall pulses. Limitation: hold current derates to about 2.49 A at 40°C (83%), so sustained simultaneous stall or high enclosure temperature may trip it; firmware motion staggering and bench thermal validation remain required. DATA_5V and SERVO_5V share GND only; their VBUS conductors are never tied.
Hermes and Windows Integration
  • Hermes Desktop supports Windows, voice mode, plugins, WebSocket/JSON-RPC integration, and lifecycle hooks.
  • Recommended software arrangement:
    1. A Hermes plugin or local companion application observes lifecycle events.
    2. It maps events to a small robot state model.
    3. It sends concise commands over USB serial or HID.
    4. The robot firmware performs animations locally.
  • Proposed high-level states: idle, listening, thinking, speaking, tool-working, success, warning, error, disconnected, and manual-demo.
  • Standalone reactive mode uses audio activity and connection status when Hermes events are unavailable.
Example Command Model

Text


STATE THINKING
STATE SPEAKING
FACE HAPPY
FACE EYES_ONLY
ARM LEFT 70
ARM BOTH WAVE
HEAD -30
BRIGHTNESS 60
MODE REACTIVE
The final protocol should include travel limits, rate limits, and a neutral/home command.
Manufacturing and Assembly Expectations
  • Revision 1 uses modules and hand wiring rather than a custom all-in-one PCB.
  • Use keyed or clearly labeled connectors for the servos and power inputs.
  • Use strain relief on both USB cables.
  • Provide access to the RP2040 reset/boot controls and USB connector.
  • The body should be serviceable with screws; avoid permanently glued electronics.
  • A later revision may replace the wiring with a small carrier/interconnect PCB.
Firmware-Relevant Hardware Requirements
  • Store neutral positions and motion limits for each servo.
  • Smooth motion profiles to reduce noise and current spikes.
  • Watchdog or timeout that returns servos to a safe neutral pose after lost communication.
  • Non-blocking display and servo animation.
  • USB command parser with acknowledgments and version reporting.
  • Configurable face modes and screen brightness.
  • Manual demo/reactive mode independent of Hermes.
Physical Design Expectations
  • Overall height: 6–8 inches (15–20 cm).
  • 3D-printed head, torso, and two arms; no legs.
  • Screen forms most of the front face.
  • Head rotates around a vertical axis with ±45-degree travel.
  • Arms rotate at the shoulders to raise/lower independently.
  • Microphones need unobstructed acoustic openings away from the speaker.
  • Internal structure must provide rigid servo mounts, wire clearances, cable strain relief, and access for assembly.
  • The body should have enough mass or a weighted base to resist tipping when both arms move.
Important Design Decisions
  • Approved: Replace all planned/unverified 2.4-inch TFT references with the verified Adafruit 2.8-inch ILI9341 SPI touchscreen module, Flux part UID 86457530-204e-4e30-9ac7-55b0be369132.
  • Approved module set for the first-pass carrier schematic: Raspberry Pi Pico SC0915, FE1.1s USB hub, CM108B USB audio, the verified Adafruit display, and three 1x3 servo headers.
  • USB protection is mandatory: USBLC6-2SC6 on the hub upstream pair and on each populated downstream pair (Pico and CM108B), connector-side before the protected IC/module; SMD050F-2 plus SMF5.0A on DATA_5V; SMF5.0A on SERVO_5V with the higher-current fuse selection left open.
  • Servo interface: three external MG90S-class servos connect through independent 1x3 2.54 mm headers, each carrying GND, SERVO_5V, and one dedicated Pico PWM GPIO.
  • DATA_5V supplies hub/controller/display/audio only and must remain within the negotiated USB source limit; SERVO_5V is a separate 5 V/3 A input. The rails share GND only and must never be tied together.
  • The Windows computer performs all AI and speech processing.
  • The robot is a USB peripheral rather than a standalone AI computer.
  • The first prototype uses off-the-shelf modules.
  • Reliability takes priority over a single cable, so servo power uses a second USB cable.
  • One data cable still carries both robot control and USB audio through an internal hub.
  • Audio input/output and external computer audio remain selectable options.
Assumptions
  • Hermes lifecycle hooks/plugin APIs available in the installed version are sufficient to derive the desired animation states.
  • A currently supported ReSpeaker/XMOS module with Windows USB audio and playback capability will be available.
  • The printed head and arms are lightweight enough for genuine MG90S-class servos.
  • The user has access to a 3D printer and a regulated 5 V/3 A USB power adapter.
  • The first enclosure can be adjusted after fit and acoustic testing.
Prototype Success Criteria
  • Windows detects the robot controller and USB audio without a custom kernel driver.
  • Hermes events trigger visible expressions and motions with acceptable latency.
  • Robot microphone works for understandable near-field speech.
  • Robot speaker can play Hermes speech without unstable feedback at normal desk volume.
  • Simultaneous servo motion does not reset or disconnect the controller/audio devices.
  • Head and arm motion remain within safe mechanical limits.
  • Robot remains stable on the desk during normal gestures.
Open Items Before Purchasing
Approved Off-board Display Interface (Rev 0.5)
The Adafruit 2.8-inch ILI9341 SPI touchscreen remains the approved purchased display module and is mounted off-board in the moving robot head. The main PCB no longer carries the oversized display-module footprint. It carries J8, JST SM10B-GHS-TB(LF)(SN): GH family, 10 positions, 1.25 mm pitch, right-angle SMT, polarized/locking, approximately 1 A per contact. The cable requires JST GHR-10V-S housing and ten SSHL-002T-P0.2 crimp contacts, with flexible wire and strain relief appropriate for repeated head motion.

Table


J8 pinMain-board netExternal display connection
1GNDGND
2DATA_5VVCC and LED/backlight
3TFT_SPI_SCKSCK and T_CLK
4TFT_SPI_MOSIMOSI and T_DIN
5TFT_SPI_MISOMISO and T_DO
6TFT_CSCS
7TFT_DCD/C
8TFT_RESETRESET
9TOUCH_CST_CS
10TOUCH_IRQT_IRQ
This is the minimum sensible contact count for eight distinct TFT/touch signals, DATA_5V, and GND. J8 MP_1/MP_2 are mechanical no-connects. The module SD-card interface remains intentionally unused. Verify mating-face pin numbering against the JST drawing before harness manufacture.
Open Items Before Purchasing
  1. Bench-validate F2 0ZCF0300AF2C temperature rise and nuisance-trip margin with three real servos in the enclosure; the fuse selection and schematic implementation are complete.
  2. Measure or obtain guaranteed current consumption for the selected TFT/backlight and complete DATA_5V enumeration/current-budget validation.
  3. Estimate printed head/arm mass and confirm MG90S torque margin.
  4. Decide whether USB serial or HID is the preferred robot command transport after a small Windows/Hermes proof of concept.
  5. Confirm CM108B C12 VREF capacitance from a legible official reference schematic; the datasheet mandates decoupling but the searched application-note text did not expose a numeric value. C12 remains 1 uF and is explicitly not release-confirmed. C13 VBIAS=1 uF and the 100 nF AVDD/DVDD local bypass values are also retained as engineering defaults pending authoritative numeric confirmation.
Change Notes
  • Rev 0.4: Selected and implemented F2 Bel Fuse 0ZCF0300AF2C (2920 resettable PPTC) between J7 raw VBUS and protected SERVO_5V; retained D3 SMF5.0A on the protected side; documented electrical ratings, voltage drop, transient behavior, and thermal-derating limitation.
  • Rev 0.3: Locked SC0915, FE1.1s, CM108B, verified Adafruit 2.8-inch 240x320 ILI9341 SPI touch display, three external MG90S-class servo headers, DATA_5V/SERVO_5V isolation, per-pair USBLC6-2SC6 protection, and per-input TVS protection. Restricted SMD050F-2 to DATA_5V and recorded the required higher-current SERVO_5V fuse as an open safety item.
  • Rev 0.2: Approved the verified Flux library Adafruit 2.8-inch ILI9341 SPI touchscreen (UID 86457530-204e-4e30-9ac7-55b0be369132) and replaced every earlier 2.4-inch display reference; fixed the first-pass module set and explicitly preserved separate DATA_5V and SERVO_5V domains.
  • Rev 0.1: Captured the agreed 6–8 inch, Windows-connected Hermes robot concept; selected the modular two-cable architecture; added preliminary module directions, power budget, integration approach, and prototype success criteria.
  • Project Overview

  • Intended Use

  • What the Device Should Do

  • Main Features

  • System Architecture

  • Hardware Subsystems

  • Controller

  • Face Display

  • Motion

  • USB Audio

  • Speaker Output

  • USB Hub

  • Servo Power and Protection

  • Interfaces and Connections

  • Power and Runtime Expectations

  • Power Tree and Preliminary Budget

  • Computer USB data rail

  • Dedicated 5 V servo rail

  • Hermes and Windows Integration

  • Example Command Model

  • Manufacturing and Assembly Expectations

  • Firmware-Relevant Hardware Requirements

  • Physical Design Expectations

  • Important Design Decisions

  • Assumptions

  • Prototype Success Criteria

  • Open Items Before Purchasing

  • Approved Off-board Display Interface (Rev 0.5)

  • Open Items Before Purchasing

  • Change Notes