Pular para o conteúdo principal

Configurar reComputer Industrial R20xx

Visão geral

Saiba como configurar e testar componentes de hardware na série reComputer Industrial R20xx após instalar os dispositivos. Este wiki abrange mapeamento de GPIO, teste do LED de USUÁRIO, comunicação SPI, varredura de Wi‑Fi e Bluetooth, LoRa®, 4G, 5G,Zigbee via Mini-PCIe, RS485, RS232, teste de DI/DO, UPS para desligamento seguro e mais.

Consultar mapeamentos e deslocamentos de GPIO

Para consultar mapeamentos e deslocamentos de GPIO, siga estas etapas:

  1. Copie e cole o seguinte comando para consultar os mapeamentos de GPIO:
cat /sys/kernel/debug/gpio

Este comando exibirá os mapeamentos e deslocamentos de GPIO, fornecendo informações essenciais para depurar ou configurar os pinos GPIO.

Teste do LED de USUÁRIO

Fornecemos LEDs em três cores: vermelho, azul e verde, para uso dos usuários. Você pode entrar no diretório /sys/class/leds/ para visualizar:

1. Navegue até o diretório do LED

cd /sys/class/leds/
ls

Use o seguinte comando para acender o LED da cor correspondente.

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

Isso irá acender o LED correspondente.

3. Desligar LEDs (opcional)
Para desligar um LED específico, use:

echo 0 > /sys/class/leds/led-red/brightness
echo 0 > /sys/class/leds/led-blue/brightness
echo 0 > /sys/class/leds/led-green/brightness

Testando comunicação SPI

Para testar a comunicação SPI curto-circuitando os pinos MISO e MOSI do módulo TPM, siga estas etapas:

  1. Clone o repositório spidev-test:
# Don't forget to connect to network before running command
git clone https://github.com/rm-hull/spidev-test.git
  1. Navegue para o diretório spidev-test:
cd spidev-test
  1. Compile o arquivo spidev_test.c:
gcc spidev_test.c -o spidev_test
  1. Execute o programa spidev_test com o seguinte comando:
./spidev_test -D /dev/spidev10.0 -v -p hello

Este comando testa a comunicação SPI no dispositivo SPI especificado (/dev/spidev10.0) com saída detalhada ( -v ) e envia a mensagem "hello" (-p hello). Ao curto-circuitar os pinos MISO e MOSI do módulo TPM, você está efetivamente criando um cenário de loopback, onde os dados enviados em MOSI são recebidos em MISO. Essa configuração permite testar a comunicação SPI sem um dispositivo real conectado.

Varredura de Wi‑Fi

Para listar as redes Wi‑Fi disponíveis e seus detalhes, execute:

sudo iwlist wlan0 scan
  • Este comando faz a varredura de todas as redes Wi‑Fi próximas e exibe seus SSIDs, intensidade de sinal e tipo de criptografia.

Varredura de Bluetooth

Para procurar dispositivos Bluetooth, siga estas etapas:

Abra a interface de controle do Bluetooth:

sudo bluetoothctl

Este comando abrirá a interface de controle do Bluetooth. A partir daí, você pode executar comandos adicionais para procurar dispositivos Bluetooth próximos.

Habilite a varredura:

scan on

Este comando iniciará a varredura de dispositivos Bluetooth próximos. Você pode então usar outros comandos dentro da interface bluetoothctl para interagir com dispositivos Bluetooth, como fazer pareamento ou conectar-se a eles.

LoRa® via Mini-PCIe

Configuração de LoRa® SPI

Após instalar o LoRa® SPI no slot 2 Mini-PCIe, é possível configurar o LoRa® SPI seguindo estas etapas:

  1. Clone o repositório SX1302_HAL:
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
  1. Navegue até o diretório clonado:
cd sx1302_hal
  1. Modifique o arquivo de configuração:

Abra o arquivo de configuração do dispositivo I2C:

sudo nano ./libloragw/inc/loragw_i2c.h

Altere esta linha:

#define I2C_DEVICE "/dev/i2c-1"

Para:

#define I2C_DEVICE "/dev/i2c-2"

Altere #define I2C_DEVICE "/dev/i2c-1" para #define I2C_DEVICE "/dev/i2c-2". Pressione ctrl+x para sair, pressione y para salvar as alterações e, em seguida, pressione Enter para retornar à página da linha de comando.

  1. 4.Adicione o arquivo packet_forwarder/reset_lgw.sh:
