Introdução ao reTerminal DM

O reTerminal DM é uma IHM robusta open-source de 10,1" – um Device Master integrado para unificar o fluxo de dados e gerenciar o dispositivo em campo.
Baseado no Raspberry Pi CM4 e, como um dispositivo tudo-em-um Panel PC, IHM, CLP e gateway IIoT, o reTerminal DM é uma nova geração de hub interativo de sensoriamento com uma grande tela robusta de grau IP65.
Ele é equipado com rica escalabilidade e conectividade híbrida, suportando barramento CAN, RS485, RS232, porta Ethernet Gigabit e outras interfaces, bem como poderosas capacidades de comunicação sem fio como 4G, LoRa®, WiFi e BLE.
*Os módulos 4G e LoRa® não vêm com o reTerminal DM por padrão; compre os módulos relevantes conforme necessário, para 4G bundle
Características
- IHM, CLP, Panel PC e gateway em um só: Perfeito para dispositivos de hub distribuídos
- Programação de baixo código para aplicações orientadas a eventos: Node-RED integrado nativamente para edição baseada em fluxos e implantação com um clique, compatível com todos os softwares que rodam em Raspberry Pi
- Design robusto para ambientes de trabalho agressivos: Painel frontal IP65, temperatura de operação de -10~50°C
- Conectividade híbrida: Suporte a 4G LTE, LoRaWAN®, WiFi, BLE, RS485/RS232, barramento CAN, Ethernet 1000M, USB, HDMI
- Design open-source em software e hardware: Alimentado por Raspberry Pi CM4, com suporte a personalização ou derivados
- Garantia do produto: Garantia de dois anos
*Os módulos 4G e LoRa® não vêm com o reTerminal DM por padrão; compre os módulos relevantes conforme necessário.
Especificações
| Básico | |
| CPU | CM4 |
| Quad-core [email protected] | |
| Memória | 8GB |
| Armazenamento | 32GB eMMC |
| Slot M.2 SATA SSD 2280-B Key (opcional) | |
| Suporte a SO | Raspbian SenseCraft Edge OS |
| Tela | |
| Tamanho | 10.1'' |
| Resolução Máx. | 1280 x 800 |
| Máx. de Cores | 16,7M (8-bit) |
| Luminância | 400 nit |
| Ângulo de Visão | 170/170 H/V° |
| Vida útil da Retroiluminação | 30000 h |
| Tipo de Toque | Capacitivo de 10 pontos |
| Dureza do Lápis | 7H |
| Vídeo & Áudio | |
| Vídeo | HDMI 2.0 |
| Áudio | Microfone x 2 |
| Buzzer | |
| Conector de Áudio 3,5 mm | |
| Câmera | CSI (opcional) |
| Interfaces | |
| Ethernet | 1 x 10/100/1000 Mbps |
| 1 x 10/100/1000 Mbps (opcional) | |
| USB | 2 x USB-A 2.0 Host |
| 2 x USB 3.0 (opcional) | |
| RS485 | 1 x RS-485 > Bloco de Terminais 1 x RS-485 > DB9 (opcional) |
| RS232 | 1 x RS-232 > Bloco de Terminais 1 x RS-232 > DB9 (opcional) |
| CAN | 1 x CAN-BUS > Bloco de Terminais |
| DI | 4 x DI > Bloco de Terminais |
| DO | 4 x DO > Bloco de Terminais |
| GPIO de 40 pinos | Interno |
| Comunicação Sem Fio | |
| WiFi | WiFi integrado no chip |
| BLE | BLE integrado no chip |
| LoRa® | Mini-PCIe para LoRaWAN® (opcional) |
| Celular | Mini-PCIe para 4G (opcional) |
| Alimentação | |
| Entrada | Bloco de Terminais de 2 pinos |
| PoE | PoE de 12W (opcional) |
| Faixa de Tensão | 12~24 V CC |
| Ambiente | |
| Proteção de Entrada | Painel Frontal IP65 |
| Temperatura de Operação | -10~50 °C |
| Temperatura de Armazenamento | -20~70 °C |
| Umidade (Operação) | 10~90% UR |
| Mecânico | |
| Dimensão | 259.4 x 191 x 42.2 mm |
| Gabinete | Liga de Alumínio Fundido sob Pressão |
| Montagem | Painel, VESA, Trilho DIN |
| Peso (Líquido) | 1,8Kg |
| Certificação | |
| CE, FCC, RoHS, Telec, REACH | |
| Outros | |
| RTC | RTC de Alta Precisão |
| Segurança | ATECC608A |
| Garantia | 2 Anos |
| Dissipação de Calor | Sem ventoinha |
Visão Geral do Hardware

Visão Geral da Placa-mãe

Diagrama de Alimentação

O reTerminal DM suporta duas opções de alimentação: terminal CC e porta PoE. Por padrão, o reTerminal DM é alimentado pelo terminal CC, enquanto a alimentação PoE é opcional. Isso oferece flexibilidade na seleção da fonte de alimentação e permite fácil integração com várias fontes de energia.
Terminal de alimentação

