Cómo actualizar el firmware de tu Biodata

Cómo actualizar el firmware de tu Biodata

De vez en cuando publicamos mejoras del Biodata: escalas nuevas, conexiones más suaves, pequeños arreglos, funciones extra. Esas actualizaciones viven en este repositorio de GitHub:

github.com/JoakuDeSotavento/BiodataFeather

El «firmware» es, simplemente, el programa que corre dentro del Biodata. Actualizarlo es como darle al dispositivo un cerebro nuevo. Copias ese programa desde tu ordenador a la caja con un cable USB.

No hace falta ser programador. No hace falta entender el código. Solo hay que seguir los pasos en orden.

Lee esta página entera antes de pulsar Cargar (Upload). La mayoría de los problemas aparecen cuando alguien intenta enviar el código antes de que Arduino conozca la placa, o antes de instalar las bibliotecas extra.


Qué vas a necesitar

  • Un ordenador (Windows, Mac o Linux)
  • Tu Biodata
  • Un cable USB que pueda transportar datos, no solo cargar. Si el ordenador no «ve» nunca el dispositivo, prueba primero con otro cable
  • Unos 20 minutos de calma la primera vez. Las actualizaciones posteriores son más rápidas, porque las herramientas ya están en tu ordenador

El panorama general

Hay cinco etapas. Hazlas en este orden y no te adelantes.

  1. Instala el programa Arduino (es la aplicación que habla con el Biodata).
  2. Enseña a Arduino el chip ESP32-S3 que hay dentro del Biodata.
  3. Instala todas las bibliotecas de la lista de abajo. Hazlo antes de abrir el código o de intentar compilar.
  4. Descarga el código más reciente desde GitHub y añade un archivo pequeño secrets.h.
  5. Elige los ajustes de la placa, enchufa el Biodata y pulsa Cargar (Upload).

Si un paso falla, detente ahí. La sección «Si algo sale mal», al final, es para eso.


1. Instalar Arduino IDE

Arduino IDE es una aplicación gratuita hecha para enviar programas a dispositivos pequeños.

  1. Ve a arduino.cc/en/software.
  2. Descarga Arduino IDE 2 para tu ordenador.
  3. Instálalo como cualquier otra aplicación y ábrelo una vez para que termine de configurarse.

Verás una ventana casi vacía, con un botón de reproducir y un botón con una flecha hacia la derecha. El botón de reproducir verifica (comprueba) el código. La flecha hacia la derecha lo carga en el Biodata. No los pulsaremos hasta el final.


2. Enseñar a Arduino la placa ESP32

El Biodata está construido alrededor de una Adafruit Feather ESP32-S3. Arduino no conoce ese chip hasta que añades un paquete de placas.

Añadir la dirección de las placas

  1. En Arduino, abre Archivo → Preferencias (en un Mac: Arduino IDE → Ajustes).
  2. Busca Gestor de URLs adicionales de tarjetas (Additional boards manager URLs).
  3. Pega esta dirección:
https://espressif.github.io/arduino-esp32/package_esp32_index.json

Si ya hay algo escrito, añade una coma y pega la dirección nueva en la misma línea, o pulsa el icono pequeño de la derecha y añádela en su propia línea.

  1. Pulsa Aceptar.

Instalar el paquete ESP32

  1. Abre Herramientas → Placa → Gestor de placas…
    (En Arduino IDE 2 también puedes pulsar el icono de placa de la barra lateral izquierda.)
  2. Busca esp32.
  3. Instala esp32 de Espressif Systems.
  4. Elige la versión 3.3.2 si ves una lista de versiones. Es la versión para la que está escrito este firmware. Si 3.3.2 no aparece, elige la 3.3.x más reciente.

Esta descarga puede tardar unos minutos. Déjala terminar. Cierra y vuelve a abrir Arduino si las placas nuevas no aparecen en Herramientas → Placa.

Todavía no has cargado nada. Es lo correcto.


3. Instalar las bibliotecas: hazlo antes de compilar

Esta es la sección más importante de la página.

El código del Biodata usa piezas extra de software llamadas bibliotecas (libraries). Son como plugins. Arduino no las incluye hasta que las instalas. Si intentas Verificar o Cargar demasiado pronto, te saldrá un muro de errores rojos que parecen graves y que, casi siempre, significan «falta una biblioteca».

Instala todas las bibliotecas de abajo, aunque no uses Wi-Fi, MQTT ni los sensores ambientales. El firmware actual es un solo programa; necesita el conjunto completo para poder compilar.

Cómo abrir el Gestor de bibliotecas

  1. En Arduino, ve a Programa → Incluir biblioteca → Gestionar bibliotecas…
    (O pulsa el icono de libros de la barra lateral izquierda.)
  2. Aparece un cuadro de búsqueda.
  3. Escribe el nombre de búsqueda de la tabla.
  4. Comprueba el autor para instalar la correcta.
  5. Pulsa Instalar. Si Arduino pregunta «¿Quieres instalar también las dependencias?», di Sí.

