Configurar reComputer Industrial R21xx
Descripción General
Aprende cómo configurar y probar componentes de hardware en la serie reComputer Industrial R21xx después de instalar dispositivos. Esta wiki cubre mapeo GPIO, pruebas de LED de usuario, comunicación SPI, escaneo Wi-Fi y Bluetooth, LoRa®, 4G, 5G, Zigbee sobre Mini-PCIe, RS485, RS232, CAN, pruebas DI/DO, UPS para apagado seguro y más.

Consultar Mapeos y Desplazamientos GPIO
Para consultar mapeos y desplazamientos GPIO, sigue estos pasos:
- Copia y pega el siguiente comando para consultar mapeos GPIO:
cat /sys/kernel/debug/gpio
Este comando mostrará mapeos y desplazamientos GPIO, proporcionando información esencial para depurar o configurar pines GPIO.
Pruebas de LED de Usuario
Proporcionamos LEDs en tres colores: rojo, azul y verde para que los usuarios los utilicen. Puedes ingresar al directorio /sys/class/leds/ para ver:
1. Navegar al directorio LED
cd /sys/class/leds/
ls
Usa el siguiente comando para encender el LED del color correspondiente.
sudo su
echo 1 > /sys/class/leds/led-red//brightness
echo 1 > /sys/class/leds/led-blue/brightness
echo 1 > /sys/class/leds/led-green/brightness
Esto encenderá el LED correspondiente.
3. Apagar LEDs (opcional)
Para apagar un LED específico, usa:
echo 0 > /sys/class/leds/led-red/brightness
echo 0 > /sys/class/leds/led-blue/brightness
echo 0 > /sys/class/leds/led-green/brightness
Pruebas de Comunicación SPI
Para probar la comunicación SPI cortocircuitando los pines MISO y MOSI del módulo TPM, sigue estos pasos:
- Clona el repositorio spidev-test:
# Don't forget to connect to network before running command
git clone https://github.com/rm-hull/spidev-test.git
- Navega al directorio spidev-test:
cd spidev-test
- Compila el archivo spidev_test.c:
gcc spidev_test.c -o spidev_test
- Ejecuta el programa spidev_test con el siguiente comando:
./spidev_test -D /dev/spidev10.0 -v -p hello
Este comando prueba la comunicación SPI en el dispositivo SPI especificado (/dev/spidev10.0) con salida detallada ( -v ) y envía el mensaje "hello" (-p hello). Al cortocircuitar los pines MISO y MOSI del módulo TPM, estás creando efectivamente un escenario de bucle de retorno, donde los datos enviados en MOSI se reciben en MISO. Esta configuración te permite probar la comunicación SPI sin un dispositivo real conectado.
Escaneo Wi-Fi
Para listar las redes Wi-Fi disponibles y sus detalles, ejecuta:
sudo iwlist wlan0 scan
- Este comando escanea todas las redes Wi-Fi cercanas y muestra sus SSIDs, intensidad de señal y tipo de cifrado.
Escaneo Bluetooth
Para escanear dispositivos Bluetooth, sigue estos pasos:
Abrir la interfaz de control Bluetooth:
sudo bluetoothctl
Este comando abrirá la interfaz de control Bluetooth. Desde allí, puedes ejecutar comandos adicionales para escanear dispositivos Bluetooth cercanos.
Habilitar escaneo:
scan on
Este comando iniciará el escaneo de dispositivos Bluetooth cercanos. Luego puedes usar otros comandos dentro de la interfaz bluetoothctl para interactuar con dispositivos Bluetooth, como emparejar o conectarte a ellos.
LoRa® sobre Mini-PCIe
Configuración LoRa® SPI
Después de instalar el LoRa® SPI en la ranura Mini-PCIe 2, puedes configurar LoRa® SPI, sigue estos pasos:
- Clona el repositorio SX1302_HAL:
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
- Navega al directorio clonado:
cd sx1302_hal
- Modifica el archivo de configuración:
Abre el archivo de configuración del dispositivo I2C:
sudo nano ./libloragw/inc/loragw_i2c.h
Cambia esta línea:
#define I2C_DEVICE "/dev/i2c-1"
A:
#define I2C_DEVICE "/dev/i2c-2"
Cambia #define I2C_DEVICE "/dev/i2c-1" a #define I2C_DEVICE "/dev/i2c-2". Presiona ctrl+x para salir, presiona y para guardar cambios, y luego presiona Enter para regresar a la página de línea de comandos.
- 4.Agrega el archivo packet_forwarder/reset_lgw.sh:
sudo nano packet_forwarder/reset_lgw.sh
Agrega el código de ejecución:
#!/bin/sh
# This script is intended to be used on SX1302 CoreCell platform, it performs
# the following actions:
# - export/unpexort GPIO23 and GPIO18 used to reset the SX1302 chip and to enable the LDOs
# - export/unexport GPIO22 used to reset the optional SX1261 radio used for LBT/Spectral Scan
#
# Usage examples:
# ./reset_lgw.sh stop
# ./reset_lgw.sh start
# GPIO mapping has to be adapted with HW
#
SX1302_RESET_PIN=632 # SX1302 reset
SX1302_POWER_EN_PIN=633 # SX1302 power enable
SX1261_RESET_PIN=634 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=623 # AD5338R reset (full-duplex CN490 reference design)
WAIT_GPIO() {
sleep 0.1
}
init() {
# setup GPIOs
echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1261_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
# set GPIOs as output
echo "out" > /sys/class/gpio/gpio$SX1302_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1261_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/direction; WAIT_GPIO
}
reset() {
echo "CoreCell reset through GPIO$SX1302_RESET_PIN..."
echo "SX1261 reset through GPIO$SX1302_RESET_PIN..."
echo "CoreCell power enable through GPIO$SX1302_POWER_EN_PIN..."
echo "CoreCell ADC reset through GPIO$AD5338R_RESET_PIN..."
# write output for SX1302 CoreCell power_enable and reset
echo "1" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
}
term() {
# cleanup all GPIOs
if [ -d /sys/class/gpio/gpio$SX1302_RESET_PIN ]
then
echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1261_RESET_PIN ]
then
echo "$SX1261_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1302_POWER_EN_PIN ]
then
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$AD5338R_RESET_PIN ]
then
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
}
case "$1" in
start)
term # just in case
init
reset
;;
stop)
reset
term
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
Presiona ctrl+x para salir, presiona y para guardar cambios, y luego presiona Enter para regresar a la página de línea de comandos.
- Modifica el código de configuración:
sudo vim ./tools/reset_lgw.sh
Actualiza las configuraciones de pines:
SX1302_RESET_PIN=632 # SX1302 reset
SX1302_POWER_EN_PIN=633 # SX1302 power enable
SX1261_RESET_PIN=634 # SX1261 reset (LBT / Spectral Scan)
# AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
Comenta las líneas 18, 29, 35, 42, 53 y 54 respectivamente:
......
# echo "$AD5338R_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
......
# echo "out" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/direction; WAIT_GPIO
......
# echo "CoreCell ADC reset through GPIO$AD5338R_RESET_PIN..."
......
# echo "0" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
# echo "1" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
Presiona ctrl+x para salir, presiona y para guardar cambios, y luego presiona Enter para regresar a la página de línea de comandos.
- reemplaza el puerto SPI predeterminado del Módulo LoraWAN® en el archivo de configuración global_conf.json.sx1250.US915 (Los archivos de configuración se seleccionan según el módulo que estés usando):
sudo nano packet_forwarder/global_conf.json.sx1250.US915
Modifica el parámetro com_path, cambia "com_path": "/dev/spidev0.0" a "com_path": "/dev/spidev2.0".
- Compila el código:
sudo make
Estos pasos configurarán LoRa® SPI y ejecutarán el reenviador de paquetes con el archivo de configuración especificado.