O reTerminal DM é alimentado com uma tensão nominal de 12~24 V. A fonte de alimentação é conectada através do conector de bloco de terminais de alimentação de 2 pinos.
POE (opcional)
O produto padrão não inclui um módulo PoE por padrão, a Seeed pode fornecer serviços de soldagem e montagem de PoE para pedidos de customização em lote sob solicitação, entre em contato com [email protected],
Se o módulo PoE estiver instalado, a porta LAN1 do reTerminal DM pode suportar alimentação PoE, proporcionando uma forma conveniente e eficiente de alimentar o dispositivo através de Ethernet. Esta opção simplifica o processo de instalação e reduz a quantidade de cabeamento necessário, tornando-a uma solução ideal para aplicações com fontes de alimentação limitadas ou onde tomadas de energia não estão prontamente disponíveis.
- Entrada PoE: Faixa 44~57V; Típico 48V
- Saída PoE: 12V, 1.1A máx.
Consumo de Energia
Consulte a tabela abaixo para o consumo de energia testado do reTerminal DM no laboratório da Seeed Studio. Observe que este valor é apenas para referência, pois os métodos de teste e o ambiente podem resultar em variações nos resultados.
| Status | Tensão | Corrente | Consumo de Energia | Descrição |
|---|---|---|---|---|
| Shutdown | 0.6mA | Teste de consumo de energia estático em estado de desligamento e corte de energia. | ||
| Idle | 24V | 0.165A | 3.96W | Testar a corrente de entrada ao fornecer alimentação de 24V ao dispositivo reTerminal DM através do conector Terminal enquanto executa o sistema padrão da Seeed Studio, sem executar nenhum programa de teste. |
| Full Load | 24V | 0.37A | 8.88W | Configurar a CPU para rodar em carga total usando o comando "stress -c 4", enquanto reproduz um vídeo e executa comunicação CAN & RS485. Nenhum dispositivo externo conectado. |
Ligar e Desligar
O reTerminal DM não vem com um botão de energia por padrão, e o sistema iniciará automaticamente assim que a alimentação for conectada. Ao desligar, selecione a opção de desligamento no sistema operacional e aguarde o sistema desligar completamente antes de cortar a energia. Para reiniciar o sistema, basta reconectar a alimentação.
Observe que, após o desligamento, aguarde pelo menos 10 segundos antes de reiniciar o sistema para permitir que os capacitores internos descarreguem completamente.
Diagrama em Blocos

Bloco I2C

Interface
Microfone
O reTerminal DM está equipado com dois microfones MEMS localizados nos lados esquerdo e direito abaixo da tela. Esses microfones podem ser configurados como um array de microfones duplo, fornecendo capacidades superiores de captação de som. Os microfones se comunicam com o chip codec de áudio por meio da interface I2S, enquanto o codec se comunica com o CM4 por meio da interface PCM. O chip codec de áudio selecionado para o reTerminal DM é o TI TLV320AIC3104 Low-Power Stereo Audio Codec.
É importante observar que, para atingir uma classificação IP65 para o painel frontal, as aberturas do microfone são cobertas com uma membrana acústica à prova d'água. Evite usar objetos pontiagudos para tocar nas aberturas do microfone.
Para fazer a interface com o Microfone:
Abra o APP Terminal no dispositivo e digite arecord -l para encontrar o driver do Microfone:

Para gravar o áudio você pode usar o app audacity, use sudo apt install audacity para instalar o app audacity:
Abra o audacity para abrir o aplicativo e clique em gravar para registrar áudio a partir dos microfones integrados:

Indicador LED

O reTerminal DM possui três indicadores LED que servem para sinalizar o status operacional da máquina. Consulte a tabela abaixo para as funções e estados específicos de cada LED:
Atribuição de pinos do LED
| Rótulo | Sinal | Fonte do Sinal | Cor | Descrição |
|---|---|---|---|---|
| PWR | LED_nPWR | CM4 | Amarelo | Usado para indicar a alimentação do CM4. Quando o CM4 é ligado normalmente, o LED acende |
| USER | PCA9535 - GPIO | Vermelho | Função definida pelo usuário | |
| ACT | LED_nACT | CM4 | Verde | Usado para indicar vários estados do sistema. Veja a tabela abaixo. |
Tabela de status do ACT
| Piscadas longas | Piscadas curtas | Status |
|---|---|---|
| 0 | 3 | Falha genérica ao iniciar |
| 0 | 4 | start*.elf não encontrado |
| 0 | 7 | Imagem do kernel não encontrada |
| 0 | 8 | Falha na SDRAM |
| 0 | 9 | SDRAM insuficiente |
| 0 | 10 | Em estado HALT |
| 2 | 1 | Partição não é FAT |
| 2 | 2 | Falha ao ler a partir da partição |
| 2 | 3 | Partição estendida não é FAT |
| 2 | 4 | Assinatura/hash do arquivo incompatível - Pi 4 |
| 4 | 4 | Tipo de placa não suportado |
| 4 | 5 | Erro fatal de firmware |
| 4 | 6 | Falha de energia tipo A |
| 4 | 7 | Falha de energia tipo B |
Se o LED ACT piscar em um padrão regular de quatro piscadas, ele não consegue encontrar o bootcode (start.elf)
Se o LED ACT piscar em um padrão irregular, então a inicialização foi iniciada.
Se o LED ACT não piscar, o código da EEPROM pode estar corrompido; tente novamente sem nada conectado para ter certeza.
Para mais detalhes, verifique o fórum Raspberry Pi:
STICKY: Is your Pi not booting? (The Boot Problems Sticky) - Raspberry Pi Forums
Para mais detalhes, verifique o fórum Raspberry Pi: https://forums.raspberrypi.com//viewtopic.php?f=28&t=58151
Para ativar o LED USER use o seguinte comando:
sudo -i
echo 0 > /sys/class/leds/usr-led/brightness
echo 1 > /sys/class/leds/usr-led/brightness
Você deverá ver o LED USER acender na cor vermelha.
Sensor de Luz