sudo nano packet_forwarder/reset_lgw.sh

Adicione o código de execução:

#!/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

Pressione ctrl+x para sair, pressione y para salvar as alterações e, em seguida, pressione Enter para retornar à página da linha de comando.

  1. Modifique o código de configuração:
sudo vim ./tools/reset_lgw.sh

Atualize as configurações de pinos:

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)

Comente as linhas 18, 29, 35, 42, 53 e 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

Pressione ctrl+x para sair, pressione y para salvar as alterações e, em seguida, pressione Enter para retornar à página da linha de comando.

  1. substitua a porta SPI padrão do Módulo LoraWAN® no arquivo de configuração global_conf.json.sx1250.US915 (arquivos de configuração são selecionados com base no módulo que você está usando):
sudo nano packet_forwarder/global_conf.json.sx1250.US915

Modifique o parâmetro com_path, altere "com_path": "/dev/spidev0.0" para "com_path": "/dev/spidev2.0".

  1. Compile o código:
sudo make

Essas etapas irão configurar o LoRa® SPI e executar o packet forwarder com o arquivo de configuração especificado.

Configuração de LoRa® USB

Para LoRa® USB, os comandos anteriores permanecem os mesmos que para LoRa® SPI. No entanto, o comando final precisa ser alterado para:

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 o arquivo de configuração a ser usado para LoRa® USB.

5G Celular via M.2 B-KEY

Para interagir com um módulo 5G/4G usando comandos AT via minicom, siga estas etapas:

  1. Crie um novo arquivo power_5g.sh:
nano power_5g.sh

Abra com sudo nano e insira o seguinte comando, depois pressione ctrl+x para salvar e sair.

#!/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"
  1. Execute o arquivo:
sudo ./power_5g.sh

Após 10–15 segundos (leva um tempo para o módulo ligar e enumerar o USB), verifique se o nó de dispositivo aparece:

ls /dev/ttyUSB*

Saída /dev/ttyUSB0, etc.:

Abra o minicom com a porta serial e taxa de baud apropriadas:

sudo apt update
sudo apt install minicom
sudo minicom -D /dev/ttyUSB2 -b 115200

Este comando abre o minicom com a porta serial especificada (/dev/ttyUSB2) a uma taxa de baud de 115200.

  1. Assim que o minicom for aberto, você pode começar a enviar comandos AT para o módulo 4G. Por exemplo:
AT

Este comando verifica se o módulo está respondendo. Você deve receber uma resposta "OK" se o módulo estiver funcionando corretamente.

  1. Para discar um número de telefone usando o módulo 4G, você pode usar o comando ATD seguido do número de telefone:
ATD<phone_number>;

Substitua phone_number pelo número de telefone desejado que você deseja discar. Certifique-se de incluir um ponto e vírgula ; no final do comando para indicar o fim do número de telefone.

4G Cellular via Mini-PCIe

Crie um novo arquivo power_4g.sh:

sudo nano power_4g.sh

Abra com sudo nano e insira o seguinte comando, depois pressione ctrl+x para salvar e sair.

# SIM_MUX_SEL
echo 643 > export
echo out > gpio643/direction
echo 0 > gpio643/value

Execute o arquivo:

sudo ./power_4g.sh

Após 10–15 segundos (leva um tempo para o módulo ligar e enumerar o USB), verifique se o nó de dispositivo aparece:

ls /dev/ttyUSB*

Saída /dev/ttyUSB0. Confirme a ação real do GPIO:

cat /sys/class/gpio/gpio645/value # should be 0
cat /sys/class/gpio/gpio639/value # should be 0

Ambos os valores são 0 → o script foi corretamente puxado para baixo e o módulo está em estado de funcionamento. Entre no minicom para enviar comandos:

sudo minicom -D /dev/ttyUSB2 -b 115200

● Pressione Ctrl+A,Z,E em sequência. Primeiro envie AT para testar se está conectado. Se aparecer OK, a conexão foi bem-sucedida. Após executar o comando a seguir, o módulo será reiniciado automaticamente. Se você não sair do minicom, poderá ver as informações de configuração correspondentes. Acesso à Internet discado ECM:

AT+QCFG="usbnet",1

Até que a última linha mostre OK, será bem-sucedido.