Configuración LoRa® USB
Para LoRa® USB, los comandos anteriores siguen siendo los mismos que para LoRa® SPI. Sin embargo, el comando final necesita cambiarse a:
cho 632 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio632/direction
echo "1" > /sys/class/gpio/gpio632/value
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

Este comando especifica el archivo de configuración que se utilizará para LoRa® USB.
5G Celular sobre M.2 B-KEY
Para interactuar con un módulo 5G/4G usando comandos AT a través de minicom, sigue estos pasos:
- Crea un nuevo archivo power_5g.sh:
nano power_5g.sh
Abrir con sudo nano e introducir el siguiente comando, luego presionar ctrl+x para guardar y salir.
#!/bin/bash
RESET_PIN=645
POWER_PIN=639
if [ ! -d "/sys/class/gpio/gpio$RESET_PIN" ]; then
echo $RESET_PIN > /sys/class/gpio/export
fi
if [ ! -d "/sys/class/gpio/gpio$POWER_PIN" ]; then
echo $POWER_PIN > /sys/class/gpio/export
fi
echo "out" > /sys/class/gpio/gpio$RESET_PIN/direction
echo "out" > /sys/class/gpio/gpio$POWER_PIN/direction
echo 1 > /sys/class/gpio/gpio$RESET_PIN/value
echo 1 > /sys/class/gpio/gpio$POWER_PIN/value
echo "Start to reboot 5g module"
echo 0 > /sys/class/gpio/gpio$RESET_PIN/value
sleep 0.05
echo 0 > /sys/class/gpio/gpio$POWER_PIN/value
echo "5g module reboot completed"
- Ejecutar el archivo:
sudo ./power_5g.sh
Después de 10-15 segundos (toma un tiempo para que el módulo se encienda y enumere USB), verificar si aparece el nodo del dispositivo:
ls /dev/ttyUSB*
Salida /dev/ttyUSB0, etc.:

Abrir minicom con el puerto serie apropiado y la velocidad de baudios:
sudo apt update
sudo apt install minicom
sudo minicom -D /dev/ttyUSB2 -b 115200
Este comando abre minicom con el puerto serie especificado (/dev/ttyUSB2) a una velocidad de baudios de 115200.
- Una vez que minicom esté abierto, puedes comenzar a enviar comandos AT al módulo 4G. Por ejemplo:
AT
Este comando verifica si el módulo responde. Deberías recibir una respuesta "OK" si el módulo está funcionando correctamente.
- Para marcar un número de teléfono usando el módulo 4G, puedes usar el comando ATD seguido del número de teléfono:
ATD<phone_number>;
Reemplaza phone_number con el número de teléfono deseado que quieres marcar. Asegúrate de incluir un punto y coma ; al final del comando para indicar el final del número de teléfono.
4G Celular sobre Mini-PCIe
Crear un nuevo archivo power_4g.sh:
sudo nano power_4g.sh
Abrir con sudo nano e introducir el siguiente comando, luego presionar ctrl+x para guardar y salir.
# SIM_MUX_SEL
echo 643 > export
echo out > gpio643/direction
echo 0 > gpio643/value
Ejecutar el archivo:
sudo ./power_4g.sh
Después de 10-15 segundos (toma un tiempo para que el módulo se encienda y enumere USB), verificar si aparece el nodo del dispositivo:
ls /dev/ttyUSB*
Salida /dev/ttyUSB0. Confirmar la acción real del GPIO:
cat /sys/class/gpio/gpio645/value # should be 0
cat /sys/class/gpio/gpio639/value # should be 0
Ambos valores son 0 → el script ha sido correctamente bajado y el módulo está en estado de funcionamiento. Entrar a minicom para enviar comandos:
sudo minicom -D /dev/ttyUSB2 -b 115200
● Presionar Ctrl+A,Z,E en secuencia. Primero enviar AT para probar si está conectado. Si aparece OK, la conexión es exitosa. Después de ejecutar el siguiente comando, el módulo se reiniciará automáticamente. Si no sales de minicom, puedes ver la información de configuración correspondiente. Acceso a Internet por marcado ECM:
AT+QCFG="usbnet",1
Hasta que la última línea muestre OK, será exitoso.
Nota El dispositivo necesita esperar un momento, y luego puedes ver la dirección ip de usb0 en ifconfig.
Probar estado de red y comunicación:
# Check network status
ifconfig
# Test communication
ping www.baidu.com -I usb0
Zigbee sobre Mini-PCIe
Para probar comunicación Zigbee entre dos módulos Zigbee, sigue estos pasos:
- Verificar Puertos Serie Disponibles
Usa el siguiente comando para verificar los puertos serie disponibles:
cat /dev/ttyUSB*
Instalar una Herramienta de Comunicación Serie
- Instalar Herramienta de Comunicación Serie:
sudo apt-get install cutecom
- Abrir Puerto Serie para Coordinador (Primer Módulo Zigbee):
- Abrir la herramienta cutecom y configurarla para el primer puerto serie:
- Velocidad de baudios: 115200
- Marcar la opción "Hex output" en la parte inferior de la interfaz.
- Seguir estos pasos para configurar el primer módulo Zigbee:
- Establecer como coordinador: Enviar comando '55 04 00 05 00 05', esperar respuesta '55 04 00 05 00 05'.
- Reiniciar dispositivo: Presionar botón de reinicio o enviar comando '55 07 00 04 00 FF FF 00 04'.
- Formación de red: Enviar comando '55 03 00 02 02'.
- Abrir Puerto Serie para Router (Segundo Módulo Zigbee): Abrir otra instancia de cutecom y configurarla para el segundo puerto serie con las mismas configuraciones que antes. Seguir estos pasos para configurar el segundo módulo Zigbee:
- Establecer como router: Enviar comando '55 04 00 05 01 04', esperar respuesta '55 04 00 05 00 05'.
- Reiniciar dispositivo: Presionar botón de reinicio o enviar comando '55 07 00 04 00 FF FF 00 04'.
- Formación de red: Enviar comando '55 03 00 02 02'.
- Verificar Estado del Dispositivo: Enviar comando '55 03 00 00 00' para verificar el estado del dispositivo. Esperar una respuesta similar a '55 2a 00 00 00 01 XX XX XX XX', donde 'XX' representa información del dispositivo.
- Entrar en Modo Transparente: Si la formación de red es exitosa, entrar en modo transparente enviando comando 55 07 00 11 00 03 00 01 13. Ambos módulos deben estar en modo transparente para comunicación directa. Para salir del modo transparente, enviar "+++".
- Notas Adicionales:
- Si la configuración del router falla, el dispositivo puede ya ser un coordinador. Salir de la red usando comando '55 07 00 04 02 xx xx xx'.
- Probar potencia de transmisión usando comandos '55 04 0D 00 00 0D' (consulta) y '55 04 0D 01 XX XX' (establecer). Asegúrate de reemplazar /dev/ttyUSB con el puerto serie correcto para cada módulo Zigbee. Sigue estos pasos cuidadosamente para probar la comunicación Zigbee entre los dos módulos exitosamente.
Pruebas RS485
El reComputer Industrial R21xx incluye 2x puertos RS485. A continuación se muestran sus puertos COM y archivos de dispositivo correspondientes:
Número de Puertos RS485 | Puerto COM | Etiqueta Serigrafía | Archivo de Dispositivo |
---|---|---|---|
RS485-3 | COM3 | A3/B3/GND3 | /dev/ttyACM2 |
RS485-4 | COM4 | A4/B4/GND4 | /dev/ttyACM3 |
Para probar la función RS485, puedes seguir los pasos a continuación (tomando RS485_1 y RS485_2 como ejemplos):
- Por favor conecta A y B de RS485_1 y RS485_2.
- Abrir minicom en dos ventanas de terminal respectivamente:
sudo minicom -D /dev/ttyACM1
sudo minicom -D /dev/ttyACM2
Si hay una placa de expansión, el número necesita moverse hacia atrás un lugar, por ejemplo /dev/ttyAcM2, /dev/ttyAcM3.
- Las siguientes operaciones necesitan realizarse en ambos ACMs abiertos:
-
Presionar Ctrl+A, luego presionar Z, y aparecerá la interfaz de Resumen de Comandos de Minicom:
-
Presionar O nuevamente para abrir configuración, seleccionar Serial port setup, y presionar Enter; Abrir todas las interfaces relacionadas con RS485, presionar H/I/J/K/L en secuencia para abrir;
-
Después de que todos los "YES" se muestren, presionar Enter para regresar, y luego seleccionar Exit para salir.
Tomando ACM2 y ACM3 como ejemplo: Si quieres enviar de ACM2 a ACM3, ACM2 necesita configurarse nuevamente: ctrl+A, luego presionar Z y luego E, y luego iniciar el comando de escritura del puerto serie. En este momento, puedes imprimir cadenas en ACM2 a voluntad, y puedes ver el contenido de ACM2 en ACM3 al mismo tiempo; Por el contrario, si quieres enviar de ACM3 a ACM2, ACM3 necesita configurarse nuevamente: ctrl+A, luego presionar Z y luego E, y luego iniciar el comando de escritura del puerto serie. En este momento, puedes imprimir cadenas en ACM3 a voluntad, y puedes ver el contenido de ACM3 en ACM2 al mismo tiempo. Como se muestra en la figura. :::

Pruebas RS232
reComputer Industrial R21xx incluye 2x puertos RS232, y los puertos COM y archivos de dispositivo correspondientes son los siguientes:
Número de Puertos RS232 | Puerto COM | Etiqueta Serigrafía | Archivo de Dispositivo |
---|---|---|---|
RS232-1 | COM1 | RX1/TX1/GND1 | /dev/ttyACM0 |
RS232-2 | COM2 | RX2/TX2/GND2 | /dev/ttyACM1 |
Debido a que RS232 es comunicación full-duplex, cortocircuita directamente TX y RX de RS232 para realizar una prueba de bucle de retorno.

Necesitas abrir dos terminales, ACM1 si la placa de expansión está conectada, y ACM2 si la placa de expansión no está conectada: Terminal 1:*
sudo minicom -D /dev/ttyACM1 -b 9600
Si la placa de expansión no está conectada, necesitas cambiar /dev/ttyACM1 a /dev/ttyACM0.
Terminal 2:
printf "hello seeed\r\n" > /dev/ttyACM1
Terminal 3:
printf "hello seeed\r\n" > /dev/ttyACM0
printf "hello seeed\r\n" > /dev/ttyACM1
Terminal 1 mostrará el contenido solicitado por Terminal 2 para ser impreso.

Pruebas DI (Entrada Digital)
reComputer Industrial R21xx contiene 4x puertos DI, el usuario puede configurar estos puertos según las necesidades reales.
Número de puertos | Puertos DI | GPIO extendido correspondiente |
---|---|---|
4 | DI1 | GPIO588 |
DI2 | GPIO589 | |
DI3 | GPIO590 | |
DI4 | GPIO595 |
El tipo de entrada de los puertos DI es PNP. Soporta voltaje de entrada de 5VDC~24VDC, corriente - 1000mA. Para probar la funcionalidad de DI, puedes seguir estos pasos para probarlo:
- La conexión entre el puerto DI del reComputer Industrial R21xx y la carga externa ha sido completada.
- Ingresa el siguiente comando para obtener el estado del GPIO:
echo 588 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio588/direction
cat /sys/class/gpio/gpio588/value
- Cuando el nivel externo es alto, el valor de /sys/class/gpio/gpio588/value es 0; cuando el nivel externo es bajo, /sys/class/gpio/gpio588/value es 1.
DO (Salida Digital)
reComputer Industrial R21xx contiene 4x puertos DO, el usuario puede configurar estos puertos según las necesidades reales.
Número de puertos | Puertos DI | GPIO extendido correspondiente |
---|---|---|
4 | DO1 | GPIO638 |
DO2 | GPIO637 | |
DO3 | GPIO590 | |
DO4 | GPIO636 | |
DO5 | GPIO635 |
El tipo de salida de los puertos DO es transistor. Soporta voltaje de salida - bajo 60 VDC, capacidad de corriente - 500 mA. Para probar la funcionalidad de DO, puedes seguir estos pasos para probarlo:
- La conexión entre el puerto DO del reComputer Industrial R21xx y la carga externa ha sido completada.
- Ingresa el siguiente comando para establecer la salida a nivel alto o nivel bajo:
echo 638 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio638/direction
echo 1 > /sys/class/gpio/gpio638/value
echo 0 > /sys/class/gpio/gpio638/value
- Cuando el nivel externo es alto, el valor de /sys/class/gpio/gpio638/value es 0; cuando el nivel externo es bajo, /sys/class/gpio/gpio638/value es 1.
Prueba CAN
Número de puertos | Puertos DI | GPIO extendido correspondiente |
---|---|---|
4 | CAN-0_H/CAN-0_ | can0 |
CAN-1_H/CAN-1_L | can1 |
- Usa dos cables DuPont para cortocircuitar el H-H y L-L de can0 y can1 para formar una prueba de bucle mínimo.
CAN-0_H─────●───── CAN-0_H
CAN-1_H─────●───── CAN-1_H
- Confirma que las dos interfaces de red can0 y can1 aparecen en el sistema para evitar que el controlador no se cargue:
# should print can0 can1
ls /sys/class/net | grep can
# should see "successfully initialized"
dmesg | grep -i can

- Configura las dos interfaces CAN a 500 kbit/s y ponlas en línea, listas para enviar y recibir datos (configúralas a nivel bajo por seguridad):
sudo ip link set can0 down
sudo ip link set can1 down
sudo ip link set can0 up type can bitrate 500000
sudo ip link set can1 up type can bitrate 500000
- Confirma el estado del pin:
ip -d link show can0
ip -d link show can1

- Descarga e instala can-utils para usar herramientas esenciales como candump y cansend.
sudo apt install can-utils

- Mientras monitoreas can0, envía tramas desde can1. Si puedes ver el mensaje, significa que la ruta es normal.
# Terminal A
candump can0
# Terminal B
cansend can1 123#DE.AD.BE.EF.CA.FE.00.11

- Por el contrario, puedes monitorear can1 mientras envías tramas desde can0. Si puedes ver el mensaje, significa que la ruta es normal.
# Terminal A
candump can1
# Terminal B
cansend can0 123#DE.AD.BE.EF.CA.FE.00.11

- Si quieres hacer que los inicios posteriores sean más simples, puedes escribir el comando de inicio en un script. Solo necesitas ejecutarlo una vez al inicio para activar automáticamente la interfaz.
#!/bin/bash
sudo ip link set can0 down
sudo ip link set can1 down
sudo ip link set can0 up type can bitrate 500000
sudo ip link set can1 up type can bitrate 500000
echo "can0 & can1 are up @ 500 kbit/s"
Prueba del Hub USB
Para probar el hub USB, puedes usar los siguientes pasos:
- Verifica si el hub USB es detectado ejecutando el comando lsusb. Este comando lista todos los dispositivos USB conectados, incluyendo hubs.
lsusb
Ejecutar este comando debería mostrar información sobre los dispositivos USB conectados a tu sistema, incluyendo cualquier hub USB que esté presente. Si el hub USB está funcionando correctamente, deberías ver sus detalles listados en la salida del comando lsusb. Si no está listado, puede haber un problema con el hub o su conexión al sistema. En tales casos, puede que necesites solucionar problemas del hub USB o sus conexiones.
Prueba RTC (Reloj de Tiempo Real)
Para probar la funcionalidad del Reloj de Tiempo Real (RTC), sigue estos pasos:
- Deshabilita la sincronización automática de tiempo:
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
- Configura la hora: Configura el RTC a una fecha y hora específica:
sudo hwclock --set --date "2025-7-17 12:00:00"
- Sincroniza la Hora del RTC al Sistema Actualiza la hora del sistema para que coincida con la hora del RTC:
sudo hwclock --hctosys
- Verifica la hora del RTC:
sudo hwclock -r
Este comando leerá y mostrará la hora almacenada en el RTC.
- Desconecta la fuente de alimentación del RTC, espera unos minutos, luego reconéctala y verifica la hora del RTC nuevamente para ver si mantuvo la hora correcta.

