🛠 Bouton Reset et console série du NanoPi R5S
Objetivos
Aprender a interactuar con el NanoPi R5S cuando la red no funciona: utilizar el botón Reset (registrado como gpio-keys, tecla KEY_RESTART en GPIO4_A0 en el device tree mainline) y la consola serie. También descubrirá el botón MASK, que pone la placa en modo Maskrom para reflashear la eMMC. Al final, sabrá leer los eventos del botón y depurar un arranque mediante UART.
Material
- NanoPi R5S con fuente de alimentación USB-C PD
- Adaptador USB-UART de 3,3 V capaz de 1 500 000 bps (CP2102N o FT232H; muchos adaptadores baratos tienen un límite muy por debajo — causa frecuente de fallos)
- 3 cables Dupont, conector debug de 3 pines de 2,54 mm (3,3 V, no conectar VCC)
- Cable USB-A (el puerto OTG para RockUSB es el puerto USB-A más cercano al borde, NO el USB-C, que está reservado para la alimentación)
Código completo
# 1) Console série : adapter sur TX/RX/GND, puis
sudo picocom -b 1500000 /dev/ttyUSB0
# (ou: sudo minicom -b 1500000 -D /dev/ttyUSB0)
# Interrompre U-boot pendant les 2 s de délai au boot (image Armbian)
# 2) Lire les événements du bouton Reset (gpio-keys le revendique)
sudo apt install evtest
sudo evtest # choisir l'événement « NanoPi ... » KEY_RESTART
# 3) Vérifier le mapping du bouton
grep -A4 'gpio-keys' /proc/device-tree/../* 2>/dev/null
sudo dmesg | grep -i 'gpio-keys\|Restart'
# 4) Maskrom : maintenir MASK, alimenter, puis côté PC Linux :
sudo upgrade_tool LD # liste les appareils en mode RockUSB
Verificación esperada
En la consola serie a 1 500 000 bps, verá desfilar los mensajes de U-boot y luego del kernel; evtest muestra EV_KEY / KEY_RESTART en cada pulsación del botón Reset. dmesg menciona el teclado gpio-keys. En modo Maskrom, upgrade_tool LD lista el dispositivo. Si no aparece nada en la serie, verifique la inversión de TX/RX y la capacidad del adaptador para mantener 1,5 Mbaud.
Errores frecuentes
- Velocidad de transmisión incorrecta: la consola UART del R5S es de 1 500 000 bps, no 115200; un adaptador limitado producirá ruido.
- Usar USB-C para el flasheo: es solo para alimentación; el OTG está en el puerto USB-A del borde.
- Mantener pulsado Reset en lugar de MASK para Maskrom: es MASK el que fuerza el modo de recuperación; Reset envía KEY_RESTART (reinicio).
- Olvidar GND entre el adaptador y la placa: no habrá señal legible sin una masa común.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash