Saltar al contenido principal

Tu programa en una placa

En este recorrido llevas un programa a una placa ESP32: eliges la placa en el IDE, grabas en ella la VM de JARU, le envías el programa con Run y ves en el monitor serie lo que imprime.

Necesitas una placa de las que trae JARU IDE en su lista de perfiles, su cable USB y un proyecto: el de Tu primer programa o uno nuevo, creado con New Project.

Conectar la placa y elegirla​

La pestaña Build de la cinta: a la izquierda, el botón Target: Windows; en el grupo Compiler, Run
  1. Conecta la placa al ordenador por USB.
  2. En la pestaña Build, pulsa el botón Target: Windows y elige Manage boards.... Se abre ESP32 Tools, la ventana de las placas del proyecto (la misma que Config › Platform › ESP32).
ESP32 Tools en la página Hardware: arriba, la placa Default ESP32 y Save Device; debajo, Port y Scan Ports; al final, la lista Hardware Profiles con Apply
  1. Arriba, en Device, está la placa del proyecto, la que vas a preparar. Si el proyecto no tenía ninguna, ESP32 Tools acaba de crear una: Default ESP32.
  2. En Hardware Profiles, elige el perfil de tu placa y pulsa Apply. Los perfiles llevan la marca y el modelo de la placa, y debajo de la lista sale un resumen: el chip, la pantalla, la tarjeta SD y el sonido.
  3. Pulsa Scan Ports. El IDE busca los puertos serie, los lista en el Output y elige en Port el que más parece una placa: uno USB. Comprueba que es el de la tuya.
  4. En Name, ponle el nombre que quieras, y pulsa Save Device: la placa queda guardada en el proyecto.
  5. Vuelve a pulsar el botón Target: tu placa sale en el menú, con su chip y su puerto. Elígela. El botón pasa a decir su chip, por ejemplo Target: ESP32-S3.

Desde ahora, Run lleva el programa a esa placa. Para volver a Windows, elige Windows x64 en el mismo menú. El destino se guarda con el proyecto. Todo el grupo Target, en La interfaz.

Grabar el firmware de la VM​

La placa necesita la VM de JARU para ejecutar tus programas. Se graba una vez, y otra cada vez que actualizas JARU IDE.

  1. En la columna de la izquierda de ESP32 Tools, pulsa Deploy, en Actions. Arriba, Deploy Summary resume con qué se va a grabar la placa: el chip, el puerto, el tamaño de la flash, el programa… y avisa de lo que falte.
  2. Pulsa Flash Firmware.
ESP32 Tools en la página Deploy: arriba, Deploy Summary con la placa JARU JaruCade en COM5 y sus avisos; debajo, Flash Firmware y Upload Program

El IDE lee de la placa el tamaño de su memoria flash y graba en ella la VM de JARU para su chip, la que trae la instalación, con su arranque y su tabla de particiones. El Output cuenta cómo va («Flashing in progress... 45%») y, al final, dice «JARU VM firmware successfully saved.». Después, la placa se reinicia.

Flash Firmware sustituye el firmware de la placa

Si tu placa trae un programa de fábrica, o uno tuyo grabado con otra herramienta, Flash Firmware lo sustituye por la VM de JARU. JARU IDE no guarda una copia de lo que había.

No hace falta grabar la VM antes del primer Run: si la placa no la lleva, Run te ofrece grabarla (ver Ejecutar en la placa).

Al actualizar JARU, graba otra vez el firmware

Run no nota si la placa lleva la VM de una versión anterior de JARU: su comprobación la da por buena. En una placa con la VM de la 0.9.6, un programa compilado con la 0.9.7 se para en la primera instrucción nueva con el error «Unknown Opcode encountered». Después de actualizar JARU IDE, pulsa Flash Firmware en cada placa antes de enviarle programas (ver Al cambiar de versión y Actualizar desde la 0.9.6).

Ejecutar en la placa​

Escribe este programa en el fichero principal del proyecto, en lugar de lo que tenga, y guárdalo (Ctrl+S):

// Una línea por segundo, cinco veces
for (var vuelta = 1; vuelta <= 5; vuelta++)
println("Hola desde la placa: vuelta ", vuelta)
pause(1000)
end
println("Fin")

Imprime esto:

Hola desde la placa: vuelta 1
Hola desde la placa: vuelta 2
Hola desde la placa: vuelta 3
Hola desde la placa: vuelta 4
Hola desde la placa: vuelta 5
Fin

Con tu placa en Target, pulsa Run. Si el programa no está compilado, o has cambiado el código desde la última vez, el IDE lo compila antes. Si ESP32 Tools tiene cambios sin guardar, como el tamaño de la flash que acaba de leer de la placa, Run pregunta antes si los guardas («The ESP32 configuration has unsaved changes»): contesta Yes.