O sensor de luz, localizado na parte inferior direita da tela, é capaz de detectar a intensidade da luz ambiente e ajustar automaticamente o brilho da tela para proporcionar uma experiência de visualização ideal enquanto economiza energia. O sensor de luz se comunica com o CM4 por meio do protocolo I2C.
O endereço I2C é 0x29.
Para fazer a interface com o sensor de luz:
- Passo 1. Entre no seguinte diretório
cd /sys/bus/iio/devices/iio:device0
- Passo 2. Digite o seguinte para obter o valor de intensidade de luz em Lux
cat in_illuminance_input

Buzzer

O reTerminal DM possui um buzzer ativo localizado no canto inferior direito da tela, que pode ser usado para vários propósitos, como alarmes e notificações de eventos. O buzzer é controlado através do CI de expansão GPIO PCA9535, que fornece canais adicionais de E/S digitais para o dispositivo.
Para testar e controlar o buzzer você pode simplesmente definir 1 ou 0 no arquivo /sys/class/leds/usr-buzzer/brightness:

Terminais Multifuncionais

Tabela de comparação de terminais e sinais
| CANH | CANL | GND_ISO | RS485A | RS485B | GND_ISO | RS232_TX | RS232_RX | GND | GND |
|---|---|---|---|---|---|---|---|---|---|
| DI1 | DI2 | DI3 | DI4 | GND_DI | DO1 | DO2 | DO3 | DO4 | GND_DO |
Tabela de atribuição de pinos do terminal
| Pino | Silk-screen | Sinal | Descrição |
|---|---|---|---|
| 1 | CH | CANH | Sinal CAN diferencial alto |
| 2 | CL | CANL | Sinal CAN diferencial baixo |
| 3 | GS | GND_ISO | Sinal de terra isolado |
| 4 | RA | RS485A | Sinal RS485 diferencial A |
| 5 | RB | RS485B | Sinal RS485 diferencial B |
| 6 | GS | GND_ISO | Sinal de terra isolado |
| 7 | RT | RS232_TX | Extremidade de transmissão do sinal RS232 |
| 8 | RX | RS232_RX | Extremidade de recepção do sinal RS232 |
| 9 | GD | GND | Terra da placa-mãe |
| 10 | GD | GND | Terra da placa-mãe |
| 11 | I1 | DI1 | Entrada digital 1 |
| 12 | I2 | DI2 | Entrada digital 2 |
| 13 | I3 | DI3 | Entrada digital 3 |
| 14 | I4 | DI4 | Entrada digital 4 |
| 15 | GI | GND_DI | Sinal de terra de entrada, conectado ao GND via 1MΩ |
| 16 | D1 | DO1 | Saída digital 1 |
| 17 | D2 | DO2 | Saída digital 2 |
| 18 | D3 | DO3 | Saída digital 3 |
| 19 | D4 | DO4 | Saída digital 4 |
| 20 | GO | GND_DO | Sinal de terra de saída, conectado ao GND via 0Ω |
DI/DO
O reTerminal DM suporta 4 canais de entrada digital e 4 canais de saída digital, todos opticamente isolados para proteger efetivamente a placa-mãe contra picos de tensão ou outras perturbações elétricas.

Tabela de atribuição de pinos DI/DO
| Pino | Sinal CM4 | Faixa Típica de Tensão | Tensão Máx. | Capacidade de Corrente Nominal |
|---|---|---|---|---|
| DI1 | GPIO16 | 5-24V CC | 30V CC | |
| DI2 | GPIO17 | 5-24V CC | 30V CC | |
| DI3 | GPIO22 | 5-24V CC | 30V CC | |
| DI4 | GPIO23 | 5-24V CC | 30V CC | |
| GND_DI | ||||
| DO1 | GPIO24 | 5-24V CC | 30V CC | 500mA |
| DO2 | GPIO25 | 5-24V CC | 30V CC | 500mA |
| DO3 | GPIO26 | 5-24V CC | 30V CC | 500mA |
| DO4 | GPIO6 | 5-24V CC | 30V CC | 500mA |
| GND_DO |
O terra para os sinais de entrada é diferente do terra para os sinais de saída. O terra para os sinais de entrada deve ser conectado ao pino GND_DI, enquanto o terra para os sinais de saída deve ser conectado ao pino GND_DO.
A lógica negativa usada para as entradas e saídas digitais do reTerminal DM, a relação de nível lógico entre o Terminal IO e o GPIO do CM4 é mostrada na tabela abaixo.
| Entrada Digital do Terminal | Sinal Detectado pelo GPIO do CM4 |
|---|---|
| Baixo | Alto |
| Alto | Baixo |
| Saída do GPIO do CM4 | Saída Digital do Terminal |
|---|---|
| Alto | Baixo |
| Baixo | Alto |
Nesta seção usaremos a ferramenta raspi-gpio para testar com GPIOs, você pode usar o raspi-gpio help para ver o manual:

Para obter o estado atual de todos os GPIOs, insira o seguinte comando no Terminal:
raspi-gpio get

Entrada Digital
Aqui está um esquema mostrando como fazer a fiação de sensores para DI:

Para obter o status de um GPIO específico, insira o seguinte comando no Terminal :
raspi-gpio get 16

onde o estado atual do GPIO16 está definido como INPUT e pulling Down o nível atual do pino é 1, o que significa High, o que também significa que a Entrada Digital do Terminal atual DI1 está em Low de acordo com a tabela acima
Vamos aplicar um sinal High em DI1 conectando o terminal DI1 ao pino Positive da 5V source, e então o Ground da 5V source ao GND_DI
raspi-gpio get 16

Onde o nível atual do pino do GPIO16 é 0, o que significa Low, o que também significa que a Entrada Digital do Terminal atual DI1 está em High de acordo com a tabela acima
Saída Digital
Aqui está um esquema mostrando como fazer a fiação da carga para DO:

Para controlar o valor de estado da saída digital, antes de tudo precisamos definir o estado do pino para Output e pulling Down:
#set current pin state
raspi-gpio set 24 op pd dh
#get the pin state after set
raspi-gpio get 24

Onde o GPIO24 correspondente a DO1 é definido para o estado Output e pulling down, e o nível do GPIO24 é definido como High
Agora vamos definir o GPIO24 para Low, o que significa que a saída de DO1 é acionada como High.
#set current pin state
raspi-gpio set 24 dh
#get the pin state after set
raspi-gpio get 24

RS485

O reTerminal DM é equipado com uma interface RS485 através de seu conector de 20 pinos, que é isolada tanto para sinal quanto para alimentação para garantir operação segura e confiável em aplicações robustas e de automação. Os sinais RS485 A e RS485 B são isolados usando isolamento capacitivo, o que fornece excelente imunidade a EMI e atende aos requisitos de comunicação em alta velocidade da interface RS485.
Um resistor terminal de 120Ω foi instalado por padrão. A interface RS485 utiliza uma fonte de alimentação isolada, o que significa que o sinal de terra para dispositivos externos conectados à interface RS485 deve ser conectado ao pino GND_ISO.
Para testar e fazer a interface com o RS485, você deve preparar um adaptador USB para RS485 e certificar-se de que a conexão seja a mesma que a mostrada abaixo:

Observe que a porta RS485 é /dev/ttyACM1 ou /dev/ttyCH340USB1, dependendo de qual sistema operacional você está executando.
Use sua ferramenta favorita de comunicação serial no computador host para executar o teste abaixo: execute o código python no reTerminal DM para testar a conexão serial RS485, onde este código irá configurar a porta serial RS485 da seguinte forma
Baudrate -> 9600 Tamanho de byte -> 8 bits Paridade -> Nenhuma Bits de parada -> 1 Controle de fluxo de hardware -> desativado
import serial, time
import os
ser = serial.Serial()
if os.path.exists('/dev/ttyACM1'):
ser.port = "/dev/ttyACM1"
elif os.path.exists('/dev/ttyCH340USB1'):
ser.port = "/dev/ttyCH340USB1"
else:
print('Neither /dev/ttyACM1 nor /dev/ttyCH340USB1 is present')
#9600,N,8,1
ser.baudrate = 9600
ser.bytesize = serial.EIGHTBITS #number of bits per bytes
ser.parity = serial.PARITY_NONE #set parity check
ser.stopbits = serial.STOPBITS_ONE #number of stop bits
ser.timeout = 0.5 #non-block read 0.5s
ser.writeTimeout = 0.5 #timeout for write 0.5s
ser.xonxoff = False #disable software flow control
ser.rtscts = False #disable hardware (RTS/CTS) flow control
ser.dsrdtr = False #disable hardware (DSR/DTR) flow control
try:
ser.open()
except Exception as ex:
print ("open serial port error " + str(ex))
exit()
if ser.isOpen():
try:
ser.flushInput() #flush input buffer
ser.flushOutput() #flush output buffer
time.sleep(0.1)
#write data
ser.write("rs485 communication is on, you can try to send data...\n".encode())
print("Sent successfully\n")
time.sleep(5) #wait 5s
#read data
numofline = 0
print("Reading Data:")
while True:
response = ser.readline()
print(response)
numofline = numofline +1
if (numofline >= 1):
break
ser.close()
except Exception as e1:
print ("communicating error " + str(e1))
else:
print ("open serial port error")

RS232

O conector de 20 pinos do reTerminal DM também inclui uma interface RS232, que não é isolada. Isso porque a comunicação RS232 normalmente utiliza níveis de tensão CMOS e possui curtas distâncias de comunicação, tornando-a menos suscetível a interferências eletromagnéticas do ambiente.
Observe que o pino Ground precisa ser conectado ao pino GD ao lado do pino RX, certifique-se de que não seja o pino GS.
Aqui está o script de teste em python para envio de dados do reTerminal DM para o computador host:

import time
import serial
import os
if os.path.exists('/dev/ttyACM0'):
port = "/dev/ttyACM0"
elif os.path.exists('/dev/ttyCH340USB0'):
port = "/dev/ttyCH340USB0"
else:
print('Neither /dev/ttyACM0 nor /dev/ttyCH340USB0 is present')
ser = serial.Serial(
port = port,
baudrate = 9600,
parity = serial.PARITY_NONE,
stopbits = serial.STOPBITS_ONE,
bytesize = serial.EIGHTBITS,
timeout = 1
)
counter=0
try:
print("rs232 starts now!\n")
ser.write("rs232 starts now!\n".encode())
while 1:
ser.write(("Write counter:{}\n".format(counter)).encode())
time.sleep(1)
counter += 1
except KeyboardInterrupt:
exit()
Aqui está o script de teste em python para receber dados no reTerminal DM enviados pelo computador host,

import time
import serial
import os
if os.path.exists('/dev/ttyACM0'):
port = "/dev/ttyACM0"
elif os.path.exists('/dev/ttyCH340USB0'):
port = "/dev/ttyCH340USB0"
else:
print('Neither /dev/ttyACM0 nor /dev/ttyCH340USB0 is present')
ser = serial.Serial(
port=port,
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1,
xonxoff = False, #disable software flow control
rtscts = False, #disable hardware (RTS/CTS) flow control
dsrdtr = False
)
try:
print("Start receiving data now!\n")
while 1:
x=ser.readlines()
if x != b'':
print(x)
except KeyboardInterrupt:
exit()
CAN