Prueba del Temporizador Watchdog
Para realizar una prueba de watchdog, sigue estos pasos:
- Instala el software watchdog:
sudo apt install watchdog
- Edita el archivo de configuración del watchdog:
# make sure you install vim already, if haven't, can install by the command below
sudo apt-get install vim
sudo vim /etc/watchdog.conf
Modifica la configuración de la siguiente manera:
watchdog-device = /dev/watchdog
# Uncomment and edit this line for hardware timeout values that differ
# from the default of one minute.
watchdog-timeout = 120
# If your watchdog trips by itself when the first timeout interval
# elapses then try uncommenting the line below and changing the
# value to 'yes'.
#watchdog-refresh-use-settimeout = auto
# If you have a buggy watchdog device (e.g. some IPMI implementations)
# try uncommenting this line and setting it to 'yes'.
#watchdog-refresh-ignore-errors = no
# ====================== Other system settings ========================
#
# Interval between tests. Should be a couple of seconds shorter than
# the hardware time-out value.
interval = 15
max-load-1 = 24
#max-load-5 = 18
#max-load-15 = 12
realtime = yes
priority = 1
Puedes ajustar otras configuraciones según sea necesario.
- Asegúrate de que el servicio watchdog esté ejecutándose:
sudo systemctl start watchdog
- Para probar la funcionalidad del watchdog, ejecuta el siguiente comando para simular un cuelgue del sistema:
sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
Este comando desencadena un fallo del kernel y debería hacer que el watchdog reinicie el sistema.
- Monitorea el sistema para confirmar que se reinicia después del período de tiempo de espera especificado. Estos pasos te ayudarán a probar y asegurar la funcionalidad del temporizador watchdog en tu sistema.