Nota O dispositivo precisa esperar por um tempo e então você pode visualizar o endereço IP de usb0 em ifconfig.

Teste o status da rede e a comunicação:

# Check network status
ifconfig
# Test communication
ping www.baidu.com -I usb0

Zigbee via Mini-PCIe

Para testar a comunicação Zigbee entre dois módulos Zigbee, siga estas etapas:

  1. Verificar portas seriais disponíveis

Use o seguinte comando para verificar as portas seriais disponíveis:

cat /dev/ttyUSB*

Instalar uma ferramenta de comunicação serial

  1. Instalar a ferramenta de comunicação serial:
sudo apt-get install cutecom
  1. Abrir porta serial para o Coordenador (primeiro módulo Zigbee):
  • Abra a ferramenta cutecom e configure-a para a primeira porta serial:
  • Taxa de baud: 115200
  • Marque a opção "Hex output" na parte inferior da interface.
  • Siga estas etapas para configurar o primeiro módulo Zigbee:
  • Definir como coordenador: Envie o comando ‘55 04 00 05 00 05’, espere a resposta ‘55 04 00 05 00 05’.
  • Redefinir dispositivo: Pressione o botão reset ou envie o comando ‘55 07 00 04 00 FF FF 00 04’.
  • Formação de rede: Envie o comando ‘55 03 00 02 02’.
  1. Abrir porta serial para o Roteador (segundo módulo Zigbee): Abra outra instância do cutecom e configure-a para a segunda porta serial com as mesmas configurações de antes. Siga estas etapas para configurar o segundo módulo Zigbee:
  • Definir como roteador: Envie o comando ‘55 04 00 05 01 04’, espere a resposta ‘55 04 00 05 00 05’.
  • Redefinir dispositivo: Pressione o botão reset ou envie o comando ‘55 07 00 04 00 FF FF 00 04’.
  • Formação de rede: Envie o comando ‘55 03 00 02 02’.
  1. Verificar status do dispositivo: Envie o comando ‘55 03 00 00 00’ para verificar o status do dispositivo. Espere uma resposta semelhante a ‘55 2a 00 00 00 01 XX XX XX XX’, onde ‘XX’ representa informações do dispositivo.
  2. Entrar no modo transparente: Se a formação de rede for bem-sucedida, entre no modo transparente enviando o comando 55 07 00 11 00 03 00 01 13. Ambos os módulos devem estar em modo transparente para comunicação direta. Para sair do modo transparente, envie "+++".
  3. Observações adicionais:
  • Se a configuração do roteador falhar, o dispositivo pode já ser um coordenador. Saia da rede usando o comando '55 07 00 04 02 xx xx xx'.
  • Teste a potência de transmissão usando os comandos '55 04 0D 00 00 0D' (consulta) e '55 04 0D 01 XX XX' (definir). Certifique-se de substituir /dev/ttyUSB pela porta serial correta para cada módulo Zigbee. Siga estas etapas com atenção para testar com sucesso a comunicação Zigbee entre os dois módulos.

Teste de RS485

O reComputer Industrial R20xx inclui três portas RS485. Abaixo estão suas correspondentes portas COM e arquivos de dispositivo:

Número de portas RS485Porta COMIdentificação em serigrafiaArquivo de dispositivo
RS485-2COM2A2/B2/GND2/dev/ttyACM1
RS485-3COM3A3/B3/GND3/dev/ttyACM2
RS485-4COM4A4/B4/GND4/dev/ttyACM3

Para testar a função RS485, você pode seguir as etapas abaixo (tomando RS485_1 e RS485_2 como exemplos):

  1. Conecte os sinais A e B de RS485_1 e RS485_2.
  2. Abra o minicom em duas janelas de terminal, respectivamente:
sudo minicom -D /dev/ttyACM1
sudo minicom -D /dev/ttyACM2
nota

Se houver uma placa de expansão, o número precisa ser movido uma casa para trás, por exemplo /dev/ttyAcM2, /dev/ttyAcM3.

  1. As seguintes operações precisam ser realizadas em ambos os ACMs abertos:
  • Pressione Ctrl+A, depois pressione Z, e a interface de Resumo de Comandos do Minicom aparecerá:

  • Pressione O novamente para abrir a configuração, selecione Serial port setup e pressione Enter; Abra todas as interfaces relacionadas a RS485, pressione H/I/J/K/L em sequência para abrir;

  • Depois que todos exibirem "YES", pressione Enter para voltar e então selecione Exit para sair.