O reTerminal DM possui uma interface CAN que suporta o protocolo CAN FD (Controller Area Network Flexible Data-Rate). A interface CAN é isolada usando isolamento capacitivo, o que fornece excelente proteção contra EMI e garante comunicação confiável em aplicações robustas e de automação. Um resistor terminal de 120Ω foi instalado por padrão.
A interface CAN utiliza uma fonte de alimentação isolada, o que significa que o sinal de terra para dispositivos externos conectados à interface CAN deve ser conectado ao pino GND_ISO
Para testar e fazer a interface com o barramento CAN: Conecte o adaptador USB para CAN como mostrado na imagem abaixo:

- PASSO 1: Instale o CAN-utils
sudo apt install can-utils

CAN-utils é um conjunto de ferramentas de depuração extremamente úteis usando a interface CAN. Ele inclui aplicativos como:
- candump – Despeja pacotes CAN – exibe, filtra e registra em disco.
- canplayer – Reproduz arquivos de log CAN.
- cansend – Envia um único quadro.
- cangen – Gera tráfego aleatório.
- canbusload – exibe a utilização atual do barramento CAN
O código-fonte do CAN-utils pode ser obtido no repositório GitHub.
- PASSO 2: Configure a interface CAN usando o seguinte comando:
sudo ip link set can0 up type can bitrate 500000
sudo ifconfig can0 txqueuelen 1000
sudo ip link set can0 up
- PASSO 3: Baixe o código de teste para o reTerminal DM usando git
git clone https://github.com/limengdu/Seeed_reTerminal_Bridge_CAN_exmaple
- PASSO 4: Compile e execute o código que envia os dados:
cd Seeed_reTerminal_Bridge_CAN_exmaple/
gcc cantransmit.c -o cantransmit
no seu computador host Linux ou em outro reTerminal DM, você pode compilar e executar o código que recebe os dados.
gcc canreceive.c -o canreceive
você pode ver os resultados, a imagem abaixo foi feita usando dois reTerminal DM:

USB
USB Tipo A

Existem duas portas USB 2.0 Tipo A, nas quais você pode conectar dispositivos USB como pen drive, webcam, teclado e mouse, etc.
USB Tipo C

USB Tipo C é uma porta USB 2.0 usada para depuração serial ou gravação de imagem do sistema operacional dependendo da posição da chave de boot. Para gravação do sistema operacional, consulte a página do Wiki de Gravação de OS
Slot para Cartão SIM

O reTerminal DM usa um slot para cartão SIM de tamanho padrão, comumente encontrado em aplicações robustas, o qual requer um cartão SIM padrão com dimensões de 25mm x 15mm.
Observe que a versão padrão do reTerminal DM não vem com um módulo 4G. Se você precisar de funcionalidade 4G, um módulo 4G adicional deve ser adquirido separadamente, portanto este slot para cartão SIM só funciona se você tiver colocado a versão suportada do módulo 4G no slot 4G PCIe.
Botão de Reset

Há um mini botão de pressão localizado no orifício de reset do reTerminal DM. Ao pressionar este botão com um objeto fino, o CM4 pode ser reiniciado. Este botão está conectado ao pino RUN_PG do CM4. Este pino, quando em nível alto, sinaliza que o CM4 foi iniciado. Colocar este pino em nível baixo reinicia o módulo.
Conector de Áudio

O reTerminal DM possui um conector de fone de ouvido de 3,5 mm, que suporta saída de som e pode ser conectado a fones de ouvido, alto-falantes externos, etc.
O conector de fone de ouvido suporta apenas saída de som e não suporta a função de gravação por microfone.

HDMI

O reTerminal DM possui uma interface HDMI nativa do CM4, suportando saída de vídeo de até 4K @ 60 fps. É ideal para aplicações que exigem múltiplas telas, permitindo que os usuários exibam seu conteúdo em telas externas grandes.
Ethernet RJ45