Controlando el Zumbador vía GPIO
El GPIO correspondiente al zumbador es gpio627. Ingresa el siguiente script para encender/apagar el zumbador :
- Encender el zumbador :
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 1 > /sys/class/gpio/gpio627/value
- Apagar el zumbador :Apagar el zumbador :
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 0 > /sys/class/gpio/gpio627/value
TPM 2.0
Si conectas el módulo TPM 2.0 al dispositivo, el siguiente código puede ayudar a verificar la conexión TPM.
ls /dev | grep tpm
Interpretando la Salida:
Si ves tpm0 y tpmrm0 en la salida, significa que los dispositivos TPM (Módulo de Plataforma Confiable) son detectados y están disponibles en tu sistema. Esto indica que el hardware TPM es reconocido y accesible, lo cual es una buena señal. Puedes proceder con el uso de funcionalidades o aplicaciones relacionadas con TPM sabiendo que los dispositivos están presentes y accesibles.
ATECC608A
Para interactuar con el dispositivo ATECC608A y generar un número de serie aleatorio, sigue estos pasos:
- Clonar el repositorio atecc-util:
curl -LJO https://github.com/wirenboard/atecc-util/releases/download/v0.4.12/atecc-util_0.4.12_arm64.deb
- Extraer el contenido del paquete .deb al directorio actual:
dpkg -x ./atecc-util_0.4.12_arm64.deb .
- Navegar al directorio atecc:
cd usr/bin
- Generar un número de serie aleatorio:
./atecc -b 10 -s 192 -c 'serial'
Este comando instruye a la utilidad ATECC para usar el slot 10 (-b 10), establecer el tamaño del número de serie a 192 bits (-s 192), y generar un número de serie aleatorio (-c 'serial'). La salida será el número de serie generado, como "01235595d3d621f0ee". Este proceso te permite interactuar con el dispositivo ATECC608A y realizar varias operaciones, como generar números de serie aleatorios.
Interactuando con EEPROM
Aquí están los comandos para interactuar con una EEPROM (Memoria de Solo Lectura Programable Eléctricamente Borrable):
- Otorgar permisos completos (lectura, escritura y ejecución) al archivo del dispositivo EEPROM:
sudo chmod 777 /sys/bus/i2c/devices/10-0050/eeprom
- Escribir la cadena "This is a test string" al dispositivo EEPROM:
echo "This is a test string" > /sys/bus/i2c/devices/10-0050/eeprom
- Leer el contenido del dispositivo EEPROM y mostrarlo en formato hexadecimal usando la utilidad hexdump:
cat /sys/bus/i2c/devices/6-0050/eeprom | hexdump -C
Verificando la detección del SSD
Para listar los discos, incluyendo el SSD, puedes usar el comando fdisk -l. Así es como:
sudo fdisk -l
Este comando mostrará una lista de todos los discos conectados a tu sistema, incluyendo el SSD si está detectado correctamente. Busca entradas que representen tu SSD. Típicamente comienzan con /dev/sd seguido de una letra (ej. /dev/sda, /dev/sdb, etc.). Una vez que identifiques la entrada correspondiente a tu SSD, puedes proceder con el particionado o formateo según sea necesario.
UPS para apagado seguro
Un GPIO6 entre la CPU y la entrada de alimentación DC se usa para alertar a la CPU cuando la fuente de alimentación se corta. Entonces la CPU debe hacer algo urgente en un script antes del agotamiento de energía del supercondensador y ejecutar un "$ shutdown". Otra forma de usar esta función es iniciar un apagado cuando el pin GPIO cambia. El pin GPIO dado se configura como una tecla de entrada que genera eventos KEY_POWER. Este evento es manejado por systemd-logind iniciando un apagado.
- Conexión de hardware.
Por favor asegúrate de que el pin 'CM5_UPS_DET' del dispositivo UPS esté conectado al pin GPIO16 del dispositivo R21xx.
- Modificar el archivo de configuración.
- Abrir la terminal.
- Ejecutar el siguiente comando para editar el archivo de configuración:
sudo nano /boot/firmware/config.txt
- Agregar el siguiente contenido al final del archivo:
dtoverlay=gpio-shutdown,gpio_pin=GPIO16,active_low=1

