Kody

Web Companion & Electronics Lab

ACCESO PROTEGIDO
STUDIO
Inicio & Resumen /

Resumen General

Desconectado
TX RX
Online
Registro de Eventos del Studio
ESP32-S3 Dual-Core Xtensa LX7 @ 240MHz • 16MB Flash • 8MB PSRAM
Web Serial Compatible
-- -- --
Desconectado

Kode Dot Studio

Kode Dot Desconectado ESP32-S3
Selecciona interfaz USB Serial o Web Bluetooth para vincular el microcontrolador
Interfaz Desconectado
Baudios 115200 bps
Tráfico TX 0 B
Tráfico RX 0 B
Búfer / Paquetes 0 pkts
ESP-IDF v5.3 FreeRTOS v10 LVGL v8/v9 Wi-Fi 6 • BLE 5.0 Dual RFID (125k/13.56M) Rieles 2A (3.3V/5V)
ESTADO DEL HARDWARE
LIVE 10 Hz
CPU & Reloj
240 MHz
Xtensa Dual-Core • 18%
Temp. SoC
36.8 °C
Nominal < 65°C
SRAM Libre
384 KB
PSRAM Libre
6.8 MB
Acceso Rápido:
CORE
DISPLAY
RF & BUSES
LAB
Dispositivo
ESP32-S3
36.8 °C
SRAM / Heap
384 KB
Almacenamiento Flash
4.2 / 16 MB
PSRAM Octal
6.8 / 8 MB
Batería & PMIC
94%
Pantalla AMOLED
410 × 502
KODE·OS
12:00:00
Hardware en Línea
Monitor de Buses & Periféricos
Activo / Listo
Bus I2C Principal (SDA 47 / SCL 48)
0x34 AXP2101 / CW2217 0x38 CST820 0x51 PCF8563 0x68 IMU 9-Ejes
Bus QSPI AMOLED (D0-D3 / CS 10 / SCK 12)
Controlador RM67162 • 80 MHz • Modo Quad-SPI • 410x502 píxeles
Bus SPI Flash & MicroSD (CS 13 / MISO 11)
Flash Winbond W25Q128 (16MB) + Ranura MicroSD FAT32
Bus TWAI / CAN Bus Automotriz (TX 21 / RX 22)
Transceptor ISO11898 • 500 kbps • Diagnóstico OBD-II / Industrial
Radio RF / Inalámbrico 2.4 GHz
Wi-Fi 6 (802.11ax) • BLE 5.0 Mesh • Sub-GHz CC1101 (868/433 MHz)
Audio Digital I2S & Buzzer PWM
Micrófono Digital MEMS (GPIO 41-43) + Altavoz Integrado (GPIO 37)
Cabezal de Expansión (20 Pines de Hardware): Haz clic en cualquier pin para copiar la directiva #define
36.8 °C
Temp. SoC
00:00:00
Tiempo Activo
384 KB
SRAM Libre
>_
Atajos:
Bitácora de Eventos en Tiempo Real
[00:00:01] [SYS] Kode Dot Web Studio inicializado correctamente.
[00:00:01] [PWR] Monitor de batería: LiPo 4.12V (94%) - AXP2101 OK.
[00:00:02] [BUS] Buses I2C (4/5) y QSPI AMOLED (80MHz) configurados.

Flasheador Web ESP32 (Web Serial)

Programa binarios (.bin) directamente desde el navegador a la memoria Flash de Kode Dot.

Arrastra aquí tus archivos .bin
Soporta múltiples archivos y fusionado monolítico
Mapa de Memoria Flash SPI (16 MB QIO) 0x000000 - 0x1000000
Offsets directos:
Offset: Baud:
Progreso: 0% 0 KB/s ETA: --:-- ESP32-S3 QIO 80MHz

Firmwares Oficiales & Presets

kodeOS v1.0 (Oficial)
Lanzador de aplicaciones para tarjeta MicroSD.
Demo de Fábrica & Sensores
Prueba AMOLED, Touch, IMU, Audio y Mic.
Meshtastic para Kode Dot
Comunicaciones malladas LoRa / Bluetooth.
Macro Pad USB HID
Stream Deck táctil de bolsillo para PC/Mac.

Registro del Flasher

[Listo para programar Kode Dot]

Terminal Serie & Plotter Gráfico

Consola interactiva bidireccional Web Serial con soporte ANSI, timestamps, telemetría y graficado de variables en tiempo real.

115200 BAUD
Rápidos:
kodedot>

Gestor Visual de Particiones Flash (16 MB)

Diseña, dimensiona y exporta la tabla de particiones para tu firmware ESP32-S3.

Mapa de Memoria Flash (16 MB SPI Quad) Usado: 14.8 MB / 16.0 MB (92.5%)
Nombre Tipo SubTipo Offset Tamaño (KB) Flags Acciones

Explorador & Gestor de Archivos LittleFS

Explora, edita y transfiere archivos directamente a la memoria Flash del dispositivo.

Partición LittleFS 8 MB
/config.json

Editor de Parámetros NVS (Non-Volatile Storage)

Inspecciona y modifica credenciales Wi-Fi, calibración y preferencias guardadas.

Ocupación Partición NVS (24 KB): Calculando...
Namespace Clave (Key) Tipo Valor Acciones

Gestor de Actualizaciones OTA & Dual-Boot (v3.0)

