Saltar al contenido principal

Placas soportadas

JARU corre en placas con uno de estos cuatro chips de Espressif: ESP32, ESP32-S3, ESP32-P4 y ESP32-S31. JARU IDE trae la VM de JARU para cada uno, el firmware que graba Flash Firmware, y 14 perfiles de placa: los de 13 placas y una plantilla.

Un perfil de placa dice cómo está hecha una placa: el chip, la pantalla y sus pines, el sonido, la tarjeta SD y el bus I2C. Para usar uno, abre ESP32 Tools (Build › Target › Manage boards...), elígelo en la lista Hardware Profiles y pulsa Apply. Paso a paso, en Tu programa en una placa; qué lleva un perfil y cómo se cambia, en Perfiles de placa.

Los perfiles se llaman con la marca y el modelo de la placa. Las tablas dicen lo que trae cada uno:

  • Pantalla: el controlador y el bus.
  • Tamaño: el ancho y el alto de la pantalla para tu programa, los que dan Display.width y Display.height después de Display.open. Si el perfil gira la pantalla un cuarto de vuelta (Offset Rotation 1 o 3, en la página Display), van al revés que Width y Height: un panel de 240 × 320 se ve de 320 × 240.
  • Sonido: I2S, si el perfil lo enciende.
  • Mando o teclado: los pines del bus I2C, el que usan el mando I2C del editor de escenas y los drivers I2C, y el teclado USB del ESP32-S31.

ESP32​

PerfilPantallaTamañoSonidoMando o teclado
LILYGO_T4_v1.3ILI9341, SPI320 × 240——
Diymore_ESP32_2.8ILI9341, SPI240 × 320——
Binghe_ESP32_1.96ST7789, SPI170 × 320——

ESP32-S3​

PerfilPantallaTamañoSonidoMando o teclado
JARU_JaruCadeST7789, SPI320 × 240I2SBus I2C: SDA 11, SCL 10
Waveshare_ESP32-S3-Touch-LCD-2.8ST7789, SPI320 × 240I2SBus I2C: SDA 11, SCL 10
Waveshare_ESP32-S3-Touch-AMOLED-1.8SH8601Z, QSPI368 × 448I2S—
Freenove_FNK0086ST7789, SPI240 × 320——
Freenove_FNK0104ILI9341, SPI320 × 240I2S—
LILYGO_T-Watch_S3ST7789, SPI240 × 240——
Wireless-Tag_WT32-SC01_PlusST7796, i80480 × 320——
Generic_SH8601Z_QSPI_(template)SH8601Z, QSPI368 × 448——
  • JARU_JaruCade es la recreativa JaruCade: una Waveshare ESP32-S3-Touch-LCD-2.8, con o sin táctil, con el mando I2C Adafruit Mini I2C Gamepad en su bus. Su perfil es el mismo que el de la Waveshare.
    • Los ejemplos que trae JARU IDE llevan esta placa en el proyecto, como JARU JaruCade. Si la tuya es otra, abre ESP32 Tools en el ejemplo, elige el perfil de tu placa, pulsa Apply, cámbiale el nombre en Name y pulsa Save Device: la placa del ejemplo pasa a ser la tuya. Después, elígela en Build › Target.
  • Wireless-Tag_WT32-SC01_Plus lleva la pantalla en un bus paralelo de 8 bits (i80).
  • Generic_SH8601Z_QSPI_(template) no es una placa: es una plantilla para pantallas AMOLED con el controlador SH8601Z por QSPI. Trae el controlador, el bus y el tamaño, pero ningún pin (ver Una placa que no está en la lista).
  • Entre los perfiles de ESP32-S3, solo los de la JaruCade y la Waveshare 2.8 tienen bus I2C. Con los demás, el mando I2C del editor de escenas no arranca: si tu placa tiene un bus I2C, pon sus pines en Storage › I2C Bus.
En la Waveshare 2.8, Power.sleep() deja la placa sin USB

La Waveshare ESP32-S3-Touch-LCD-2.8, y con ella la JaruCade, se conecta por el USB del propio chip. Tras el primer Power.sleep(), Windows da el dispositivo por roto: el monitor serie no recibe nada más y el IDE no puede grabar la placa. No uses Power.sleep() en esta placa. Para recuperarla, arráncala en modo de descarga, con su botón BOOT pulsado mientras la reinicias, y envíale otro programa con Run.

ESP32-P4​

PerfilPantallaTamañoSonidoMando o teclado
Waveshare_ESP32-P4-WIFI6-Touch-LCD-4.3ST7701, MIPI-DSI480 × 800—Bus I2C: SDA 7, SCL 8
Waveshare_ESP32-P4-WIFI6-Touch-LCD-4BST7703, MIPI-DSI720 × 720—Bus I2C: SDA 7, SCL 8
En el ESP32-P4 y el ESP32-S31, un pin de salida no se puede leer