O reTerminal DM vem com uma interface Ethernet Gigabit nativa do CM4 que suporta três velocidades diferentes: 10/100/1000 Mbit/s. Um módulo PoE adicional pode ser adquirido para habilitar a alimentação por Ethernet (PoE) através desta interface, fornecendo energia ao reTerminal DM.
Interface Interna
GPIO de 40 Pinos
O clássico design GPIO de 40 pinos do Raspberry Pi é mantido dentro do reTerminal DM, e a pinagem permanece a mesma do Raspberry Pi 4B. Os usuários precisam abrir a tampa traseira para usar esses GPIOs. Deve‑se notar que, devido aos recursos limitados de IO do CM4, o GPIO de 40 pinos e muitas interfaces periféricas são multiplexados, portanto você precisa prestar atenção especial ao conflito ao usar os GPIOs. Para informações detalhadas de atribuição de pinos, consulte a tabela a seguir.
| Descrição | Multiplexação de pinos | Multiplexação de pinos | Descrição | |||
|---|---|---|---|---|---|---|
| Pino 1 | 3V3 | 40 PIN GPIO | 5V | |||
| I2C1_SDA | GPIO 2 | 5V | ||||
| I2C1_SCL | GPIO 3 | GND | ||||
| I2C3_SDA | GPIO 4 | GPIO 14 | UART0_TXD | USB Tipo C | ||
| GND | GPIO 15 | UART0_RXD | ||||
| Bloco Terminal DI2 | DI2 | GPIO 17 | GPIO 18 | PCM_CLK | Conector de áudio de 3,5 mm | |
| Pinos de interrupção para toque na tela | TP_INT | GPIO 27 | GND | |||
| Bloco Terminal DI3 | DI3 | GPIO 22 | GPIO 23 | DI4 | Bloco Terminal DI4 | |
| 3V3 | GPIO 24 | DO1 | Bloco Terminal DO1 | |||
| Módulo CAN e LoRa® | SPI0_MOSI | GPIO 10 | GND | |||
| SPI0_MISO | GPIO 9 | GPIO 25 | DO2 | Bloco Terminal DO2 | ||
| SPI0_SCLK | GPIO 11 | GPIO 8 | SPI0_CE0 | Pinos de habilitação SPI para CAN | ||
| GND | GPIO 7 | SPI0_CE1 | Pinos de habilitação SPI para LoRa® | |||
| ID_SD | ID_SC | |||||
| I2C_SCL | GPIO 5 | GND | ||||
| Bloco de Terminais DO4 | DO4 | GPIO 6 | GPIO 12 | CAN_INT | Pinos de interrupção para CAN | |
| Pinos de controle da luz de fundo do LCD | LCD_PWM | GPIO 13 | GND | |||
| Conector de áudio de 3,5 mm | PCM_FS | GPIO 19 | GPIO 16 | DI1 | Bloco de Terminais DI1 | |
| Bloco de Terminais DO3 | DO3 | GPIO 26 | GPIO 20 | PCM_DIN | Conector de áudio de 3,5 mm | |
| GND | GPIO 21 | PCM_DOUT | Conector de áudio de 3,5 mm |
RTC
O reTerminal DM possui um circuito RTC que vem pré-instalado com uma bateria CR2032, permitindo que ele mantenha a função de contagem de tempo mesmo em caso de perda de energia.
Use o seguinte comando para alterar o relógio de hardware para o relógio atual do sistema
sudo hwclock --systohc
Use o seguinte comando para alterar o relógio do sistema para o relógio atual de hardware
sudo hwclock --hctosys
Para visualizar o relógio de hardware atual
sudo hwclock -r

Watchdog
O reTerminal DM vem equipado com um circuito watchdog de hardware independente que garante a reinicialização automática do sistema em caso de travamentos anormais. O circuito watchdog é implementado por meio do RTC e permite tempos de alimentação flexíveis de 1 a 255 segundos.
Para configurar o tempo limite do watchdog em watchdog.conf, siga estas etapas:
PASSO 1: Abra o arquivo watchdog.conf para edição, normalmente localizado em /etc/watchdog.conf.
sudo nano /etc/watchdog.conf
PASSO 2: Procure pelas opções de configuração "watchdog-device" e "watchdog-timeout" em /etc/watchdog.conf, configure-as da seguinte forma.
você pode experimentar reinicialização instantânea quando a opção watchdog-timeout estiver definida abaixo de 60; para utilizar o Watchdog de Hardware você precisa configurar o watchdog-device como /dev/watchdog1, onde a configuração padrão sem o 1 utiliza o dispositivo watchdog da Broadcom.
# Uncomment this to use the watchdog device driver access "file".
watchdog-device = /dev/watchdog1
# Uncomment and edit this line for hardware timeout values that differ
# from the default of one minute.
watchdog-timeout = 60
Por exemplo, se você quiser definir o tempo limite do watchdog para 60 segundos, poderá definir o valor de watchdog-timeout para 60, o que significa que se o watchdog não receber um sinal de reset dentro de 60 segundos, ele acionará uma reinicialização automática, assumindo que o sistema travou.
você pode testar se o watchdog está ativo com o seguinte comando, onde estes comandos colocarão o sistema em halt, portanto tenha cuidado ao executar os seguintes comandos:
sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
Agora o seu reTerminal DM deve ter reiniciado após o tempo que você definiu para o watchdog-timeout
Luz de fundo
Há 6 níveis de brilho que você pode definir para a luz de fundo, onde 0 é desligado e 5 é o brilho máximo. Você pode controlar o brilho usando os seguintes comandos.
sudo -i
echo 0 > /sys/class/backlight/lcd_backlight/brightness
echo 1 > /sys/class/backlight/lcd_backlight/brightness
echo 5 > /sys/class/backlight/lcd_backlight/brightness
Add-on Interno
Câmera

A interface de câmera CSI é reservada na placa principal do reTerminal DM, que pode ser personalizada para suportar funções de câmera. Observe que, devido ao espaço limitado no painel frontal, apenas câmeras de tamanho pequeno podem ser usadas. A solução atualmente rigorosamente testada usa a placa controladora de câmera Raspberry Pi V2.0 + câmera personalizada Seeed IMX219-77.
| Conector | Tipo de Conector | Passo do Pino | Lane | Orientação da FPC |
|---|---|---|---|---|
| CSI0 | FPC de 15 pinos | 1mm | 2 | Dentes dourados voltados para baixo |
| CSI1 | FPC de 22 pinos | 0.5mm | 4 | Dentes dourados voltados para cima |

Observe que a versão padrão do reTerminal DM não vem com uma abertura para câmera no painel frontal, portanto a funcionalidade de câmera não está disponível para o produto padrão. Se você tiver uma necessidade personalizada de câmera, entre em contato com [email protected]
Módulo 4G

Materiais Necessários
- reTerminal DM x 1
- Módulo 4G EC25-EUX x1
- Cartão SIM x1
Passo 1. Consulte o guia EC25 4G Module Hardware assembly para instalar o EC25 4G Module no 4G/LTE PCIe slot, onde você deverá ver a serigrafia 4G/LTE, e também insira o cartão SIM habilitado para 4G no slot do cartão SIM, antes de ligar o sistema.
Passo 2. Verifique se o EC25-EUX foi detectado usando lsusb
lsusb
lsusb -t