Carga directa vía Wi-Fi HTTP (/update) o verificación local de firmware ESP32 con arranque seguro
(mDNS o IP ej: http://192.168.4.1/update)
Slot OTA_0 (Activo / Boot) RUNNING
App: kodeOS v1.0.4 • Offset: 0x20000 • 2.8 MB • 2026-09-08 14:20
Slot OTA_1 (Standby / Rollback)
App: kodeOS v1.0.3 (Backup) • Offset: 0x400000 • 2.7 MB • 2026-09-01 10:15
Arrastra aquí el archivo binario (.bin) para OTA
Se extraerán automáticamente los metadatos ESP-IDF (Magic Byte 0xE9, versión, fecha de compilación y target)
Progreso: 0% 0 KB/s

Decodificador de Crash Dumps & Backtrace

Diagnostica pánicos Guru Meditation, punteros nulos y desbordamientos de pila FreeRTOS.

Ejemplos de fallo:
KODE. AMOLED 410x502
Original AMOLED

Conversor de Imagen a C / LVGL

Código C Generado:
Flujo Directo Inter-Herramientas Conectar con otros módulos

Diseñador de Iconos & Pixel Art

Tamaño:
Escala 1:1 Real:
16x16 px
Paleta de Colores:

Código para Firmware Microcontrolador

🔤
Glifos Activos
16 glifos
💾
Huella Flash PROGMEM
384 Bytes
📐
Dimensión / Bounding Box
14x14 px
⚙️
Librería Destino
Adafruit_GFX

Generador de Fuentes Bitmapped C++

Convierte tipografías vectoriales y pixeladas en arrays de glifos PROGMEM listos para Adafruit_GFX, U8g2 y LVGL con renderizado de fósforo en tiempo real.

Previsualización Pantalla OLED:
✏️ Editor Matricial de Glifos

Selecciona un caracter del subconjunto para editar o retocar sus píxeles manualmente en la cuadrícula.

Glifo: '0' (ASCII 48 / 0x30)
Haz clic o arrastra para encender/apagar píxeles. La línea discontinua cian representa la línea base (baseline) del glifo.

Código Firmware C++ (PROGMEM)

Simulador de Pantalla OLED SSD1306 / SH1106

Emulador de visualización para pantallas monocromo I2C/SPI con precisión a nivel de píxel y comandos de registro.

CHIP: SSD1306 · I2C ADDR: 0x3C 128 x 64 px · 1-bit

Código para Microcontrolador

Fotogramas
6 Cuadros
Velocidad
12 FPS (83ms)
Peso en Flash
3.2 KB
Compresión
RLE (-48% Flash)

Animaciones & Bootlogos OLED / AMOLED

0 bytes

Importa secuencias de fotogramas, ajusta la línea de tiempo y genera código C++ optimizado con compresión RLE.

Velocidad de Reproducción: 12 FPS
1 / 6
Línea de Tiempo de Fotogramas:

Código Fuente C++ (PROGMEM)

Test Óptico de Pantalla & Diagnóstico

Inspección de píxeles atascados, calibración gamma de negros puros y ciclo restaurador de quemado.

Patrones de Calibración Óptica:

Ciclo Restaurador Anti-Burn-in

00:00

Ejecuta un barrido alternante de ruido blanco y contraste inverso para igualar el desgaste de los fósforos OLED.

Instrucciones de Reparación:
  • Selecciona la duración recomendada según el nivel de retención de imagen.
  • El ciclo genera estática blanca de alta frecuencia y patrones oscilantes.
  • No mires fijamente la pantalla si sufres de fotosensibilidad.
Duración del Ciclo:

Diseñador de Widgets & Diales UI

Genera velocímetros analógicos, barras de progreso, medidores de nivel y dígitos 7-segmentos listos para tu código.

Valor de Prueba: 68%

Código Fuente (LVGL C / GFX)

Generador de Códigos QR de Precisión

25x25 px

Genera códigos QR de píxel exacto sin desenfoque, optimizados para escaneo instantáneo en pantallas OLED y AMOLED.

Array Hexadecimal C++ (PROGMEM)

Roll (Alabeo)
+0.0° (Alabeo)
Pitch (Cabeceo)
+0.0° (Cabeceo)
Yaw (Guiñada / Rumbo)
0.0° (Guiñada)
Tasa Fusión Madgwick
100 Hz (Madgwick AHRS)

Gemelo Digital 3D (Orientación Espacial)

0.0°
Roll (Alabeo)
0.0°
Pitch (Cabeceo)
0.0°
Yaw (Guiñada)
4.10V
Batería (Voltaje)

Flujo de Acelerómetro (m/s²)

■ X ■ Y ■ Z

Controles de Prueba / Simulación

Osciloscopio Dual (CH A / CH B)

ADC 12-bit • Entrada 0 - 3.3V • 60 FPS
CH A: 1.650 V Vpp: 2.50 V Vrms: 1.82 V CH B: 3.00 V 12-bit DMA ADC

Generador de Ondas PWM

Analizador de Audio FFT (Micrófono)

Calculadora de Ley de Ohm & Resistencia LED

Calculador Rápido
Resistencia Exacta:
86.7 Ω
Valor Comercial E24:
91 Ω
Potencia Disipada:
0.020 W (1/8W)

Matriz de 128 Direcciones I2C (0x00 - 0x7F)

Base de datos con +40 sensores y periféricos

Haz clic en cualquier celda para inspeccionar el chip, voltaje y driver C++.

Dispositivos Detectados

Inspector de Bus I2C
Haz clic en cualquier dirección (0x00 - 0x7F) para ver especificaciones y ejemplo de código C++.

Mando Virtual Infrarrojo

TX GPIO 38

Código Arduino IRremoteESP8266

📶
NFC / RFID Studio & Web NFC API
Lectura/Escritura con hardware físico nativo del navegador o emulación mediante microcontrolador Kode Dot

Generador de Registros NDEF

Capacidad de Almacenamiento: 0 / 144 bytes

Bytes NDEF Hexadecimales

📻
Nodos en Malla
4
Canal Activo
EU868 LongFast
📶
Calidad SNR Media
+9.4 dB
🔀
Límite de Saltos (Hops)
3 Hops Max

Topología de Red & Nodos Activos

📶
Redes Detectadas
0
Canal Recomendado (2.4G)
CH 1
🛡️
Redes Abiertas / Sin Cifrar
0
Señal Más Potente
--

Analizador de Espectro Wi-Fi (2.4 GHz & 5 GHz)

LISTO
💡 Recomendación de Canal: Evita interferencias en 2.4 GHz usando exclusivamente canales no solapados 1, 6 u 11. Canal 1: 0% ocupado
SSID Canal Potencia (RSSI) Seguridad BSSID (MAC) Acciones
Perfil Activo: Matriz:

Stream Deck Táctil (Pantalla 410x502)

Haz clic para pulsar • ✏️ para editar

Sketch Arduino USB Keyboard HID

Líneas / Comandos
12 Comandos
Duración Estimada
~2.8s Estimado
Mapeo de Teclado
ES Keyboard
Motor de Gramática
DuckyScript 3.0

Editor DuckyScript 3.0

Monitor de Simulación en Vivo

Layout:
Pulsa "Simular Pulsaciones" para previsualizar la automatización...

Teclado Sintetizador Chiptune (Pin 37)

BUZZER GPIO 37

Toca las teclas para escuchar notas cuadradas y reproducir en el buzzer de Kode Dot.

Osciloscopio de Onda Cuadrada: REPOSO
Melodías Retro RTTTL:

Generador de Melodía C++ tone()

// Reproducción de sonido en Kode Dot (Pin Buzzer: GPIO 37) #include <Arduino.h> const int BUZZER_PIN = 37; void playToneNote(int freq, int durationMs) { tone(BUZZER_PIN, freq, durationMs); delay(durationMs * 1.3); noTone(BUZZER_PIN); }
📁
Empaquetador de Apps MicroSD (kodeOS v3.0)
Genera el árbol estructurado de la aplicación, icono AMOLED 64x64, manifiesto JSON y paquete ZIP listo para descomprimir

Metadatos de la Aplicación

Diseño del Icono de la App (64x64 px):
🧭
📊
🎮
📡
🤖
🎵
Plantilla binaria incluida

Previsualización en Pantalla (Lanzador kodeOS)

AMOLED 410x502
12:45 PM 🔋 94%
Icon
MonitorSensores
v1.0.0 • por Maker Community
Visualizador interactivo de acelerómetro y pantalla AMOLED.
Toca en la pantalla táctil para ejecutar desde MicroSD

Estructura en Tarjeta MicroSD

Documentación Oficial de Kode Dot

Hardware Rev D • ESP32-P4 + C5/C6 & ESP32-S3 AMOLED 410x502 Rieles 2A

Especificaciones completas de arquitectura dual RISC-V 400MHz, pantalla AMOLED, cabezal interactivo de 20 pines con rieles de 2A, ecosistema kodeOS, control por voz con IA y guías para desarrolladores.

Diagrama de Bloques & Ecosistema de Buses Internos
SPI Flash Memoria de Programa
16 MB Quad SPI (QIO)
Firmware kodeOS, LittleFS & Assets
PSRAM OPI Memoria Gráfica
8 MB Octal PSRAM @ 80MHz
Double Framebuffer LVGL & DMA
MicroSD Almacenamiento Masivo
Bus SPI Dedicado
FAT32 hasta 128GB para apps y logs
ARQUITECTURA DUAL HIGH-POWER
Espressif ESP32-P4 + C5/C6
Dual-Core RISC-V @ 400 MHz + Co-procesador Wi-Fi 6
Extensiones Vectoriales de IA/DSP • Códec H.264 HW • MIPI-CSI/DSI
Wi-Fi 6 (2.4 & 5 GHz) • BLE 5.0 • Thread / Zigbee • Dual RFID (125k/13.56M)
Retrocompatible con firmware ESP32-S3 Dual-Core Xtensa
Rieles 2A (3.3V & 5V) Voice AI Streaming Haptic + RGB LED
QSPI + I2C Pantalla & Toque
AMOLED 2.13" CO5300 + CST820
410x502 px (338 PPI), negros 0 mA
I2S DMA Audio & Asistente IA
Micrófono MEMS + Altavoz
Streaming a OpenAI / Claude / Ollama
I2C + Pogo Sensores & Dock
IMU 9 Ejes + RTC + Pogo 4-Pin
Giroscopio, brújula, reloj y base magnética

Ficha Técnica & Parámetros Eléctricos de Kode Dot

Evolución & Hoja de Ruta Arquitectónica (ESP32-P4 + ESP32-C5)

Hardware Roadmap

Kode Dot está diseñado con una capa de abstracción de hardware (HAL) modular en kodeOS. La revisión C actual basada en ESP32-S3 Dual Xtensa cuenta con compatibilidad binaria y de periféricos prevista para la futura generación de alta potencia impulsada por ESP32-P4 (Dual-Core RISC-V a 400 MHz con códec H.264 por hardware, interfaz MIPI-DSI y CSI) complementado con ESP32-C5 (Wi-Fi 6 de banda dual 2.4/5 GHz y Bluetooth 5 LE).

Panel Óptico AMOLED de 2.13 Pulgadas

410 x 502
Tecnología del PanelAMOLED On-Cell Color
Resolución Activa410 (H) × 502 (V) píxeles
Densidad de Píxeles~338 PPI (Retina Grade)
Controlador IntegradoCO5300 con interfaz QSPI de 4 líneas
Profundidad de ColorRGB565 (16 bits) / RGB888 (24 bits)
Ángulo de Visión178° Ultra Wide (sin inversión de gama)
Brillo Máximo600 nits (legible bajo luz solar directa)
ContrasteInfinito (Negros verdaderos: diodo apagado)

Panel Táctil Capacitivo CST820

I2C 0x38
Tipo de SensorCapacitivo Proyectado (PCAP)
Dirección I2C0x38 (7-bit)
Pin SDA / SCLGPIO 47 (SDA) / GPIO 48 (SCL)
Pin de Interrupción (INT)GPIO 4 (Flanco de Bajada / Falling Edge)
Gestos ReconocidosTap, Double Tap, Swipe (Up, Down, Left, Right)
Tasa de MuestreoHasta 100 Hz con latencia inferior a 12 ms
Superficie TáctilVidrio templado con revestimiento oleófobo

Buenas Prácticas de UI & Ahorro de Batería con AMOLED

1. Fondos Negro Puro (#000000)

A diferencia de las pantallas LCD con retroiluminación siempre encendida, cada píxel AMOLED es un LED emisor independiente. Un píxel negro está completamente apagado (0 mA), reduciendo el consumo de la pantalla en más de un 65%.

2. Double Buffering en PSRAM

Un frame de 410x502 en RGB565 ocupa 411.640 bytes. Se alojan 2 búferes de DMA en la memoria Octal PSRAM de 8MB, permitiendo a la biblioteca LVGL renderizar a 60 FPS sin ningún efecto de tearing horizontal ni parpadeo visual.

3. Gestión Dinámica de Brillo

Atenuar el brillo del 100% al 35% en interiores reduce el consumo global del dispositivo de 140 mA a solo 48 mA, triplicando la autonomía real de la batería LiPo de 850mAh durante el uso continuado.

Cabezal de Expansión de 20 Pines & Matriz de Señales

Cabezal 20-Pin • 32 Señales • Rieles 2A

Inspecciona interactivamente el cabezal de expansión trasero de 20 pines (paso 2.54mm estándar para protoboard) con rieles de alta corriente de 2A, o consulta la matriz de conexionado de los SoCs ESP32-P4 / ESP32-S3. Haz clic en cualquier pin para ver sus especificaciones y copiar su directiva #define.

Generador Dinámico de Cabecera C++ (pin_config.h)

Selecciona los pines del cabezal de 20 pines y genera el archivo de cabecera con macros #define y función de inicialización pinMode().


              
Pin ESP32 Función en Placa Tipo de Bus Tensión Pull-Up / Estado Notas de Diseño & Circuito

Sistema de Alimentación & Batería LiPo

850 mAh
Capacidad de la Batería850 mAh LiPo (3.14 Wh)
Tensión Nominal3.7 V (Rango: 3.0 V a 4.2 V)
PMIC & Cargador USB-CAXP2101 / CW2217 (I2C 0x34 / 0x62)
Corriente de Carga500 mA estándar (Carga completa en ~1h 45m)
Rieles de Potencia (Salida)3.3V @ 2.0A (Regulador Alta Corriente) + 5V VBUS @ 2.0A
Protecciones de CircuitoSobrecarga (4.25V), sobredescarga (2.9V), cortocircuito y NTC
Puerto Trasero PogoVBUS +5V y GND con polaridad magnética

Monitor de Batería por ADC (GPIO 1)

Divisor 2:1

El circuito de medición de tensión de batería utiliza un divisor de tensión resistivo simétrico de dos resistencias de alta precisión (100kΩ / 100kΩ) con un factor de división de 2.0:

// Lectura y conversión analógica en ESP32-S3 int rawADC = analogRead(1); // GPIO 1 (ADC1_CH0) float vDiv = (rawADC / 4095.0f) * 3.3f; float vBat = vDiv * 2.0f * 1.02f; // Factor calibrado int batPercent = constrain(map(vBat * 100, 330, 415, 0, 100), 0, 100);
El voltaje oscila entre 3.30V (0% descargado) y 4.15V-4.20V (100% carga completa).

Perfiles de Consumo & Autonomía Estimada

Modo Operativo Estado de Periféricos Consumo Típico Autonomía (850mAh)
Deep Sleep SoC en sueño profundo, pantalla apagada, reloj RTC PCF8563 activo esperando alarma o botón ~20 µA > 1 año en espera
Reloj Reposo Pantalla apagada, IMU 9-DOF activo detectando giro de muñeca para encendido automático ~8 - 12 mA 70 - 100 horas
Uso Normal UI Pantalla AMOLED activa al 50% de brillo (fondo oscuro), BLE activo conectado al Web Studio ~45 - 65 mA 13 - 18 horas
Máximo Rendimiento CPU 240 MHz al 100%, Wi-Fi transmitiendo paquetes, brillo AMOLED al 100% fondo blanco ~140 - 160 mA ~5.5 horas continuas

Módulo Maker (20 Pines & 2A)

Prototipado Rápido

Cabezal estándar de 20 pines (paso 2.54 mm) para protoboard. Integra rieles de potencia de alta corriente de 3.3V @ 2A y 5V VBUS @ 2A, bus SPI dedicado, I2C secundario, 2 canales analógicos ADC, PWM y conectores magnéticos Pogo.

Pines: 5V (2A), 3V3 (2A), GND, GPIO 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 21, Pogo 1 & 2

Módulo Robotics / Inventor

Robótica & PWM

Control de movimiento para chasis robóticos móviles. Doble puente H para dos motores DC independientes con control de sentido/PWM, salida de servomotor a 50 Hz (0° a 180°), sensor ultrasónico HC-SR04 y barra de 5 reflectores infrarrojos para seguidor de línea.

Actuadores: Motores DC A+B (PWM H-Bridge) • Servomotor 50Hz • Radar HC-SR04 • Sensor Línea IR

Módulo F*CK (Pentester & Sub-GHz)

Cyber Security & RF

Módulo oficial de pentesting y auditoría de radiofrecuencia. Transceptor Sub-GHz CC1101 multimodo (315, 433, 868 y 915 MHz), analizador de espectro RF en tiempo real, generador y reproductor de tramas (Replay Attack), receptor GNSS multi-constelación y conector SMA para antenas de alta ganancia.

RF: CC1101 SPI (300-928MHz) • Antena SMA • Clonador de Mandos • GNSS NMEA 0183

Módulo Camera (Visión DVP / MIPI)

Visión Artificial

Sensor de cámara Omnivision OV2640 (2 MP) u OV5640 (5 MP) con interfaz de alta velocidad acelerada por DMA y bus DVP de 8 bits / MIPI-CSI en ESP32-P4. Soporta streaming MJPEG a 30 FPS, reconocimiento de patrones y visión por computador.

Sensor: OV2640 / OV5640 • DVP / MIPI-CSI • Resoluciones QQVGA a UXGA • DMA Acelerado

Entornos de Desarrollo & Código Boilerplate

Selecciona tu entorno preferido para ver las directivas de compilación, banderas de Octal PSRAM y el código base listo para usar en tu proyecto.

; PlatformIO Project Configuration para Kode Dot (ESP32-S3) [env:kodedot] platform = espressif32 board = esp32-s3-devkitc-1 framework = arduino ; Configuración de CPU y Velocidades board_build.mcu = esp32s3 board_build.f_cpu = 240000000L board_build.f_flash = 80000000L board_build.flash_mode = qio ; Configuración Octal PSRAM (8MB OPI) board_build.arduino.memory_type = qio_opi board_build.psram_type = opi ; Tabla de particiones para 16MB Flash board_build.partitions = default_16MB.csv ; Banderas de compilación build_flags = -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue -DARDUINO_USB_CDC_ON_BOOT=1 -DARDUINO_USB_MODE=1 -DLV_CONF_INCLUDE_SIMPLE ; Velocidad de Monitor Serie y Carga monitor_speed = 115200 upload_speed = 921600

Estructura de Carpetas en MicroSD

FAT32 / exFAT hasta 128GB

kodeOS organiza el almacenamiento secundario en directorios estandarizados para permitir instalación en caliente, ejecución modular de apps y carga de recursos gráficos sin reflashear.

/SD_CARD/ ├── apps/ # Binarios de aplicaciones (*.kapp / app.bin) │ ├── calculator/ │ │ ├── app.json # Metadatos del launcher (icono, permisos) │ │ └── app.bin # Código ejecutable cargable en RAM │ └── spectrum_rf/ ├── system/ # Configuración central del sistema operativo │ ├── config.ini # Ajustes de brillo, reloj y red │ └── wifi_vault.enc # Bóveda cifrada por hardware AES-256 ├── assets/ # Recursos gráficos y multimedia globales │ ├── fonts/ # Tipografías vectoriales y mapas de bits │ ├── sounds/ # Notificaciones WAV/MP3 I2S │ └── watchfaces/ # Esferas de reloj empaquetadas └── logs/ # Registro de auditoría y trazas en JSONL

Manifiesto de Aplicación (app.json)

JSON Schema

Cada app en la carpeta /apps/[id]/ define sus requerimientos en su archivo de manifiesto para que el Launcher valide permisos y memoria antes de lanzarla:

{ "id": "com.kodedot.rfanalyzer", "name": "RF Spectrum Analyzer", "version": "1.2.0", "author": "Kode Community", "category": "radio", "icon": "icon_64.png", "entry_point": "app.bin", "min_psram_kb": 256, "permissions": [ "spi_bus", "fck_module", "display_touch", "audio_stream" ] }

Ciclo de Vida de una App kodeOS (C++ API)

Non-blocking FreeRTOS
1. kapp_init()

Asignación de widgets en LVGL, suscripción a colas de eventos del sistema y reserva de búferes DMA en PSRAM.

2. kapp_event()

Recepción de gestos táctiles (CST820), orientación de giroscopio o pulsaciones del botón físico lateral.

3. kapp_loop()

Lógica periódica no bloqueante ejecutada en el ciclo del despachador, devolviendo control con vTaskDelay(1).

4. kapp_destroy()

Destrucción del árbol de pantallas LVGL, liberación de manejadores SPI/I2S y retorno limpio al Launcher principal.

Pipeline de Audio I2S & VAD

I2S DMA • 16 kHz

Kode Dot captura voz en tiempo real a través del micrófono MEMS de bajo ruido conectado al bus I2S con buffers circulares DMA en PSRAM de 8MB.

Frecuencia de Muestreo16.000 Hz (16 kHz)
Resolución y Canales16-bit PCM • Mono
Detección de Voz (VAD)Algoritmo de energía / umbral SNR en RISC-V
Anillo de Búfer DMA4 x 512 bytes (evita pérdidas de paquetes)
Retorno de Audio (TTS)I2S DAC / Altavoz piezo con control de ganancia

Conectividad & Proveedores de IA

WebSocket Seguro (WSS)

El co-procesador Wi-Fi 6 mantiene túneles seguros TLS 1.3 bidireccionales de baja latencia con los principales proveedores de LLM o instancias locales privadas:

OpenAIRealtime API (Audio in / Audio out) & Whisper STT
AnthropicClaude 3.5 Sonnet mediante streaming de eventos SSE
Groq CloudWhisper-large-v3 con inferencia ultrarrápida (< 250 ms)
Ollama (Local)Servidor privado en LAN sin conexión a internet ni telemetría

Flujo de Interacción de la Inteligencia Artificial

1. Captura & VAD

El usuario pulsa el botón lateral o pronuncia la palabra de activación. El microprocesador almacena fragmentos de 200 ms y descarta el ruido ambiental.

2. Transmisión Wi-Fi 6

Los paquetes PCM son comprimidos en Opus o enviados en crudo a través del socket WSS con latencia de ida inferior a 40 ms en redes Wi-Fi 6 (OFDMA).

3. Reproducción & UI

El texto de la respuesta se muestra en la pantalla AMOLED de 410x502 píxeles mientras el audio sintetizado suena de forma síncrona por el altavoz.

Modos de Arranque & Bootloader

Hardware Strapping
Modo Descarga ROMMantener pulsado botón BOOT (GPIO 0 a GND) durante el encendido o reset USB.
Hard Reset de EnergíaPulsar botón de encendido durante 10 segundos continuos (Corte forzado del PMIC AXP2101).
Partición FactorySi OTA_0 u OTA_1 fallan 3 veces consecutivas por CRC, el bootloader arranca en modo seguro.
Recuperación MicroSDColocar recovery.bin en la raíz SD; se flasheará automáticamente al reiniciar.

Mapa de Direcciones I2C Esperadas

I2C Bus Scan

Usa el Bus Scanner integrado en la consola para confirmar que todos los periféricos responden correctamente en sus direcciones fijas:

DirecciónDispositivo / FunciónEstado Esperado
0x34PMIC AXP2101 (Gestión de Batería y Rieles)ACK 200
0x38Sensor Táctil Capacitivo CST820ACK 200
0x51Reloj en Tiempo Real RTC PCF8563ACK 200
0x6BUnidad de Medición Inercial 9-DOF (IMU)ACK 200

Guía de Resolución de Problemas Frecuentes

Síntoma Reportado Causa Probable Acción Correctiva Recomendada
Pantalla en negro tras arranque LDO de alimentación AMOLED apagado en AXP2101 o secuencia de reset no enviada al CO5300. Habilitar canal ALDO3 (3.3V) en el PMIC y enviar pulso LOW de 20 ms en GPIO 38 antes de inicializar QSPI.
Reinicio continuo (Brownout Detector) Caída de tensión momentánea por pico de consumo en calibración de antena RF o Wi-Fi transmitiendo. Conectar a un cargador USB-C de al menos 1A; comprobar que la batería LiPo tenga más de 3.6V de carga.
Fallo al montar tarjeta MicroSD Formato no compatible o frecuencia de reloj SPI/SDIO demasiado alta. Formatear en FAT32 con clústeres de 32KB y tabla de particiones MBR estándar; verificar inserción completa en el zócalo.
Panel táctil no responde Línea de interrupción INT (GPIO 4) flotante o bus I2C bloqueado por otro dispositivo esclavo. Revisar la resistencia pull-up en SDA/SCL; enviar 9 pulsos de reloj en SCL para desbloquear el bus I2C.
OPR / Quemado AOD
3.8% (Seguro AOD)
Tasa de Refresco
60 FPS
Modo Render
Analógico (60Hz)
Complicaciones
6 Widgets

Diseñador de Watchfaces (AMOLED 410x502)

LVGL 8/9

Diseña esferas digitales o analógicas en vivo y exporta código C / LVGL listo para kodeOS.

🖼️ Fondo Personalizado: Tema por defecto
MODO Y COMPLICACIONES ACTIVAS

Código Fuente C / LVGL (kodeOS)


              
LIVE PREVIEW (410 x 502)
Simulación en tiempo real renderizada a 410x502 píxeles sobre matriz AMOLED.

Laboratorio de Batería & Autonomía

LiPo 850mAh · CW2217

Simulador de consumo para batería LiPo 850mAh y fuel-gauge CW2217 de Kode Dot.

34.5 mA
Consumo Medio
24.6 h
Autonomía
850 mAh
Capacidad Útil
0.041 C
Tasa C-Rate
Temperatura Celda: +25 °C
Salud Batería (SoH): 100%
💡 Bajar la frecuencia a 160 MHz es suficiente para LVGL fluido y reduce el consumo.
Brillo Pantalla AMOLED: 50%
PERIFÉRICOS & RADIO

Curva de Descarga LiPo (4.2V - 3.2V)

CW2217 Fuel Gauge

Snippet C: Modo Ultra Bajo Consumo


              

Grabador Blackbox Serial & Telemetría

00:00.0
Duración
0
Paquetes
0 B
Bytes Recibidos
USB / BLE
Canal Activo
# Timestamp Flujo Carga Útil (Payload / Frame) Tamaño

Módulo Maker (Cabezal 20 Pines & Expansión)

14 GPIOs · 5V/3V3

Prototipado rápido en breadboard, control de pines digitales y analógicos, y generador de boilerplate.

Boilerplate C / Arduino (setup_maker_module)


              

Módulo Inventor (Robótica & Actuadores)

Puente H · Servos

Control de motores DC duales (Puente H), servomotores, sensores ultrasónicos y simulador 2D.

Motores DC (Puente H):
Motor A (Izq): 75%
Motor B (Der): 75%
Servomotor Cabezal (PWM 50Hz):
90°
Radar Sensor Ultrasónico (HC-SR04): 45 cm

Simulador Cinemático 2D (Chasis Diferencial)

LIVE PHYSICS

Firmware Arduino de Control Robótico


              

Módulo Radio (Sub-GHz ISM & GNSS / GPS)

CC1101 · GNSS

Transceptor Sub-GHz configurable (315/433/868/915 MHz) y radar Skyplot de satélites GNSS con NMEA.

Transceptor Sub-GHz (CC1101 / SX1276)


                  

Firmware Arduino / RadioLib

#include <RadioLib.h>
CC1101 radio = new Module(9, 14, RADIOLIB_NC, 10);

void setup() {
    Serial.begin(115200);
    int state = radio.begin(433.92, 4.8, 25.0, 135.0, 10, 32);
    if (state == RADIOLIB_ERR_NONE) {
        Serial.println("Sub-GHz listo a 433.92 MHz.");
    }
}

void loop() {
    byte byteArr[] = {0xAA, 0x55, 0x01, 0x02, 0xF0, 0x0D};
    radio.transmit(byteArr, 6);
    delay(2000);
}

Navegación Satelital GNSS / GPS (Skyplot)

3D FIX
40.4168°
Latitud N
-3.7038°
Longitud W
657.4 m
Altitud
4.2 km/h
Velocidad
7 Satélites
Constelación
Sentencias NMEA 0183 en Vivo:


              

Módulo Camera (Visión Artificial & DVP)

OV2640 / OV5640

Visor en tiempo real para sensores OV2640/OV5640, procesamiento de imagen, códigos QR y exportador C.

Array C de Imagen RGB565 (LVGL)


              

Consola de Auditoría & Logs del Sistema

Trazabilidad ISO 27001

Trazabilidad completa de accesos, intentos de login, eventos de hardware USB/BLE y firmware.

0
Total Eventos
0
Accesos Exitosos
0
Intentos Fallidos
0
Eventos Hardware
# Fecha & Hora Categoría Evento Detalles de Operación Acciones
Frecuencia ISM
433.92 MHz
Nivel RSSI
-105 dBm
Modulación / Proto
2-FSK / EV1527
Ancho de Banda
100 kHz

Laboratorio de Señales & Espectro Sub-GHz

Análisis espectral en cascada FFT, decodificador de pulsos OOK/Manchester y generador de tramas .sub para Flipper Zero.

STANDBY
Espectrograma de Cascada (Waterfall FFT): 433.92 MHz Nivel RSSI: -105.0 dBm

Forma de Onda de Pulsos (OOK / Timing)

Pulsa "Decodificar Trama" o genera una ráfaga para ver el payload en binario y hexadecimal.

Exportación & Replay

Genera archivos RAW .sub listos para copiar en la tarjeta SD de un Flipper Zero o exporta el código C++ para el chip CC1101 de Kode Dot.

LF 125 kHz ID
0102030405
Wiegand Formato
FC: 2 | ID: 1029
HF 13.56 MHz Sector
Sector 0 / 16
Mifare Classic UID
DE:AD:BE:EF

Baja Frecuencia 125 kHz (EM4100 / T5577)

Decodificación Wiegand 26-bit y programación de credenciales en chips reescribibles T5577.

Facility Code: 2
Número Tarjeta: 1029
Formato: Wiegand26 [2 : 1029]
Decimal Completo: 000432871429
Matriz de Paridad EM4100 (64-bit Payload):

Alta Frecuencia 13.56 MHz (Mifare 1K)

Transporte de Fábrica: Key A R/W libre
DE:AD:BE:EF

Editor hexadecimal de los 16 sectores, Magic UID Gen1a/Gen2 y volcado binario .mfd / .nfc.

Bloque Datos Hexadecimales (16 Bytes)
Modo Baliza
Apple iBeacon
Tx Power @ 1m
-59 dBm
Balizas Detectadas
4 en Radar
Servicios GATT
1 Serv / 3 Chars

Generador de Publicidad Beacon

Configuración y análisis de tramas de proximidad iBeacon, Eddystone (URL / TLM Telemetría) y AltBeacon.

Payload AD Hexadecimal Completo:

Radar de Proximidad RSSI

Pérdidas (n): 2.2

Diseñador de Servicios GATT

🎲
Entropía Shannon (TRNG)
7.994 bits
🛡️
Suite NIST SP 800-22
3/3 PASS
Acelerador Hardware
AES-256 + ECC
🔒
Estado de eFuse
SECURE BOOT

Generador Cuántico de Entropía (TRNG)

Muestreo físico de ruido térmico con validación estadística NIST SP 800-22 en tiempo real.

Entropía Shannon: 7.994 / 8.000 bits
Balance de bits: 1s: 50.0% | 0s: 50.0%
NIST Runs Test: PASS (p=0.482)

Cifrador Simétrico AES-256-GCM (Hardware DMA)

Firma Digital ECDSA (P-256 / SHA-256)

SIN FIRMAR

Mapa de Bloques eFuse (One-Time Programmable)

🎙️
Actividad Vocal (VAD)
EN REPOSO
📊
Nivel de Entrada RMS
-90.0 dBFS
🎚️
Ruido de Fondo Calibrado
-55 dBFS
👂
Wake-Word ("Hey Kode")
STANDBY

Monitor de Micrófono MEMS I2S

INACTIVO

Oscilograma en tiempo real (16 kHz 16-bit mono) y espectrograma FFT con discriminador vocal por hardware.

Nivel de Audio en Vivo: -90.0 dBFS
-42 dBFS

Puente de Streaming LLM (IA)

Túnel WebSocket bidireccional compatible con Ollama local, OpenAI Realtime y Claude.

Generador de Driver I2S DMA (ESP-IDF 5.x / Arduino):
🛰️
Estado del Fix
3D DGPS FIX
📡
Satélites (Uso / Vista)
14 / 18
🎯
Precisión Geométrica
0.85 HDOP
🚀
Velocidad Terrestre
24.5 km/h

Bóveda Celeste Polar & Satélites en Vista

GPS (US) GLONASS (RU) Galileo (EU) BeiDou (CN)
Histograma de Nivel de Señal SNR (dB-Hz):

Mapa 2D de Trayectoria & Telemetría

3D DGPS FIX
Latitud: 40.416775° N
Longitud: 3.703790° W
Altitud MSL: 657.4 m
Velocidad: 24.5 km/h (13.2 kt)
Rumbo (COG): 142°
Satélites: 14 en uso / 18 vista
Tracklog: 0 puntos (0.00 km)
Rumbo Compensado
038° (NE)
Muestras 8-DOF
90 Muestras
Error Residual RMSE
0.84 µT
Grado de Calibración
A+ (Excelente)

Rosa de los Vientos Digital

038° NE
Pitch:
Roll: -3°

Ajuste de Esfera Hard/Soft-Iron

CALIBRACIÓN APLICADA

Muestreo en figura de 8 para eliminar el desplazamiento del campo magnético propio del reloj.

Hard-Iron Bias (Centro): [14.5, -22.3, 8.1] µT
Soft-Iron Scale (Esfera): [1.05, 0.96, 1.01]
🚗
Carga de Bus TWAI
0.0% (500k)
Frecuencia de Tramas
0 fps
📊
Tramas Capturadas
0
🛡️
Estado del Periférico
ESPERA

Sniffer CAN Bus & Diagnóstico OBD-II

Monitor de tramas automotrices TWAI con resaltado delta de variaciones, PIDs OBD-II (RPM, velocidad) y borrado de errores DTC.

INACTIVO
BRP=8 | TSEG1=15 | TSEG2=4 | SJW=3 | Sample Point: 80.0%
Revoluciones (RPM)
2450 RPM
Velocidad
78 km/h
Temperatura Motor
89 °C
Acelerador
34 %
Nivel Combustible
68 %

Tráfico TWAI CAN 2.0B

Filtro ID:
Tiempo ID (Hex) DLC Datos (Bytes 0-7 / Delta)
Inicia el sniffer para capturar tramas...

Códigos de Avería Almacenados (DTC)

Inyector Manual / Cíclico CAN
🏭
Parámetros UART
9600 8N1
⏱️
Latencia RTU
18.2 ms
🛡️
Tasa Error CRC
0.0% (OK)
📦
Total Transacciones
0

Constructor de Tramas RTU

Generador de paquetes Modbus Master con cálculo automático de CRC-16 (0xA001).

Trama TX Hex: 01 03 00 00 00 02 C4 0B
Checksum: 0x0BC4 (L: 0xC4, H: 0x0B)
Tendencia Temporal de Registros:

Tabla de Registros de Retención

Dirección Decimal Hexadecimal Valor Decodificado Acción
🌐
Estado Broker
DESCONECTADO
📨
Mensajes Recibidos
0
🌳
Tópicos Activos
0
🏠
Home Assistant
MQTT Discovery

Generador Auto-Discovery Home Assistant

HA v2024+

Publica estos payloads de descubrimiento en tu broker para que Home Assistant registre las entidades del Kode Dot automáticamente sin editar configuration.yaml.

Tópico MQTT de Configuración (Retain = true):
Payload JSON de Descubrimiento:

              

Consola MQTT & Explorador de Tópicos

DESCONECTADO
🧠
SRAM Interna Libre
370 KB Libre
💾
Octal PSRAM DDR Libre
5.90 MB Libre
Bus DMA / EDMA
750 MB/s
🖼️
Búfer Pantalla Calculado
804.0 KB

Mapa de Arquitectura de Memoria (ESP32-P4)

SRAM Interna (512 KB)
142 KB / 512 KB (27.7%)
Octal PSRAM DDR (8 MB)
2.10 MB / 8 MB (26.2%)
SPI NOR Flash (16 MB)
4.77 MB / 16 MB (29.8%)

Calculadora de Búfer DMA AMOLED (410x502)

Tamaño Framebuffer Simple: 402.0 KB (410x502)
Memoria Total Requerida: 804.0 KB

Test de Rendimiento de Bus (MB/s)

Velocidad SDIO 4-bit
19.4 MB/s
🩺
Salud SMART Flash
98% (Excelente)
📦
Tamaño Clúster FAT32
32 KB Óptimo
🧩
Fragmentación
2.4% (Baja)

Test de Velocidad SPI vs SDIO 4-bit

Comparativa de ancho de banda del controlador hardware SDMMC (SDIO) frente a emulación SPI.

Optimizador de Tamaño de Clúster FAT32

Ganancia de rendimiento:

Mapa de Clústeres FAT32 (256 Bloques)

FAT/Dir Sistema Assets AMOLED Apps Bin Fragmentado Libre
Haz clic en cualquier celda para inspeccionar el clúster

Estructura Oficial de Carpetas kodeOS

📁 / (Raíz MicroSD FAT32)
├── 📁 apps/ (Binarios .bin)
├── 📁 system/ (settings.json)
└── 📁 fonts/ (Fuentes sistema)
├── 📁 assets/ (Fondos 410x502)
└── 📁 audio/ (WAV/RTTTL)
└── 📁 logs/ (Blackbox telemetría)