nota

Pegando ACM2 e ACM3 como exemplo: Se você quiser enviar de ACM2 para ACM3, ACM2 precisa ser configurado novamente: ctrl+A, depois pressione Z e depois E, e então inicie o comando de escrita da porta serial. Nesse momento, você pode imprimir strings em ACM2 à vontade e poderá ver o conteúdo de ACM2 em ACM3 ao mesmo tempo; Por outro lado, se você quiser enviar de ACM3 para ACM2, ACM3 precisa ser configurado novamente: ctrl+A, depois pressione Z e depois E, e então inicie o comando de escrita da porta serial. Nesse momento, você pode imprimir strings em ACM3 à vontade e poderá ver o conteúdo de ACM3 em ACM2 ao mesmo tempo. Como mostrado na figura.

Teste de RS232

O reComputer Industrial R20xx inclui 1x porta RS232, e as respectivas portas COM e arquivos de dispositivo são os seguintes:

Número de portas RS232Porta COMIdentificação em serigrafiaArquivo de dispositivo
RS232-1COM1RX1/TX1/GND1/dev/ttyACM0

Como o RS232 é comunicação full-duplex, faça um curto-circuito diretamente entre o TX e o RX do RS232 para realizar um teste de loopback.

Você precisa abrir dois terminais, ACM1 se a placa de expansão estiver conectada, e ACM2 se a placa de expansão não estiver conectada: Terminal 1:*

sudo minicom -D /dev/ttyACM1 -b 9600

Se a placa de expansão não estiver conectada, você precisa alterar /dev/ttyACM1 para /dev/ttyACM0 .

Terminal 2:

printf "hello seeed\r\n" > /dev/ttyACM1

O Terminal 1 exibirá o conteúdo solicitado pelo Terminal 2 para ser impresso.

Teste de DI (Entrada Digital)

O reComputer Industrial R20xx contém 8x portas DI, o usuário pode configurar essas portas de acordo com as necessidades reais.

Número de portasPortas DIGPIO estendido correspondente
8DI1GPIO588
DI2GPIO589
DI3GPIO590
DI4GPIO595
DI5GPIO573
DI6GPIO574
DI7GPIO575
DI8GPIO576

O tipo de entrada das portas DI é PNP. Suporta tensão de entrada de 5VDC~24VDC, corrente - 1000mA. Para testar a funcionalidade de DI, você pode seguir estas etapas para testá-la:

  1. A conexão entre a porta DI do reComputer Industrial R20xx e a carga externa foi concluída.
  2. Digite o seguinte comando para obter o status do GPIO:
echo 588 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio588/direction
cat /sys/class/gpio/gpio588/value
  1. Quando o nível externo é alto, o valor de /sys/class/gpio/gpio588/value é 0; quando o nível externo é baixo, /sys/class/gpio/gpio588/value é 1.

DO (Saída Digital)

O reComputer Industrial R20xx contém 8 portas DO, o usuário pode configurar essas portas de acordo com as necessidades reais.

Número de portasPortas DIGPIO estendido correspondente
8DO1GPIO638
DO2GPIO637
DO3GPIO590
DO4GPIO636
DO5GPIO635
DO6GPIO577
DO7GPIO594
DO8GPIO596

O tipo de saída das portas DO é transistor. Suporta tensão de saída abaixo de 60 VDC, capacidade de corrente - 500 mA. Para testar a funcionalidade de DO, você pode seguir estas etapas para testá-la:

  1. A conexão entre a porta DO do reComputer Industrial R20xx e a carga externa foi concluída.
  2. Digite o seguinte comando para definir a saída para nível alto ou nível baixo:
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
  1. Quando o nível externo é alto, o valor de /sys/class/gpio/gpio638/value é 0; quando o nível externo é baixo, /sys/class/gpio/gpio638/value é 1.

Teste do Hub USB

Para testar o hub USB, você pode usar as seguintes etapas:

  1. Verifique se o hub USB é detectado executando o comando lsusb. Este comando lista todos os dispositivos USB conectados, incluindo hubs.
lsusb

A execução deste comando deve exibir informações sobre os dispositivos USB conectados ao seu sistema, incluindo quaisquer hubs USB presentes. Se o hub USB estiver funcionando corretamente, você verá seus detalhes listados na saída do comando lsusb. Se ele não estiver listado, pode haver um problema com o hub ou com sua conexão ao sistema. Nesses casos, talvez seja necessário solucionar problemas do hub USB ou de suas conexões.