Passo 3. Instale a ferramenta de comunicação serial minicom.
sudo apt install minicom
Passo 4. Conecte o módulo 4G EC25-EUX por meio do minicom.
sudo minicom -D /dev/ttyUSB2 -b 1152008n1
quando a conexão serial for aberta, digite AT e pressione 'Enter', e você deverá ver OK.

Passo 5. Habilite o módulo 4G para se conectar à rede 4G
Na mesma janela serial do minicom, digite:
AT+QCFG="usbnet"
Ele retornará algo como +QCFG: "usbnet",0, mas precisamos que isso seja definido como 1 (modo ECM), portanto insira o seguinte comando:
AT+QCFG="usbnet",1
Em seguida, insira o seguinte comando para forçar o modem a reiniciar:
AT+CFUN=1,1
Então você pode reiniciar ou esperar um pouco para o módulo obter internet da operadora do seu cartão SIM.
Você também pode usar o comando ifconfig para verificar o status de rede do reTerminal DM.

Módulo LoraWAN®
o reTerminal DM oferece suporte para as versões USB e SPI do Módulo WM1302 LoraWAN®, no entanto, a versão USB precisará utilizar o Mini PCIe projetado para o Módulo 4G, o que significa que, se você quiser usar tanto o Módulo 4G quanto o Módulo LoraWAN®, escolha a versão SPI do Módulo WM1302 LoraWAN®.
- Módulo WM1302 SPI
- Módulo WM1302 USB

Passo 1. Consulte o guia LoraWAN® Module Hardware assembly para instalar o WM1302 SPI LoraWAN® Module no LoraWAN® Mini PCIe slot, onde você deverá ver a serigrafia Lora.
Instale os pacotes necessários build-essential (o pacote essencial de compilação é um pacote Debian que contém as ferramentas necessárias para criar um pacote DEB a partir do código‑fonte) instalando o módulo.
sudo apt update
sudo apt install git
sudo apt-get install build-essential
Etapa 2. digite sudo raspi-config na linha de comando para abrir a Ferramenta de Configuração de Software do Raspberry Pi:
- Selecione Interface Options
- Selecione SPI, depois selecione Yes para habilitá-lo
- Selecione I2C, depois selecione Yes para habilitá-lo
- Selecione Serial Port, depois selecione No para "Would you like a login shell..." e selecione Yes para "Would you like the serial port hardware..."
Depois disso, reinicie o Raspberry Pi para garantir que essas configurações funcionem.
Etapa 3. Baixe o código WM1302 para o reTerminal e compile-o.
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
cd sx1302_hal
sudo make
Etapa 4. Copie e modifique o script reset_lgw.sh
cp ~/sx1302_hal/tools/reset_lgw.sh ~/sx1302_hal/packet_forwarder/
cd ~/sx1302_hal/packet_forwarder
vim reset_lgw.sh
Modifique o script reset_lgw.sh com um editor de texto como a seguir:
#!/bin/bash
# Dependency Check
if ! command -v i2cset &> /dev/null; then
echo "Error: i2c-tools not found. Please install using: sudo apt-get install i2c-tools"
exit 1
fi
# Configuration
I2C_BUS=1 # CM4_IIC1
DEVICE_ADDR=0x21 # PCA9535 Address from schematic
REG_OUTPUT_PORT0=0x02 # Register 2: Output Port 0
REG_CONFIG_PORT0=0x06 # Register 6: Configuration Port 0
PIN_MASK=0x20 # Bit 5 (0010 0000) for P05
# Read a register
read_reg() {
local val=$(i2cget -y $I2C_BUS $DEVICE_ADDR $1)
echo $val
}
# Write to a register
write_reg() {
i2cset -y $I2C_BUS $DEVICE_ADDR $1 $2
}
echo "Starting SX1302 Reset Sequence on I2C Bus $I2C_BUS, Address $DEVICE_ADDR..."
# Ensure the Output Register bit for P05 is LOW
CURRENT_OUT=$(read_reg $REG_OUTPUT_PORT0)
NEW_OUT=$(printf "0x%02x" $((CURRENT_OUT & ~PIN_MASK)))
write_reg $REG_OUTPUT_PORT0 $NEW_OUT
echo "Set Output Register P05 to LOW. (Reg $REG_OUTPUT_PORT0: $CURRENT_OUT -> $NEW_OUT)"
# Configure P05 as OUTPUT
# Configuration Register: 1 = Input, 0 = Output
CURRENT_CFG=$(read_reg $REG_CONFIG_PORT0)
NEW_CFG=$(printf "0x%02x" $((CURRENT_CFG & ~PIN_MASK)))
write_reg $REG_CONFIG_PORT0 $NEW_CFG
echo "Configured P05 as OUTPUT. (Reg $REG_CONFIG_PORT0: $CURRENT_CFG -> $NEW_CFG)"
# Assert Reset (Drive P05 HIGH)
CURRENT_OUT=$(read_reg $REG_OUTPUT_PORT0)
RESET_HIGH=$(printf "0x%02x" $((CURRENT_OUT | PIN_MASK)))
write_reg $REG_OUTPUT_PORT0 $RESET_HIGH
echo "Asserting Reset (P05 HIGH)..."
# Hold Reset for 200ms
sleep 0.2
# Release Reset (Drive P05 LOW)
write_reg $REG_OUTPUT_PORT0 $NEW_OUT
echo "Released Reset (P05 LOW)."
echo "SX1302 Reset Complete."
echo "------------------------------------"
Etapa 5. substitua a porta padrão SPI do Módulo LoraWAN® no arquivo de configuração global_conf.json.sx1250.US915:
sed -i 's/spidev0.0/spidev0.1/g' global_conf.json.sx1250.US915
Etapa 6. Inicie o Módulo LoraWAN®
Escolha o seu LoRaWAN Network Server preferido server_address e o gateway EUI gateway_ID no respectivo global_conf.json.sx1250.xxxxx com base no módulo que você está usando, e modifique a up/down port para 1700. Em seguida, execute o seguinte código para iniciar o concentrador:
cd ~/sx1302_hal/packet_forwarder
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868
# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915


