Usando la placa Saola-1 con ESP32-S2 en Micropython

La Saola-1 es una placa de desarrollo basada en el SoC ESP32-S2 producida por Espressif que nos permite probar las funcionalidades de este módulo. En este artículo veremos sus principales características y el procedimiento para instalar en ella el firmware de Micropython.

El ESP32-S2

Este Soc (System on Chip) de Espressif es uno de los modelos mas recientes de la popular familia ESP32. Sus características principales son las siguientes:

  • CPU de un solo núcleo tipo Xtensa 32-bit LX7 a una velocidad de 240 MHz con 320 KB de SRAM y 128 KB de ROM.
  • Memoria Flash de 4 MB y PSRAM de 2 MB.
  • Múltiples modos de bajo consumo.
  • Interfaces tipo SPI, I2S, UART, I2C, LED_PWM, LCD, cámara, ADC, DAC, sensor touch, sensor de temperatura y 43 GPIOs.
  • Puerto USB OTG.
  • Funciones de seguridad en hardware: aceleradores criptográficos para algoritmos AES, SHA y RSA. Encriptado de memoria Flash y secure-boot.
  • No incluye Bluetooth.

Un conjunto de características por demás interesantes que hacen del ESP32-S2 una excelente opción para distintas aplicaciones del Internet de las cosas (IOT).

La placa Saola-1

La Saola-1 es una placa de desarrollo producida por Espressif que incorpora un ESP32-S2 y la circuitería necesaria para programarlo y realizar las conexiones con el hardware externo.

Fig. 1. Placa ESP32-S2 Saola-1 (Fuente: Espressif)

Además de dos conectores de 21 pines cada uno que permiten conectar las distintas señales del módulo, la placa cuenta con dos pulsadores (BOOT para programarla y RESET para reiniciarla), un led RGB, un conector micro USB y un led de encendido .

Fig. 2. Componentes de la Saola-1 (Fuente: Espressif)

ESP32-S2-Wrover: Módulo ESP32-S2 con antena WiFi tipo PCB, 4 MB de flash y 2 MB de PSRAM.

Pines de conexión: Todos los pines GPIO del ESP32-S2 (excepto los pines del bus SPI que conectan las memorias Flash y PSRAM internas).

Led de encendido: Se prende al conectar la alimentación a la placa.

Adaptador USB-UART: Adapta un puerto tipo UART del ESP32-S2 con el conector Micro-USB. Se lo puede emplear para cargar el firmware.

Pulsador de RESET: Reinicia la placa.

Puerto Micro USB: Interface USB. Provee alimentación de 5V a la placa así como de comunicaciones con una computadora.

Pulsador BOOT: Manteniendo este pulsador presionado y apretando el de RESET se pone la placa en el modo de carga del firmware a través de puerto UART.

Led RGB: Led tipo WS2812, conectado a GPIO18.

La distribución de los pines de conexión es la siguiente:

Fig. 3. Pines de conexión (Fuente: Espressif)

Instalación del firmware

La instalación del firmware de Micropython sigue básicamente el mismo procedimiento que para otras placas, sólo que debe observarse alguna precaución especial debido a la existencia de dos puertos USB, el del conector Micro-USB y el puerto USB nativo que se encuentra disponible en los pines GPIO19 y GPIO20.

Cableado del puerto USB nativo

Conectando la placa a una computadora de la manera habitual a través del conector micro USB, podremos grabar el firmware, pero no seremos capaces de conectarnos a la consola de Micropython o REPL, por lo que no podremos utilizar un IDE como Thonny.

Utilizando el segundo puerto, es decir el USB nativo (lo que significa que no necesita de un adaptador como los conocidos CP2102 o CH340) podremos realizar las dos operaciones, es decir, grabar el firmware y luego programar la placa empleando un IDE. El inconveniente de este método es que deberemos agregar un conector micro USB extra para realizar la conexión a la computadora. Este conector debe cablearse a los pines GPIO19 (D-), GPIO20 (D+), GND y 5V, como se ve a continuación.

Fig. 4. Conexiones del puerto USB nativo
Fig. 5. Cableado del conector adicional

Descarga del firmware

El archivo con el firmware de Micropython puede descargarse de esta página (ESP32-S2-WROVER)

Fig. 6. Página de descarga del firmware

Desde la página hay que descargar la última versión del firmware en formato “.bin”. Te recomiendo que selecciones la última versión bajo el título Releases, ya que es una versión estable y no alguna de las que están debajo de Nightly builds, ya que pueden contener algunas características no del todo probadas.

Fig. 7. Versiones del firmware

Grabación del firmware desde la consola

Vamos a ver primero como grabar el firmware desde la consola (o símbolo del sistema) de Windows. Para ello es necesario que tengas instalada la herramienta ESPTOOL, que está escrita en Python, por lo que, si no lo tienes ya instalado, también deberías instalarlo.

Si no tienes instalado Python, puedes hacerlo siguiendo las instrucciones descriptas en este artículo.

Si no tienes ESPTOOL instalado, puedes hacerlo de la siguiente manera desde el símbolo del sistema:

pip install esptool

Cuando tengas Python y ESPTOOL instalados correctamente, conecta la placa al puerto USB de la computadora a través del puerto USB nativo, presiona el botón RESET de la placa Saola, luego presiona BOOT y suelta RESET y luego suelta BOOT para ingresar al modo de actualización de firmware.

A continuación, es conveniente borrar la memoria Flash con el siguiente comando, reemplazando COM5 con el número de puerto que haya asignado tu computadora a la placa:

esptool.py --chip esp32s2 --port COM5 erase_flash


Fig. 8. Borrado de la Flash

Luego, ya podemos grabar el firmware de Micropython (en este ejemplo grabaré el archivo ESP32_S2_WROVER-20220117-v1.18.bin que está en la carpeta Downloads de mi computadora)

esptool.py --chip esp32s2 --port COM5 write_flash -z 0x1000 ESP32_S2_WROVER-20220117-v1.18.bin
Fig. 9. Grabación del firmware

Una vez completada esta operación, podemos resetear la placa y ya está lista para ser usada con Micropython (probablemente cambie el puerto COM de la placa).

Grabación del firware usando Thonny

Desde hace algunas versiones Thonny permite grabar el firmware de una manera muy sencilla. Basta con abrir Thonny y seleccionar “Ejecutar” – “Elegir intérprete” y luego “Instalar o actualizar el firmware”.

Fig. 10. Grabación del firmware con Thonny

Conecta la placa a la computadora pero usando el puerto USB que viene originalmente soldado, no el agregado para el USB nativo.

Luego selecciona en Thonny el puerto COM, el archivo BIN del firmware y pulsa sobre el botón “Instalar”.

Fig. 11. Grabación del firmware con Thonny

Luego de unos instantes, el proceso queda terminado

Fig. 12. Grabación terminada

Si intentas utilizar Thonny a través de ese mismo puerto notarás que no es posible y recibes muchos errores. Para poder programar deberás desconectar la placa, conectarla a la PC a través del puerto USB nativo y seleccionar en Thonny el puerto COM correspondiente.

Conclusión

El procedimiento para grabar el firmware de Micropython en la placa ESP32-S2 Saola es un poco engorroso debido a que no puede completarse a través del puerto micro USB que viene soldado sobre la placa, sino que se hace necesario cablear el puerto USB nativo que se encuentra accesible en los pines 19 y 20, pero siguiendo las instrucciones detalladas mas arriba se puede realizar exitosamente.

Mas info

Hoja de datos del ESP32-S2

Características de la placa ESP32-S2 Saola

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Habilitar notificaciones OK No, gracias