Preguntas Frecuentes sobre reTerminal
Este documento contiene todas las preguntas frecuentes relacionadas con reTerminal. Será muy útil si presentas algún problema al usar reTerminal.
P1: ¿Cómo puedo actualizar el firmware STM32 para la LCD de reTerminal?
Nota: Si tu reTerminal se fabrica después del 26/09/2021, el STM32 lleva el firmware V1.8 preinstalado.
Es muy importante asegurarse de que tengas el firmware más reciente en el chip STM32G030 del reTerminal, responsable de gestionar la LCD. Actualizar el firmware a la última versión resolverá la mayoría de los problemas que puedas tener con la LCD.
Hay 2 métodos para flashear el chip STM32:
- Método 1: Conectar directamente al chip STM32 usando el CM4 del reTerminal y flashear el firmware.
- Método 2: Conectar físicamente los pines del chip STM32 a los pines GPIO de 40 pines del reTerminal mediante cables puente y luego usar OpenOCD.
Método 1 aplica si tu STM32 ya tiene v1.7 o superior y método 2 solo si tu STM32 es anterior (menor que v1.7).
Decidir qué método de flasheo usar
Veamos cómo saber qué versión de firmware tiene, para elegir método.
- En la ventana de terminal del reTerminal, teclea:
sudo nano /boot/config.txt
- Al final del archivo, comenta la línea con dtoverlay=reTerminal:
#dtoverlay=reTerminal
Nota: Esto descarga todos los drivers de reTerminal. Al reiniciar, no se cargarán.
- Reinicia reTerminal:
sudo reboot
- Pon el STM32 en modo boot usando i2c-tools:
i2ctransfer -y 1 w2@0x45 0x9b 0x01
- Lista dispositivos I2C:
i2cdetect -y 1
Si ves la dirección I2C 0x56, quiere decir que ya tienes STM32 v1.7 o superior.
De lo contrario, si ves la dirección 0x45, tienes la versión antigua (< v1.7).
- Abre de nuevo
config.txt
:
sudo nano /boot/config.txt
- Descomenta la línea con dtoverlay=reTerminal:
dtoverlay=reTerminal
- Apaga reTerminal:
sudo poweroff
Nota: Si ya tienes firmware STM32 v1.8, al entrar en modo boot mediante i2c-tools solo podrás salir flasheando el firmware.
Conectar a STM32 usando CM4 y flashear el firmware
Si tu STM32 es v1.7 o superior, sigue este método.
- En la terminal del reTerminal, escribe:
sudo nano /boot/config.txt
- Al final del archivo, comenta la línea dtoverlay=reTerminal:
#dtoverlay=reTerminal
- Reinicia:
sudo reboot
- Crea y entra a un directorio nuevo:
mkdir STM32
cd STM32
- Descarga stm32flash y STM32G030F6_R2.bin:
wget https://sourceforge.net/projects/stm32flash/files/stm32flash-0.7.tar.gz
wget https://github.com/Seeed-Studio/seeed-linux-dtoverlays/releases/download/2022-05-29-reTerminal-V1.9/STM32G030F6_R2.bin
- Desempaqueta stm32flash-0.7.tar.gz:
tar -xvf stm32flash-0.7.tar.gz
- Ve a la carpeta stm32flash-0.7 y compila la herramienta:
cd stm32flash-0.7/
make
- Pon STM32 en modo boot:
i2ctransfer -y 1 w2@0x45 0x9b 0x01
- Borra la flash del chip STM32:
./stm32flash -a 0x56 -o /dev/i2c-1
- Flashea el firmware:
./stm32flash -a 0x56 -w ../STM32G030F6_R2.bin -v -g 0x0 /dev/i2c-1
Nota: STM32G030F6_R2.bin es el firmware nuevo.
- Modifica el registro OPTR:
i2ctransfer -y 1 w2@0x45 0x9b 0x00
- Abre
config.txt
:
sudo nano /boot/config.txt
- Quita el comentario en dtoverlay=reTerminal:
dtoverlay=reTerminal
- Reinicia:
sudo reboot
Ya has flasheado el firmware STM32.
Conectar al STM32 con cables puente y OpenOCD
Si tu versión es antigua (< v1.7), usa este método.
- En reTerminal, actualiza paquetes:
sudo apt-get update
- Instala:
sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev
- Clona repo y entra:
git clone http://openocd.zylin.com/openocd
cd openocd
Visita este enlace para descargar STM32G030F6_R2.bin de la última versión.
Desde PC, transfiere STM32G030F6_R2.bin a la carpeta openocd en reTerminal.
scp -r .\STM32G030F6_R2.bin [email protected]:\home\pi\openocd
- En reTerminal:
cd openocd
- Ejecuta:
./bootstrap
- Después:
./configure --enable-sysfsgpio --enable-bcm2835gpio
- Compila:
make
- Instala:
sudo make install
- Sigue esta conexión (STM32 -> pines 40-pin reTerminal).
Nota: Los pines de STM32 están en la parte trasera del reTerminal.
- Mientras mantienes esta conexión unos ~3s, flashea el firmware:
openocd -f interface/sysfsgpio-raspberrypi.cfg -c "transport select swd" -f target/stm32g0x.cfg -c "program STM32G030F6_R2.bin verify 0x08000000;shutdown"
Si ves ese log, se flasheó con éxito.
- Desconecta cables y desconecta físicamente la alimentación sin usar
poweroff
.
Ahora STM32 está flasheado.
Verificar versión de firmware STM32G030
- Teclea:
sudo nano /boot/config.txt
- Comenta dtoverlay=reTerminal:
#dtoverlay=reTerminal
Reinicia.
Revisa versión firmware:
i2ctransfer -y 1 w1@0x45 0x97 r2
Si obtienes 0x01 0x07 => firmware v1.7.
Vuelve a editar
config.txt
, quita el comentario en dtoverlay=reTerminal.Reinicia.
P2: ¿Cómo flashear Raspberry Pi OS original que trae reTerminal?
Si pasaste a otro SO y quieres volver al Raspberry Pi OS original, sigue:
- Descarga Raspberry Pi OS:
Nota: de fábrica se entrega 32-bit, pero puedes usar 64-bit.
Extrae el archivo .zip.
Abre Raspberry Pi Imager.
- Pulsa CTRL + SHIFT + X para abrir Advanced options.
Allí puedes configurar SSH, hostname, wifi, etc.
- Clic en CHOOSE OS => Use custom.
Selecciona la imagen extraída y clic open.
CHOOSE STORAGE => el eMMC drive conectado.
Finalmente, WRITE.
P3: ¿Cómo actualizar Raspberry Pi OS y paquetes instalados?
Queremos actualizar todos los paquetes y el OS.
- En terminal:
sudo apt update
sudo apt full-upgrade
- Reinstala cabeceras de kernel:
sudo apt install raspberrypi-kernel-headers
- Reinicia:
sudo reboot
Listo, Raspberry Pi OS y paquetes están al día.
P4: ¿Cómo flashear un SO si cambio el CM4 a uno sin eMMC?
Si usas CM4 sin eMMC, necesitas usar micro-SD:
Inserta la micro-SD en el PC (lectora SD o lector incorporado).
Descarga Raspberry Pi Imager de este enlace.
Nota: disponible para Windows, Mac, Ubuntu.
- Abre Raspberry Pi Imager.
- Pulsa CTRL + SHIFT + X => Advanced options.
Configura SSH, wifi, etc.
- CHOOSE OS, selecciona OS preferido.
Nota: Para 64-bit Ubuntu, ve a "Other general purpose OS".
CHOOSE STORAGE => micro-SD.
WRITE.
Espera unos minutos.
- Quita la micro-SD del PC e insértala en reTerminal.
Nota: Debes abrir la carcasa del reTerminal para acceder a la ranura micro-SD.
P5: ¿Cómo iniciar sesión en Raspberry Pi OS/ Ubuntu OS u otro usando un convertidor USB a serial?
Si tienes un USB a Serial Converter, sigue:
Conecta cables jumper desde el convertidor USB a serial a los pines UART en el conector de 40 pines del reTerminal:
Configura el software en tu PC:
Windows
- Conecta el convertidor USB a serial al PC.
- Abre Device Manager, bajo "Ports (COM & LPT)" verás COM7 (ejemplo).
Descarga e instala Putty si no lo tienes.
Abre Putty, elige "Serial" como tipo de conexión.
Configura:
- Serial line: COM7
- Speed: 9600
Clic en Open.
En la ventana de Putty, inicia sesión:
Username: pi
Password: raspberry
- Si entras en Raspberry Pi OS con éxito, verás algo así:
Mac/Linux
- Conecta convertidor USB a serial al PC.
- Abre terminal en Mac/Linux.
sudo apt-get update
sudo apt-get install minicom
- Verifica dispositivos serial:
dmesg | grep tty
Ej:
[ 1562.048241] cdc_acm 1-3:1.0: ttyACM0: USB ACM device
- Conéctate:
minicom -D /dev/ttyACM0 -b 9600
- Tras la conexión de cables, enciende reTerminal y listo. Has iniciado sesión en Raspberry Pi OS.
P6: No puedo reactivar la LCD tras suspender
Abre SSH o VNC y:
DISPLAY=:0 xset dpms force off
DISPLAY=:0 xset dpms force on
Esto reinicializa la LCD del reTerminal.
P7: ¿Cómo arrancar un SO desde USB Flash Drive?
Podemos cambiar el orden de arranque a USB > eMMC, si falla USB, arranca eMMC.
Nota: Debes usar Ubuntu o MacOS como PC host.
- Quita 4 tapones de goma, desatornilla la carcasa trasera.
- Quita 2 tornillos del disipador y 4 tornillos para desmontar.
- Mueve el interruptor de modo arranque (boot mode) abajo según la imagen.
- En la PC Host (Ubuntu/Mac), abre terminal:
sudo apt update
sudo apt install git
- Git puede dar error si la fecha está mal. Ajusta con:
sudo date MMDDhhmm
- Clona y entra a usbboot:
git clone --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
- Instala libusb:
sudo apt install libusb-1.0-0-dev
- Compila usbboot:
make
- Abre
recovery/boot.conf
:
sudo nano recovery/boot.conf
Cambia BOOT_ORDER=0xf15 (USB primero, luego eMMC).
Actualiza la imagen EEPROM:
cd recovery
./update-pieeprom.sh
Se genera pieeprom.bin
listo para flashear en CM4.
- Vuelve a usbboot:
cd ..
- Ejecuta:
sudo ./rpiboot -d recovery
- Conecta reTerminal al PC via USB-C.
Espera unos segundos a que transfiera archivos.
Apaga reTerminal, pon el interruptor boot mode de nuevo en posición original, ensambla la carcasa.
Conecta una USB flash drive booteable con SO y enciende reTerminal.
Arrancará desde la USB.
P8: ¿Por qué hay pegamento negro alrededor de los chips en el CM4?
Hemos aplicado resina epoxi (que luce como pegamento negro) para proteger los IC y hacer el CM4 más fiable.
P9: ¿Por qué buzzer, LEDs y botones no funcionan tras instalar drivers de reTerminal?
Existen 2 versiones de chip de expansión I/O en reTerminal: MCP23008 y PCA9554. Si instalaste drivers manualmente, comprueba cuál chip lleva tu reTerminal.
i2cdetect -y 1
Si ves dirección 0x20, es MCP23008.
Si ves 0x38, es PCA9554.
Para reTerminal con MCP23008:
sudo nano /boot/config.txt
Agrega:
dtoverlay=reTerminal,addr=0x20,mcp23008
Guarda y reinicia. Para PCA9554 no necesitas nada.
P10: ¿Cómo instalar Ubuntu en reTerminal?
Flashea Ubuntu Server 21.10 en la eMMC. Sigue estos pasos. En Raspberry Pi Imager => "CHOOSE OS > Use custom", selecciona la imagen.
Haz SSH al reTerminal, usuario=ubuntu, pass=ubuntu:
wget https://files.seeedstudio.com/wiki/ReTerminal/ubuntu/script1.sh
wget https://files.seeedstudio.com/wiki/ReTerminal/ubuntu/script2.1.sh
chmod +x script1.sh script2.1.sh
sudo ./script1.sh
sudo reboot
sudo ./script2.1.sh
sudo reboot
- Ahora reTerminal inicia Ubuntu Desktop, pero con orientación incorrecta:
- Clic ícono de encendido arriba a la derecha => Settings.
- Selecciona Displays => Orientation: Portrait Left => Apply.
Ya verás Ubuntu Desktop en orientación correcta:
P11: Orientación de pantalla incorrecta tras instalar Raspberry Pi OS Bullseye
Tras flashear Bullseye en la eMMC, instala drivers reTerminal.
Crea monitors.xml en .config:
sudo vi ~/.config/monitors.xml
- Copia:
<monitors version="2">
<configuration>
<logicalmonitor>
<x>0</x>
<y>0</y>
<primary>yes</primary>
<monitor>
<monitorspec>
<connector>DSI-1</connector>
<vendor>unknown</vendor>
<product>unknown</product>
<serial>unknown</serial>
</monitorspec>
<mode>
<width>720</width>
<height>1280</height>
<rate>60.000</rate>
</mode>
</monitor>
<transform>
<rotation>right</rotation>
</transform>
</logicalmonitor>
</configuration>
</monitors>
- Edita /boot/config.txt:
sudo vi /boot/config.txt
- Añade:
dtoverlay=reTerminal,tp_rotate=1
- Reinicia:
sudo reboot
La pantalla estará en la orientación correcta.
P12: Resolver inexactitud en pantalla táctil
Tras configurar la orientación, el tacto puede ser impreciso. Para corregirlo:
cd /usr/share/X11/xorg.conf.d
- Edita 40-libinput.conf:
sudo nano 40-libinput.conf
Busca la sección InputClass para "touchscreen".
Agrega:
Option "TransformationMatrix" "0 1 0 -1 0 1 0 0 1
- Guarda (Ctrl+O) y cierra (Ctrl+X). Reinicia:
sudo reboot
El tacto será preciso tras reiniciar.
P13: LEDs y Buzzer no funcionan tras instalar drivers reTerminal
Este problema se resolverá en futuras actualizaciones.
- Edita /boot/config.txt:
sudo vi /boot/config.txt
- Comenta la línea:
#dtoverlay=reTerminal-bridge
- Reinicia:
sudo reboot
Ahora LEDs y Buzzer funcionarán.
P14: ¿Cómo saber si mi chip de encriptación es ATECC608A-SSHDA-B o ATECC608A-TNGTLSS-G?
Fecha de lanzamiento | Versión IC |
---|---|
Antes 09/03/2021 | ATECC608A-SSHDA-B |
Sept 2021 - Ene 2022 | ATECC608A-SSHDA-B o ATECC608A-TNGTLSS-G |
Después 01/02/2022 | ATECC608A-TNGTLSS-G |
Para revisarlo:
i2cdetect -y 3
Si ves 0x35
, es ATECC608A-TNGTLSS-G; de lo contrario, ATECC608A-SSHDA-B.
Recursos
- [PDF] Esquemáticos reTerminal
- [ZIP] Esquemáticos reTerminal
- [PDF] Datasheet CM4 de Raspberry Pi
- [Web Page] Documentación oficial Raspberry Pi
Soporte técnico
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes soportes y asegurar que tu experiencia sea fluida. Ofrecemos varios canales de comunicación para distintas preferencias.