Luego, el Output cuenta los tres pasos del envío:

  1. Prepara los ficheros para la placa («Step 1 of 3»). Lee de la placa el tamaño de su flash y junta en una imagen el programa compilado, sus recursos y el boot.cfg, el fichero que le dice a la VM cómo es la placa y qué programa arrancar.
  2. Mira que la placa lleve la VM de JARU («Step 2 of 3»). Si la lleva, el Output dice «The board carries the JARU VM.».
  3. Graba en la placa el programa y sus ficheros («Step 3 of 3»). Borrar el sitio de los ficheros tarda un rato: mientras, el Output escribe una línea cada 10 segundos («... still working, 20 s so far»).

Al acabar, el Output dice «DEPLOYMENT COMPLETED: LittleFS successfully built and flashed.». La placa se reinicia y arranca tu programa. Lo que imprime no sale en el Output: para verlo, abre el monitor serie (Ver lo que imprime).

Run sustituye los ficheros de la placa

El paso 3 graba de nuevo toda la memoria de ficheros de la placa, no solo el programa. Lo que tu programa haya guardado en ella se pierde con cada Run, y también con Upload Program.

Si en el paso 2 la placa no lleva la VM (está vacía o lleva otro firmware), Run pregunta qué hacer antes de grabar nada, en la ventana Run on the board:

BotónQué hace
YesGraba antes la VM, como Flash Firmware, y después el programa. Es lo que quieres.
NoGraba el programa igualmente. Sin la VM, la placa se queda reiniciándose una y otra vez.
CancelNo graba nada.

Además:

  • Upload Program, en la página Deploy de ESP32 Tools, también envía el programa, pero no lo compila antes, no mira si la placa lleva la VM y no aparta el monitor serie, así que ciérralo antes. Usa Run.
  • Debug no va a la placa: depura siempre en la VM de Windows.
  • El programa se queda en la placa hasta que le envíes otro. Stop no lo para: solo para los programas que corren en Windows.

Ver lo que imprime​

Lo que tu programa imprime en la placa sale por su puerto serie, y el Output lo enseña con el monitor serie. Run no lo abre: ábrelo tú.

  1. En la barra del Output, mira que Port sea el puerto de tu placa y que Speed sea 115200, la velocidad a la que escribe la VM. Si Target es tu placa y no has elegido otro puerto, Open Serial usa el suyo.
  2. Pulsa Open Serial. El Output dice «Serial port opened (COM5)», con tu puerto, y desde ahí enseña lo que llega de la placa.

Cada vez que arranca el programa, la VM escribe antes unas líneas suyas, con un rótulo que lleva su versión; después salen las de tu programa. Cuando el programa acaba, la VM de la placa lo vuelve a empezar: verás sus seis líneas una y otra vez.

Para cerrar el monitor, pulsa Close Serial, que es el mismo botón.

Abre el monitor antes de Run

Si el monitor está abierto cuando pulsas Run o Flash Firmware, el IDE lo aparta mientras graba la placa («Serial monitor paused: the IDE is using COM5.») y lo vuelve a abrir al terminar. No tienes que pulsar otra vez Open Serial.

Cómo funciona el monitor, en El Output y el monitor serie.

Si no arranca​

  • «Error: No COM port configured. Please open ESP32 Tools and select a port.» La placa del proyecto no tiene puerto. En Manage boards..., pulsa Scan Ports, elige el de tu placa en Port y pulsa Save Device. Con Flash Firmware, el mensaje es «No COM port has been selected. Please select a valid COM port to proceed.».
  • «DEPLOYMENT FAILED» en el Output, o «Error: failed to save JARU VM firmware.» con Flash Firmware. El IDE no ha podido grabar la placa, y las líneas de encima, de esptool, dicen por qué. Los avisos «Warning: Could not auto-detect flash size.» y «Could not read the board to check it: sending the program anyway.» quieren decir que ni siquiera ha podido leerla. Comprueba que la placa está conectada y que Port es su puerto: vuelve a pulsar Scan Ports.
  • La placa se reinicia una y otra vez. Lleva tu programa, pero no la VM: pasa si contestas No en Run on the board. Pulsa Flash Firmware y después Run.
  • El monitor serie dice «File "boot.cfg" not found. System halted.» La placa lleva la VM, pero todavía ningún programa: pulsa Run.
  • El programa se para con «Unknown Opcode encountered». La placa lleva la VM de una versión anterior de JARU: pulsa Flash Firmware (ver Grabar el firmware de la VM). Una VM de la 0.9.7 que recibe un programa de una versión más nueva lo rechaza con otro mensaje, que pide «Update the firmware from the IDE»: haz lo mismo.
  • El programa da un error. El monitor serie enseña el error y, si Line numbers está encendida, su línea. Si el error para el programa, la VM lo vuelve a empezar, y el error se repite hasta que lo corrijas y pulses otra vez Run.
  • El programa se queda esperando. readLine() no recibe nada en la placa: el monitor serie no envía lo que escribes (ver readLine y Memoria y límites).

Más casos, en Si la placa no arranca.

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

Siguientes pasos​

  • Un LED y un botón: enciende un LED y cámbialo con un botón, en el simulador GPIO de Windows y en tu placa.
  • Dibujar y mover: la pantalla de la placa, una animación y sus botones.