A cat built as a living system.
Sensors, behavior, animation and sound operate as separate subsystems on ESP-IDF and FreeRTOS. Muse adds messaging and voice over an encrypted connection.
From stimulus to reaction
IMU · tacto · RTC
and planner
+ audio engine
+ speaker
Muse Home Link connects over BLE or Wi‑Fi with encrypted Noise sessions for messages, replies and images. Everyday behavior remains on the device.
Animation without crossfades
Each clip is an edge between two hub poses. Because it shares its first and last drawings with neighboring clips, Sagwa can chain actions without alpha blending or full frames in RAM.
24-byte header, 22-clip table, frame table and 240 × 208 baseline JPEG.
The TJpgDec decoder in the ESP32-S3 ROM runs on core 0.
RGB565 lines stream to LVGL buffers without storing a full frame in DRAM.
SGWC header → clip table[22] → frame table → JPEG data
width=240 height=208 fps=12 version=116 MB flash map
| Partition | Offset | Size | Usage |
|---|---|---|---|
| nvs | 0x011000 | 48 KB | Credentials, BLE bonds and statistics |
| otadata | 0x01D000 | 8 KB | OTA selection state |
| ota_0 | 0x020000 | 4 MB | Main application |
| ota_1 | 0x420000 | 4 MB | Next update |
| sagwa | 0x830000 | 7.81 MB | 22-animation package |
Muse Home Link
Pairing is confirmed physically on the gadget. The SDK token is stored in NVS; revoke it and pair again if you change an existing token.
Muse replies arrive as text and appear on screen. Sagwa’s audio and body language are selected according to the message type.