Hardware (Ulanzi TC001)
Referencia de hardware del reloj Ulanzi TC001, la base sobre la que corre SVITRIX.
Microcontrolador
- Chip: ESP32-WROOM-32D (dual-core Xtensa LX6, 240 MHz)
- Flash: 8 MB
- RAM: 520 KB SRAM
- WiFi: 2.4 GHz 802.11 b/g/n
- Bluetooth: BT 4.2 + BLE (no usado por SVITRIX)
- USB-Serial: CH340 — permite programación USB directa sin programador externo
Pinout
| GPIO | Función | Dirección | Notas |
|---|---|---|---|
| 32 | Matriz LED (WS2812B-Mini) | Salida | Línea de datos NeoPixel, 256 LEDs |
| 34 | ADC voltaje batería | Entrada | ADC1_CH6, solo entrada, divisor de voltaje a 0–3.3 V |
| 35 | Sensor de luz LDR (GL5516) | Entrada | ADC1_CH7, solo entrada |
| 26 | Botón izquierdo | Entrada | Activo BAJO, pull-up interno |
| 27 | Botón medio (Seleccionar) | Entrada | Activo BAJO, pull-up interno, pin de despertar deep sleep |
| 14 | Botón derecho | Entrada | Activo BAJO, pull-up interno |
| 13 | Botón reset (oculto) | Entrada | Mantener 5s → reset de fábrica |
| 15 | Buzzer (piezo pasivo) | Salida | PWM vía LEDC. Debe usar INPUT_PULLDOWN al iniciar para prevenir ruido flotante |
| 21 | I2C SDA | Bidireccional | Bus compartido: sensor de temperatura + RTC |
| 22 | I2C SCL | Salida | Bus compartido: sensor de temperatura + RTC |
Dispositivos I2C
| Dispositivo | Dirección | Función |
|---|---|---|
| SHT3x (SHT31) | 0x44 | Sensor de temperatura + humedad |
| DS1307 | 0x68 | Reloj en tiempo real (RTC) |
Sensor de Temperatura
El Ulanzi TC001 viene con un sensor SHT3x (dirección I2C 0x44) que mide temperatura y humedad. Las lecturas de temperatura pueden estar elevadas debido al calor interno de la matriz LED, ESP32 y batería dentro de la carcasa sellada. Para compensar, ajusta el offset desde la interfaz web (Apps → Temperatura → Compensación) o con temp_offset en dev.json.
Reloj en Tiempo Real (DS1307)
El Ulanzi TC001 tiene un RTC DS1307 dedicado en el bus I2C en la dirección 0x68. El RTC interno del ESP32 no es suficientemente preciso para mantener la hora real. SVITRIX actualmente usa NTP para sincronización de tiempo vía WiFi.
Batería
- Capacidad: 4400 mAh Li-ion con circuito de carga integrado
- Medición de voltaje: GPIO34 con divisor de voltaje escalado a rango 0–3.3 V
- Mapeo ADC: valores raw ~510 (vacía) a ~660 (llena)
Matriz LED
- Tipo: LEDs RGB WS2812B-Mini
- Tamaño: 8×32 (256 LEDs en total)
- Pin de datos: GPIO32 (un solo cable, encadenados)
- Cableado: Patrón serpentina — filas pares de izquierda a derecha, filas impares de derecha a izquierda:
| Fila | Secuencia |
|---|---|
| 1 | [001] → [002] → ... → [032] |
| 2 | [064] ← [063] ← ... ← [033] |
| 3 | [065] → [066] → ... → [096] |
| 4 | [128] ← [127] ← ... ← [097] |
| 5 | [129] → [130] → ... → [160] |
| 6 | [192] ← [191] ← ... ← [161] |
| 7 | [193] → [194] → ... → [224] |
| 8 | [256] ← [255] ← ... ← [225] |
Configuración de Matriz
Si la matriz muestra caracteres sin sentido, el tipo de matriz debe cambiarse.
Crea un dev.json en tu administrador de archivos con el siguiente contenido:
{
"matrix": 2
}| Valor | Configuración |
|---|---|
| 0 | Matriz única 32x8, cableado zigzag (por defecto) |
| 2 | Matriz única 32x8, columna mayor, zigzag |