Hazlo con cada fila marcada como «Library Manager».

Bibliotecas que instalar desde el Gestor de bibliotecas

BuscarAutorNotas de versión
PubSubClientNick O’LearyVale la más reciente. Sirve para hablar con MQTT.
ArduinoJsonBenoit BlanchonInstala la versión 6, no la 7. Abre el menú de versión junto a Instalar y elige una versión 6.x (por ejemplo, 6.21.x). La versión 7 no compilará este firmware.
AppleMIDIlathoubEs el MIDI por Wi-Fi (RTP-MIDI).
MIDI LibraryFrancois BestAppleMIDI la necesita. Busca «MIDI Library» y elige la de Francois Best (FortySevenEffects).
Adafruit LTR329 and LTR303AdafruitSensor de luz. Si te pregunta por bibliotecas extra, pulsa Install all.
Adafruit BusIOAdafruitLa biblioteca del sensor de luz la necesita. Instálala aunque Arduino ya te la haya ofrecido como dependencia.

Después de cada instalación, espera a que diga que ha terminado. Luego busca la siguiente.

Una biblioteca que no está en el Gestor de bibliotecas

El sensor de temperatura, humedad y aire usa DFRobot_BME68x, que se añade como un archivo ZIP.

  1. Abre github.com/DFRobot/DFRobot_BME68x.
  2. Pulsa el botón verde Code y luego Download ZIP. Guarda el archivo en un sitio fácil, como Descargas.
  3. En Arduino: Programa → Incluir biblioteca → Añadir biblioteca .ZIP…
  4. Elige el ZIP que acabas de descargar. No hace falta descomprimirlo antes.

Arduino dirá que la biblioteca se ha instalado.

Ya incluidas: no las instales tú

Estas llegan con el paquete de la placa ESP32. No deberías buscarlas en el Gestor de bibliotecas:

  • Wi-Fi, Bluetooth, EEPROM, Wire
  • USB y USBMIDI (el soporte de USB MIDI integrado en ESP32 3.3.x)

Por favor, no instales Adafruit TinyUSB para este firmware. Este Biodata usa el USB MIDI que ya vive en el paquete ESP32. Mezclar ambos puede hacer que la carga falle de formas confusas.

Lista de comprobación rápida

Marca estas antes de descargar el código:

  • PubSubClient (Nick O’Leary)
  • ArduinoJson 6.x (Benoit Blanchon) — no la 7
  • AppleMIDI (lathoub)
  • MIDI Library (Francois Best)
  • Adafruit BusIO
  • Adafruit LTR329 and LTR303
  • DFRobot_BME68x (desde el ZIP de GitHub)

Cuando esa lista esté hecha, ya estás listo para el código.


4. Descargar el firmware desde GitHub

  1. Abre github.com/JoakuDeSotavento/BiodataFeather.
  2. Pulsa el botón verde Code y luego Download ZIP.
  3. Descomprime el archivo. Obtendrás una carpeta con un nombre parecido a BiodataFeather-master.
  4. Dentro, abre 00_Biotada_MolinoLab_versions.
  5. Elige la carpeta de firmware con el número más alto. Ahora mismo es:

Biodata_Feather_ESP32_11_Environmental

Esa carpeta es el sketch. Déjala como está. Arduino espera que todos esos archivos .ino se queden juntos en la misma carpeta, con el mismo nombre que el archivo principal.

Crear el archivo secrets.h (imprescindible)

El código busca un archivo pequeño llamado secrets.h, con los nombres de Wi-Fi y MQTT. GitHub no incluye uno real, a propósito, para que las contraseñas se queden en privado. Sin este archivo, el código no compilará.

  1. En esa carpeta de firmware, encuentra secrets_sample.h.txt.
  2. Cópialo.
  3. Cambia el nombre de la copia a secrets.h (quita el .txt).
    El nombre debe ser exactamente secrets.h.
  4. Abre secrets.h en el Bloc de notas (Windows), TextEdit (Mac) o en el propio Arduino.
  5. Pon el nombre y la contraseña de tu Wi-Fi en WIFI_SSID y WIFI_PASSWORD. Deja las comillas alrededor.

Si solo usas Bluetooth o USB, puedes dejar los nombres de ejemplo. El archivo tiene que existir igualmente. Las líneas extra de Wi-Fi (WIFI_SSID_2, etc.) pueden quedarse como están.

No publiques secrets.h en ningún sitio. Está pensado para quedarse en tu ordenador.