Etapa 1. Consulte o guia LoraWAN® Module Hardware assembly para instalar o WM1302 USB LoraWAN® Module no 4G Mini PCIe slot onde você deverá ver a serigrafia 4G.

Etapa 2. digite sudo raspi-config na linha de comando para abrir a Ferramenta de Configuração de Software do Raspberry Pi:
- Selecione Interface Options
- Selecione I2C, depois selecione Yes para habilitá-lo
- Selecione Serial Port, depois selecione No para "Would you like a login shell..." e selecione Yes para "Would you like the serial port hardware..."
Depois disso, reinicie o Raspberry Pi para garantir que essas configurações funcionem.
Etapa 3. Baixe o código WM1302 para o reTerminal e compile-o.
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
cd sx1302_hal
sudo make
Etapa 4. Copie o script reset_lgw.sh
cp ~/sx1302_hal/tools/reset_lgw.sh ~/sx1302_hal/packet_forwarder/
Etapa 5. substitua a porta USB do Módulo LoraWAN® no arquivo de configuração global_conf.json.sx1250.US915.USB:
Etapa 5-1. Primeiro, para obter a porta USB específica siga as etapas abaixo:
lsusb
No meu caso, nosso WM1302 está usando a STMicroelectronics Virtual COM Port, então podemos obter o ID do produto 5740
Etapa 5-2.
Em seguida, obtenha o dispositivo USB com o número de Product ID 5740. Neste caso, obtemos o número da porta USB 1-1.4.1:
sudo dmesg | grep 5740
# Load ACM module
sudo modprobe cdc_acm
Então podemos obter a porta do dispositivo como a seguir:
sudo dmesg | grep 1-1.4.1
então, no meu caso, o dispositivo USB é ttyACM2
Portanto, vamos modificar o dispositivo USB na configuração global_conf.json.sx1250.US915.USB com o comando sed sed -i 's/search_string/replacement_string/g' filename, então siga o padrão sed -i 's/ttyACM0/the_result_from_above' global_conf.json.sx1250.frequency_of_your_module.USB, observando que você deve substituir the_result_from_above e frequency_of_your_module para a sua própria aplicação:
por exemplo, no meu caso:
sed -i 's/ttyACM0/ttyACM2/g' global_conf.json.sx1250.US915.USB
Consulte as etapas mostradas na imagem abaixo:

Etapa 6. Inicie o Módulo LoraWAN®
Escolha o seu LoRaWAN Network Server preferido server_address e o gateway EUI gateway_ID no respectivo global_conf.json.sx1250.xxxxx com base no módulo que você está usando, e modifique a up/down port para 1700. Em seguida, execute o seguinte código para iniciar o concentrador:
cd ~/sx1302_hal/packet_forwarder
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# for WM1302 LoRaWAN Gateway Module (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB

Placa de Expansão PCIe
O reTerminal DM possui uma interface PCIe derivada do CM4, que suporta PCIe 2.0 e, teoricamente, fornece uma velocidade máxima de transmissão de 5 Gbps. Isso permite a expansão de várias interfaces de alta velocidade, como Gigabit Ethernet e NVMe SSD. Desenvolvemos várias placas de expansão com base nas interfaces PCIe, USB e I2C para atender aos requisitos de diferentes cenários. Isso também facilita necessidades de customização.
Observe que o produto padrão não inclui uma placa de expansão PCIe por padrão. A Seeed pode fornecer serviços de montagem para pedidos de customização em lote.
POE
O reTerminal DM pode suportar o padrão IEEE 802.3af PD (Powered Devices) adicionando um módulo de alimentação PoE.
O reTerminal DM suporta alimentação PoE, mas o produto padrão não inclui um módulo PoE por padrão. A Seeed pode fornecer serviços de soldagem e montagem de PoE para pedidos de customização em lote. No entanto, se um cliente estiver testando uma amostra, ele precisará soldar e montar o módulo PoE por conta própria.
SSD
O reTerminal DM suporta SSD NVMe 2280 por meio do uso de uma placa de expansão PCIe. É importante observar que o PCIe do CM4 é gen2.0 com uma velocidade máxima teórica de 5 Gbps. Se você estiver usando um SSD Gen3.0 ou superior, ele pode não conseguir atingir a velocidade máxima do SSD. Após os testes, o reTerminal DM com SSD instalado pode atingir uma velocidade máxima de gravação de 210 MB/s e uma velocidade máxima de leitura de 360 MB/s. Se você não tiver certeza de quais SSDs são compatíveis, pode adquirir o 112990247, SSD NVMe M.2 PCle Gen3x4 2280 de 512 GB no site oficial da Seeed.
A versão padrão do reTerminal DM não suporta SSD e requer a compra de uma placa de expansão PCIe para habilitar esse recurso.
Recursos Adicionais
- Datasheet do reTerminal DM
- Manual do Usuário do reTerminal DM
- Projeto Esquemático do reTerminal DM & Projeto de PCB & Arquivos Gerber
- Arquivo de Projeto Estrutural do reTerminal DM.stp
Suporte Técnico e Discussão de Produtos
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.