Furbygotchi
    Hardware

    Furbygotchi

    'Papá, ¿me haces un tamagotchi?' me pidió mi peque. Un Tamagotchi de verdad con ESP32-S3, pantalla a color y carcasa impresa en 3D, con ciclo de vida completo, energía y sueño automático, y dashboard web con mensajes de papá.

    ESP32
    C++
    PlatformIO
    3D Printing
    Kids

    ¿Qué es?

    Un Tamagotchi de verdad, hecho desde cero: pantalla a color, carcasa impresa en 3D y un ciclo de vida fiel al original de 1997. Es la variante ESP32-S3 ("Furbygotchi") de un firmware que también corre, con el mismo motor de juego, sobre un ESP8266 más sencillo con pantalla OLED monocroma. Huevo, bebé, niño, adulto, anciano y fantasma; hambre, ánimo, salud y energía que decaen con el tiempo; se duerme y despierta sola; y un dashboard web desde el que le mando mensajes a mi peque.

    ¿Por qué lo hice?

    "Papá, ¿me haces un tamagotchi?" me pidió mi peque. En vez de comprar uno, decidí construirlo: espíritu geek, electrónica y programación, desarrollo de producto de verdad y la IA como multiplicador. No quería un prototipo de fin de semana, sino algo que sobreviviera al uso diario de un niño —apagones, batería, "se me ha muerto"— con persistencia y tests detrás. Era también una pregunta abierta: ¿saldría de ahí un producto que de verdad funcione?

    Cómo funciona

    Ciclo de vida y cuidados

    • LifeFSM: huevo → bebé → niño → adulto → anciano → fantasma, con transiciones automáticas según la edad y los cuidados; tras un rato como fantasma, resucita en un huevo nuevo.
    • StatsEngine: 7 stats (hambre, ánimo, salud y energía entre ellas) con decay en tiempo real, y 6 acciones —alimentar, jugar, limpiar, medicar, disciplinar y luces— desde el botón físico y desde la API REST.
    • Fiel al Tamagotchi del 97: la energía gobierna el sueño. Se duerme sola por debajo de 20 y despierta sola por encima de 80. La acción "Luces" solo aparece mientras duerme: apagarlas la deja descansar a tasa plena; dejarlas encendidas la molesta y penaliza ánimo y salud, con la pantalla en negro y unas Zs ascendiendo.
    • Persistencia en LittleFS con CRC32 y migraciones de esquema encadenadas (v1→v2→v3): sobrevive a apagones y ciclos de encendido.

    Pantalla y sprites a color

    • TFT JD9853 de 240×296 IPS que no arranca con la secuencia de init ST7789 estándar —le escribí una subclase de arranque propia. El framebuffer vive en PSRAM con doble buffer, a 15 FPS sin parpadeo.
    • Sprites pixel-art en RGB565 generados en un proyecto aparte, con clave de color magenta para la transparencia, servidos desde LittleFS y cacheados en PSRAM según etapa de vida y estado de ánimo.

    Mensajes de papá

    • Desde el dashboard, o con POST /api/v1/message, le mando un texto que aparece en pantalla como marquee. Pasa por un canal productor-consumidor sin bloqueos que sanea UTF-8 a ASCII imprimible, y se descarta con el botón físico.

    Red, OTA y dashboard

    • WiFi no bloqueante, OTA con contraseña y un dashboard REST con autenticación básica y límite de peticiones, servido con mDNS en tamagotchi.local.
    • Un supervisor de red relevanta el dashboard y el OTA solos si caen tras una reconexión, y un vigilante anti-bucle evita reinicios en cadena si el router está apagado.

    Carcasa impresa en 3D

    • Diseñada paramétricamente con un script de FreeCAD, en dos piezas atornilladas, exportada a STL y laminada para impresora Bambu Lab en PLA.

    Stack

    CapaTecnología
    MicrocontroladorWaveshare ESP32-S3 Zero (ESP32-S3FH4R2, 4 MB flash, 2 MB PSRAM)
    FirmwareC++ con Arduino sobre PlatformIO; dominio de juego compartido con la variante ESP8266
    PantallaTFT JD9853 240×296 IPS vía Arduino_GFX, con subclase de arranque propia
    PersistenciaLittleFS con CRC32 y migraciones de esquema
    RedWiFi STA, ArduinoOTA, servidor web asíncrono y mDNS
    Tests203 tests host-native (14 suites) que validan el dominio de ambas variantes
    CarcasaFreeCAD (script paramétrico) + impresión 3D en PLA

    Estado

    En desarrollo activo. El firmware de la variante color compila, pasa sus 203 tests y ya corre en hardware real —WiFi, OTA y dashboard probados en la propia placa ESP32-S3. Pendiente:

    • Soldar el divisor de batería: el firmware, la API y el icono ya están listos, solo falta el hardware.
    • Gestión de energía (auto-apagado de pantalla, modo ahorro de WiFi) para alargar la autonomía con la LiPo.
    • Un menú de acciones navegable en pantalla con un solo botón, para poder jugar sin WiFi.

    Enlaces

    MakerIsland

    Construyendo tesoros digitales con código

    © 2026 Maker Island · hecho a mano, sin plantillasEl taller