5. Abrir el sketch y elegir la placa

  1. En Arduino: Archivo → Abrir…
  2. Ve a la carpeta del firmware y abre Biodata_Feather_ESP32_11_Environmental.ino.
    Aparecerán varias pestañas arriba (Main, MIDI, Environmental…). Es normal. Son un solo programa.
  3. Ve a Herramientas → Placa → esp32 y elige el Feather que coincida con tu hardware:
    • Adafruit Feather ESP32-S3 No PSRAM — la placa habitual del Biodata
    • Adafruit Feather ESP32-S3 2MB PSRAM — solo si tu Feather es la versión con PSRAM
  4. En Herramientas, ajusta estas opciones de USB (los nombres pueden variar un poco según la versión):
AjusteElegir
USB CDC On BootEnabled
USB ModeUSB-OTG (TinyUSB)
USB DFU On BootDisabled
USB Firmware MSC On BootDisabled
Upload Speed921600 (prueba 115200 si la carga no deja de fallar)

Esos ajustes de USB importan. Si USB Mode está mal, el Biodata puede compilar y cargarse, y después no aparecer nunca como dispositivo MIDI.


6. Enchufar y cargar

  1. Conecta el Biodata al ordenador con el cable USB.
  2. Ve a Herramientas → Puerto y elige el puerto nuevo.
    En Windows se parece a COM3 o COM7. En un Mac se parece a usbmodem o usbserial.
  3. Pulsa una vez el botón Verificar (el icono de la marca de verificación / reproducir).
    La primera comprobación puede tardar un par de minutos. Espera a que la parte inferior de la ventana diga que ha terminado.
  4. Si Verificar termina bien, pulsa Cargar (la flecha hacia la derecha).

Las luces del Biodata pueden parpadear. Cuando Arduino diga Done uploading, desenchufa y vuelve a enchufar, o pulsa el botón de reset del Feather. Después usa el Biodata como de costumbre.

Después de una actualización de firmware, si el Bluetooth o el menú se sienten raros, haz una restauración: mantén pulsado el botón del Biodata mientras lo enciendes, espera al juego de luces, y vuelves a los valores de fábrica (pentatónica menor, canal 1, Bluetooth encendido, Wi-Fi apagado, tónica do).


Si algo sale mal

Errores rojos sobre un archivo .h que falta

Arduino te está diciendo que falta una biblioteca (o secrets.h).

  • secrets.h: No such file → te saltaste el paso de copiar/renombrar de la sección 4.
  • PubSubClient.h, ArduinoJson.h, AppleMIDI.h, MIDI.h, Adafruit_LTR329_LTR303.h, DFRobot_BME68x.h → esa biblioteca no está instalada. Vuelve a la sección 3. Cierra y vuelve a abrir Arduino después de instalar.
  • Errores de ArduinoJson que mencionan StaticJsonDocument → has instalado la versión 7. Desinstálala e instala la 6.x.

No hay puerto en Herramientas → Puerto

  • Prueba con otro cable USB (los cables solo de carga son muy habituales).
  • Prueba con otro enchufe USB del ordenador.
  • Pon el Feather en modo bootloader: mantén pulsado el botón pequeño BOOT de la placa Feather (no es el botón grande del menú del Biodata), pulsa RESET y suelta BOOT. Mira otra vez en Herramientas → Puerto.

La carga empieza y luego falla

  • Cierra cualquier aplicación que pueda estar ocupando el puerto USB (Monitor serie, un DAW, Perfect Bluetooth MIDI, una pestaña del navegador que use Web MIDI).
  • Baja la Upload Speed a 115200.
  • Usa el modo bootloader (BOOT + RESET) y vuelve a cargar.
  • En Windows, espera unos segundos después de enchufar antes de pulsar Cargar.

Se carga, pero el ordenador no ve el USB MIDI

Comprueba que USB Mode = USB-OTG (TinyUSB) y USB CDC On Boot = Enabled, y vuelve a cargar. Cuando termine, desenchufa el cable y vuelve a enchufarlo para que el ordenador redescubra el dispositivo.

Tengo miedo de «romper» el Biodata

No lo vas a dejar inservible por seguir esta guía. Si una carga falla, el programa anterior suele seguir ahí. Si el programa nuevo se porta mal, mantén pulsado el botón del menú al arrancar para restaurar los ajustes, o simplemente vuelve a cargar.


La próxima vez que actualices

Lo más difícil ya lo has hecho. Para una versión posterior:

  1. Descarga un ZIP nuevo desde el repositorio de GitHub.
  2. Abre la carpeta más reciente dentro de 00_Biotada_MolinoLab_versions.
  3. Copia tu secrets.h existente a esa carpeta nueva (o créalo otra vez a partir del ejemplo).
  4. Confirma que las bibliotecas siguen instaladas.
  5. Abre el .ino, elige la misma placa y los mismos ajustes de USB, y pulsa Cargar.

Las mejoras nuevas llegan a ese mismo repositorio. Si un firmware futuro necesitara una biblioteca extra, vendrá indicada con la versión; pero empieza por esta página e instala las bibliotecas antes de compilar.

Back to top