Teste de RTC (Relógio em Tempo Real)

Para testar a funcionalidade do Relógio em Tempo Real (RTC), siga estas etapas:

  1. Desative a sincronização automática de tempo:
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
  1. Defina a hora: Defina o RTC para uma data e hora específicas:
sudo hwclock --set --date "2025-7-17 12:00:00"
  1. Sincronizar a hora do RTC com o sistema Atualize a hora do sistema para corresponder à hora do RTC:
sudo hwclock --hctosys
  1. Verifique a hora do RTC:
sudo hwclock -r

Este comando irá ler e exibir a hora armazenada no RTC.

  1. Desconecte a fonte de alimentação do RTC, aguarde alguns minutos, depois reconecte-a e verifique novamente a hora do RTC para ver se ele manteve a hora correta.

Teste do Timer Watchdog

Para realizar um teste de watchdog, siga estas etapas:

  1. Instale o software watchdog:
sudo apt install watchdog
  1. Edite o arquivo de configuração do 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

Modifique a configuração da seguinte forma:

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

Você pode ajustar outras configurações conforme necessário.

  1. Certifique-se de que o serviço de watchdog está em execução:
sudo systemctl start watchdog
  1. Para testar a funcionalidade do watchdog, execute o comando a seguir para simular um travamento do sistema:
sudo su

echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger

Este comando aciona um crash de kernel e deve fazer com que o watchdog reinicie o sistema.

  1. Monitore o sistema para confirmar que ele reinicia após o período de tempo limite especificado. Essas etapas ajudarão você a testar e garantir a funcionalidade do timer watchdog em seu sistema.

Controlando o Buzzer via GPIO

O GPIO correspondente ao buzzer é o gpio627. Digite o seguinte script para ligar/desligar o buzzer :

  1. Ligar o buzzer :
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 1 > /sys/class/gpio/gpio627/value
  1. Desligar o buzzer :Desligar o buzzer :
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 0 > /sys/class/gpio/gpio627/value

TPM 2.0

Se você conectar o módulo TPM 2.0 ao dispositivo, o seguinte código pode ajudar a verificar a conexão do TPM.

ls /dev | grep tpm

Interpretando a Saída:

Se você vir tpm0 e tpmrm0 na saída, isso significa que os dispositivos TPM (Trusted Platform Module) são detectados e estão disponíveis em seu sistema. Isso indica que o hardware TPM é reconhecido e acessível, o que é um bom sinal. Você pode prosseguir usando funcionalidades ou aplicações relacionadas a TPM sabendo que os dispositivos estão presentes e acessíveis.

ATECC608A

Para interagir com o dispositivo ATECC608A e gerar um número de série aleatório, siga estas etapas:

  1. Clone o repositório atecc-util:
curl -LJO https://github.com/wirenboard/atecc-util/releases/download/v0.4.12/atecc-util_0.4.12_arm64.deb
  1. Extraia o conteúdo do pacote .deb para o diretório atual:
dpkg -x ./atecc-util_0.4.12_arm64.deb .
  1. Navegue até o diretório atecc:
cd usr/bin
  1. Gere um número de série aleatório:
./atecc -b 10 -s 192 -c 'serial'

Este comando instrui o utilitário ATECC a usar o slot 10 (-b 10), definir o tamanho do número de série para 192 bits (-s 192) e gerar um número de série aleatório (-c 'serial'). A saída será o número de série gerado, como "01235595d3d621f0ee". Este processo permite que você interaja com o dispositivo ATECC608A e execute várias operações, como gerar números de série aleatórios.

Interagindo com a EEPROM

Aqui estão os comandos para interagir com uma EEPROM (Electrically Erasable Programmable Read-Only Memory):

  1. Conceda permissões completas (leitura, gravação e execução) ao arquivo de dispositivo da EEPROM:
 sudo chmod 777 /sys/bus/i2c/devices/10-0050/eeprom
  1. Grave a string "This is a test string" no dispositivo EEPROM:
echo "This is a test string" > /sys/bus/i2c/devices/10-0050/eeprom
  1. Leia o conteúdo do dispositivo EEPROM e o exiba em formato hexadecimal usando o utilitário hexdump:
cat /sys/bus/i2c/devices/6-0050/eeprom | hexdump -C

Verificando a Detecção do SSD

Para listar os discos, incluindo o SSD, você pode usar o comando fdisk -l. Veja como:

sudo fdisk -l

Este comando exibirá uma lista de todos os discos conectados ao seu sistema, incluindo o SSD se ele for detectado corretamente. Procure entradas que representem o seu SSD. Elas normalmente começam com /dev/sd seguido por uma letra (por exemplo, /dev/sda, /dev/sdb, etc.). Depois de identificar a entrada correspondente ao seu SSD, você pode prosseguir com o particionamento ou formatação conforme necessário.

UPS para Desligamento Seguro

Um GPIO6 entre a CPU e a entrada de alimentação DC é usado para alarmar a CPU quando a fonte de alimentação é desligada. Então a CPU deve executar algo urgente em um script antes que se esgote a energia do supercapacitor e executar um "$ shutdown". Outra maneira de usar essa função é iniciar um desligamento quando o pino GPIO mudar. O pino GPIO fornecido é configurado como uma tecla de entrada que gera eventos KEY_POWER. Este evento é tratado pelo systemd-logind iniciando um desligamento.

  1. Conexão de hardware.

Certifique-se de que o pino 'CM5_UPS_DET' do dispositivo UPS esteja conectado ao pino GPIO16 do dispositivo R20xx.

  1. Modificar o arquivo de configuração.
  • Abra o terminal.
  • Execute o seguinte comando para editar o arquivo de configuração:
sudo nano /boot/firmware/config.txt
  1. Adicione o seguinte conteúdo ao final do arquivo:
dtoverlay=gpio-shutdown,gpio_pin=GPIO16,active_low=1

Salve e saia do editor (pressione Ctrl+O para salvar, Enter para confirmar e Ctrl+X para sair).

  1. Preparar o script Python
  • Crie um novo arquivo de script Python:
cd ~
sudo nano ups_shutdown.py
  • Copie e cole o código a seguir no arquivo:
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')

Salve e saia do editor (pressione Ctrl+O para salvar, Enter para confirmar e Ctrl+X para sair).

  1. Execute o script.
  • Abra o terminal.
  • Execute o seguinte comando para rodar o script:
sudo python3 ups_shutdown.py
nota

Use sudo para garantir que o script tenha permissões suficientes para executar o comando de desligamento.

  1. Simular teste de falha de energia
  • Corte a alimentação de energia externa.
  • Observe se o sistema salva os dados automaticamente e desliga.
  1. Verificar o resultado
  • Reconecte a alimentação de energia.
  • Verifique se os dados do sistema estão completos e se ele inicia normalmente.
nota
  1. Para a função de UPS, entre em contato conosco para obter mais informações.
  2. O sinal de alarme é ativo em nível BAIXO.

Acelerador de IA

O slot M.2 M-KEY 2280 no reComputer Industrial R20xx foi projetado para acomodar um Acelerador de IA PCIE M.2. E a série R20xx-12 vem pré-instalada com um módulo de aceleração de IA Hailo-8 M.2 com até 26 TOPS. Se você comprou o produto da série R20xx-10, será necessário adquirir o módulo NPU da Hailo para habilitar a funcionalidade de IA. O dispositivo vem pré-instalado com o driver do acelerador Hailo, então você pode usá-lo diretamente e executar o caso de teste:

  1. Navegue até o diretório do caso de teste
cd /mnt/hailo-rpi5-examples/
  1. Inicie o ambiente virtual
source ./setup_env.sh
  1. Execute o exemplo simples de detecção
python basic_pipelines/detection_simple.py

Para fechar o aplicativo, pressione Ctrl+C. Esta é uma versão leve do exemplo de detecção, focada principalmente em demonstrar o desempenho do Hailo enquanto minimiza a carga da CPU. O pipeline interno de processamento de vídeo do GStreamer é simplificado, minimizando as tarefas de processamento de vídeo, e o modelo YOLOv6 Nano é utilizado.

nota

Se o reComputer que você adquiriu não incluir o Hailo-8 e você estiver considerando comprar um dispositivo Hailo para integração, consulte a documentação oficial da Hailo (https://github.com/hailo-ai) para configurar o firmware e o ambiente, e execute os exemplos para verificar se o dispositivo pode ser utilizado normalmente.

Suporte Técnico e Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...