Guardar y salir del editor (presiona Ctrl+O
para guardar, Enter
para confirmar, y Ctrl+X
para salir).
- Preparar script de Python
- Crear un nuevo archivo de script de Python:
cd ~
sudo nano ups_shutdown.py
- Copiar y pegar el siguiente código en el archivo:
import RPi.GPIO as GPIO
import time, os
num = 0
GPIO.setmode(GPIO.BCM)
# Set GPIO16 to input mode
# Add 500ms anti-shake time to stabilize the software
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(16, GPIO.FALLING, bouncetime=500)
while True:
if GPIO.event_detected(16):
print("...External power off...")
print("")
# Sync data to disk
os.system('sync')
print("...Data saving...")
print("")
# Sleep for 3 seconds
time.sleep(3)
# Synchronize data again
os.system('sync')
# Countdown 5 seconds
while num < 5:
print('----------')
s = 5 - num
print('---' + str(s) + '---')
num = num + 1
time.sleep(1)
print('----------')
# Execute shutdown command
os.system('sudo shutdown -h now')
Guardar y salir del editor (presiona Ctrl+O
para guardar, Enter
para confirmar, y Ctrl+X
para salir).
- Ejecutar el script.
- Abrir la terminal.
- Ejecutar el siguiente comando para ejecutar el script:
sudo python3 ups_shutdown.py
Usa sudo
para asegurar que el script tenga permisos suficientes para ejecutar el comando de apagado.
- Simular prueba de falla de energía
- Cortar la fuente de alimentación externa.
- Observar si el sistema guarda automáticamente los datos y se apaga.

- Verificar el resultado
- Reconectar la fuente de alimentación.
- Verificar si los datos del sistema están completos y se inicia normalmente.
- Para la función UPS por favor contáctanos para más información.
- La señal de alarma es activa LOW.
Acelerador de IA
El slot M.2 M-KEY 2280 en el reComputer Industrial R21xx está diseñado para acomodar aceleradores de IA PCIE M.2. Y la serie R21xx-12 ha sido preinstalada con un acelerador de IA Hailo-8 M.2 de hasta 26TOPS. Si compraste el producto de la serie R21xx-10, necesitarás comprar el módulo NPU de Hailo para habilitar la funcionalidad de IA. El dispositivo viene preinstalado con el controlador del acelerador Hailo, por lo que puedes usarlo directamente y ejecutar el caso de prueba:
- Navegar al directorio del caso de prueba
cd /mnt/hailo-rpi5-examples/
- Iniciar el entorno virtual
source ./setup_env.sh
- Ejecutar el ejemplo de detección simple
python basic_pipelines/detection_simple.py

Para cerrar la aplicación, presiona Ctrl+C
.
Esta es una versión ligera del ejemplo de detección, enfocándose principalmente en demostrar el rendimiento de Hailo mientras minimiza la carga de la CPU. El pipeline interno de procesamiento de video GStreamer se simplifica minimizando las tareas de procesamiento de video, y se usa el modelo YOLOv6 Nano.
Si el reComputer que compraste no incluye Hailo-8 y estás considerando comprar un dispositivo Hailo para integración, por favor consulta la documentación oficial de Hailo (https://github.com/hailo-ai) para configurar el firmware y el entorno, y ejecutar los ejemplos para verificar que el dispositivo pueda usarse normalmente.
Soporte técnico y discusión del producto
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.