Con GPIO.pinmode(pin, GPIO.OUTPUT), GPIO.read() de ese pin devuelve siempre 0, y GPIO.onInterrupt() no salta con lo que escribes en él. En el ESP32 y el ESP32-S3 sí funciona. Si necesitas saber lo que has escrito en un pin, guárdalo en una variable.

Todos los problemas conocidos de JARU, juntos, están en Problemas conocidos.

ESP32-S31​

PerfilPantallaTamañoSonidoMando o teclado
Espressif_ESP32-S31-Korvo-1ST7262, RGB800 × 480—Teclado USB
  • El teclado USB va en el puerto USB-A de la placa. Lo enciende la casilla USB keyboard, en la página Hardware, que el perfil trae marcada. Input.map usa los mismos nombres de tecla que en Windows (ver Botones, pines y mando).
  • El lector de tarjetas SD: el perfil trae sus pines (MISO 20, MOSI 25, SCLK 24 y CS 23) y el que le da corriente (el GPIO 39, que lo enciende con LOW), pero la tarjeta apagada.
  • El aviso de los pines de salida del ESP32-P4, arriba, vale también para el ESP32-S31.

Lo que no dice el perfil​

  • La tarjeta SD: todos los perfiles la traen apagada (página Storage, grupo SD Card). Si tu placa tiene lector, enciéndela allí y comprueba sus pines (ver Pantalla, sonido, SD y red).
  • Los botones: no van en el perfil. Se asignan en el programa, con Input.map, o en los controles del editor de escenas (ver Botones, pines y mando).
  • El táctil: las placas «Touch» tienen pantalla táctil, pero JARU no la usa: la API no tiene funciones táctiles.
  • La memoria: el perfil no dice cuánta RAM, PSRAM ni flash tiene la placa. El tamaño de la flash lo lee el IDE de la placa cada vez que la graba; la memoria, en Memoria y límites.

Una placa que no está en la lista​

Puedes hacerle un perfil a tu placa si su chip es uno de los cuatro (los de MCU model, en la página Hardware) y su pantalla es de las que maneja la VM de ese chip:

ChipControlador (Controller)Bus
ESP32 y ESP32-S3ILI9341, ST7789, ST7796, SH8601 y SH8601ZSPI, QSPI o i80 (8 bits en paralelo). Con otro, la VM usa SPI.
ESP32-P4ILI9341, ST7789 y ST7796 por SPI; ST7701, ST7703 y JD9365 por MIPI-DSISPI o MIPI-DSI. Con otro, la VM usa SPI.
ESP32-S31Un panel RGB en paralelo, como el ST7262 de la Korvo-1Solo RGB

ESP32 Tools ofrece todos los controladores y todos los buses con cualquier chip: elegir una combinación que maneje la VM es cosa tuya. El resumen de la página Deploy avisa de algunas que no van: el bus RGB fuera del ESP32-S31, el ESP32-S31 sin el bus RGB, el bus MIPI-DSI con un controlador que no es MIPI-DSI, y el SH8601 o el SH8601Z sin QSPI.

Para hacerlo:

  1. En ESP32 Tools, pulsa New. Si tus proyectos recientes tienen placas guardadas, New te ofrece copiar una (From y el nombre del proyecto); si no, o con Empty profile, empiezas una nueva.
  2. Elige en Hardware Profiles el perfil de una placa parecida a la tuya, con el mismo chip y, mejor, el mismo controlador de pantalla, y pulsa Apply. Para una pantalla AMOLED SH8601Z por QSPI, empieza por la plantilla Generic_SH8601Z_QSPI_(template).
  3. Pon los pines de tu placa en las páginas Display, Audio y Storage. Salen de su esquema o de la documentación del fabricante. Un pin que tu placa no tiene se deja en -1.
  4. Ponle un nombre en Name y pulsa Save Device.
  5. Elígela en Build › Target y pulsa Run.

Si la pantalla se queda en negro, abre el monitor serie (Open Serial). Con un controlador que la VM de su chip no conoce, un ESP32-S31 sin el bus RGB o, en el ESP32 y el ESP32-S3, un bus QSPI al que le falta un pin, al abrir la pantalla el programa da el error «Display: Invalid panel/bus configuration from boot.cfg.». Si no sale, repasa el bus, los pines, Invert Color y los desplazamientos (Offset x y Offset y).

Cuando funcione, guarda su hardware como un perfil más con Export: saldrá en Hardware Profiles en todos tus proyectos, y puedes pasar el fichero a otros (ver Elegir, importar y exportar).