Introdução ao reTerminal DM

O reTerminal DM é uma IHM robusta open-source de 10,1" – um dispositivo mestre 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 de Panel PC, IHM, CLP e gateway IIoT, o reTerminal DM é uma nova geração de hub interativo de sensoriamento com uma tela grande 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.
Aviso de compra: os módulos 4G e LoRa® não acompanham o reTerminal DM por padrão. Adquira separadamente os módulos relevantes, como o 4G bundle.
Opções de personalização disponíveis: identidade visual com logotipo, embalagem e gravação de firmware.
Características
- IHM, CLP, Panel PC e gateway em um só: perfeito para dispositivos hub distribuídos
- Programação de baixo código para aplicações orientadas a eventos: Node-RED integrado nativamente para edição baseada em fluxo e implantação com um clique, compatível com todo o software que roda em Raspberry Pi
- Design robusto para ambientes de trabalho severos: painel frontal IP65, temperatura de operação de -10~50°C
- Conectividade híbrida: suporta 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: dois anos de garantia
*Os módulos 4G e LoRa® não acompanham o reTerminal DM por padrão; adquira separadamente os módulos relevantes.
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 |
| Display | |
| 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 do backlight | 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 de 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 |
| BLE | BLE integrado |
| 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 alimentação | 12~24 DC |
| Ambiente | |
| Grau de proteção | 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ões | 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 principal

Diagrama de alimentação

O reTerminal DM suporta duas opções de fonte de alimentação: terminal DC e porta PoE. Por padrão, o reTerminal DM é alimentado através do terminal DC, 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 personalização em lote mediante 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, fornecendo uma maneira conveniente e eficiente de alimentar o dispositivo via Ethernet. Esta opção simplifica o processo de instalação e reduz a quantidade de cabeamento necessária, tornando‑a uma solução ideal para aplicações com fontes de energia 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 e o ambiente de teste podem resultar em variações nos resultados.
| Status | Tensão | Corrente | Consumo de Energia | Descrição |
|---|---|---|---|---|
| Desligado | 0.6mA | Teste de consumo de energia estático em estado de desligamento e corte de energia. | ||
| Ocioso | 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. |
| Carga total | 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 realiza 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 alimentação. Para reiniciar o sistema, basta reconectar a alimentação.
Observe que, após desligar, aguarde pelo menos 10 segundos antes de reiniciar o sistema para permitir que os capacitores internos descarreguem completamente.
Diagrama de 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 uma matriz de microfones dupla, proporcionando capacidades superiores de captação de som. Os microfones se comunicam com o chip codec de áudio através da interface I2S, enquanto o chip codec se comunica com o CM4 através 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 as aberturas do microfone.
Para interagir com o Microfone:
Abra o aplicativo Terminal no dispositivo e digite arecord -l para encontrar o driver do Microfone:

Para gravar o áudio você pode usar o aplicativo audacity, use sudo apt install audacity para instalar o aplicativo audacity:
Abra o audacity para abrir o aplicativo e clique em gravar para registrar o á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 está 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 de SDRAM |
| 0 | 9 | SDRAM insuficiente |
| 0 | 10 | Em estado HALT |
| 2 | 1 | Partição não FAT |
| 2 | 2 | Falha ao ler da partição |
| 2 | 3 | Partição estendida não FAT |
| 2 | 4 | Assinatura/hash de 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, consulte o fórum Raspberry Pi:
STICKY: Is your Pi not booting? (The Boot Problems Sticky) - Raspberry Pi Forums
Para mais detalhes, consulte 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 através do protocolo I2C.
O endereço I2C é 0x29.
Para interagir 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 de 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 | Serigrafia | 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 principal |
| 10 | GD | GND | Terra da placa principal |
| 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 principal 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 CM4 GPIO é mostrada na tabela abaixo.
| Entrada Digital do Terminal | Sinal Detectado do CM4 GPIO |
|---|---|
| Baixo | Alto |
| Alto | Baixo |
| Saída do CM4 GPIO | 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 atual do Terminal DI1 está Low de acordo com a tabela acima
Vamos colocar um sinal High no DI1 conectando o terminal DI1 ao pino Positive da fonte de 5V, e então o Ground da fonte de 5V ao GND_DI
raspi-gpio get 16

Em que o nível atual do pino do GPIO16 é 0, o que significa Low, o que também significa que a Entrada Digital atual do Terminal DI1 está 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

Em que 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 está 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 usa 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 interface com o RS485, você deve preparar um adaptador USB para RS485 e certificar-se de que a conexão seja a mesma que abaixo:

Observe que a porta RS485 é /dev/ttyACM1 ou /dev/ttyCH340USB1, dependendo de qual sistema operacional você está executando.
Use sua ferramenta de comunicação serial favorita no computador host para realizar o teste abaixo: execute o código python no reTerminal DM para testar a conexão serial RS485, onde este código definirá a porta serial RS485 da seguinte forma
Taxa de transmissão -> 9600 Tamanho dos bytes -> 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 usa níveis de tensão CMOS e possui distâncias de comunicação curtas, 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 a partir do 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 usa 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 interface com o barramento CAN: Por favor, conecte o adaptador USB para CAN como mostrado na imagem abaixo:

- ETAPA 1: Instalar o CAN-utils
sudo apt install can-utils

CAN-utils é um conjunto de ferramentas de depuração extremamente úteis que utilizam 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.
- ETAPA 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
- ETAPA 3: Baixe o código de teste para o reTerminal DM usando git
git clone https://github.com/limengdu/Seeed_reTerminal_Bridge_CAN_exmaple
- ETAPA 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, às 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 SO, dependendo da posição da chave de boot. Para gravação do SO, consulte a página Wiki de gravação do SO
Slot para cartão SIM

O reTerminal DM utiliza um slot para cartão SIM de tamanho padrão, comumente encontrado em aplicações robustas, que 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 instalado a versão compatível 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 esse botão com um objeto fino, o CM4 pode ser reiniciado. Este botão está conectado ao pino RUN_PG do CM4. Quando este pino está em nível alto, indica 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 externos, alto-falantes, etc.
O conector de fone de ouvido suporta apenas saída de som e não suporta a função de gravação de 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 aos usuários enviar seu conteúdo para 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 alimentação via Ethernet (PoE) através desta interface, fornecendo energia ao reTerminal DM.
Interface interna
GPIO de 40 pinos
O clássico design de 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 é necessário prestar atenção especial a conflitos 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 manter a funcionalidade de contagem de tempo mesmo em caso de perda de energia.
Use o seguinte comando para alterar o relógio de hardware com o relógio atual do sistema
sudo hwclock --systohc
Use o seguinte comando para alterar o relógio do sistema com 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:
ETAPA 1: Abra o arquivo watchdog.conf para edição, geralmente localizado em /etc/watchdog.conf.
sudo nano /etc/watchdog.conf
ETAPA 2: Procure pelas opções de configuração "watchdog-device" e "watchdog-timeout" em /etc/watchdog.conf, e 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, pode definir o valor de watchdog-timeout como 60, o que significa que, se o watchdog não receber um sinal de reset dentro de 60 segundos, ele acionará uma operação de reinicialização automática, assumindo que o sistema tenha travado.
você pode testar se o watchdog está ativo com o seguinte comando, onde esses comandos colocarão o sistema em halt; por favor, tenha cuidado ao executar os seguintes comandos:
sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
Agora seu reTerminal DM deve ter reiniciado após o tempo que você definiu para o watchdog-timeout
Luz de fundo
Existem 6 níveis de brilho que você pode definir para a luz de fundo, de 0 que é desligado até 5 que é 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 pequeno porte podem ser usadas. A solução atualmente rigorosamente testada usa a placa controladora da câmera Raspberry Pi V2.0 + câmera personalizada da Seeed IMX219-77.
| Conector | Tipo de conector | Passo do pino | Lane | Orientação do FPC |
|---|---|---|---|---|
| CSI0 | FPC de 15 pinos | 1mm | 2 | Contatos dourados voltados para baixo |
| CSI1 | FPC de 22 pinos | 0.5mm | 4 | Contatos 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 Montagem de hardware do módulo 4G EC25 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 através do minicom.
sudo minicom -D /dev/ttyUSB2 -b 1152008n1
uma vez que 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), então 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 aguardar um tempo para que o módulo obtenha internet da operadora do seu cartão SIM.
Você também pode usar o comando ifconfig para consultar o status de rede do reTerminal DM.

Módulo LoraWAN®
O reTerminal DM oferece suporte tanto para a versão USB quanto para a versão SPI do módulo LoraWAN® WM1302; 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 LoraWAN® WM1302.
- Módulo WM1302 SPI
- Módulo WM1302 USB

Passo 1. Consulte o guia Montagem de hardware do módulo LoraWAN® 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
Passo 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 e depois selecione Yes para habilitá-lo
- Selecione I2C e 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.
Passo 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
Passo 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 "------------------------------------"
Passo 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
Passo 6. Inicie o Módulo LoraWAN®
Escolha o seu LoRaWAN Network Server server_address preferido e o gateway EUI gateway_ID no arquivo global_conf.json.sx1250.xxxxx correspondente, 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


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

Passo 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 e 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.
Passo 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
Passo 4. Copie o script reset_lgw.sh
cp ~/sx1302_hal/tools/reset_lgw.sh ~/sx1302_hal/packet_forwarder/
Passo 5. substitua a porta USB do Módulo LoraWAN® no arquivo de configuração global_conf.json.sx1250.US915.USB:
Passo 5-1. Primeiro, para obter a porta USB específica, siga os passos abaixo:
lsusb
No meu caso, nosso WM1302 está usando a STMicroelectronics Virtual COM Port, então podemos obter o ID do produto 5740
Passo 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 no arquivo de 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. Observe 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 os passos mostrados na imagem abaixo:

Passo 6. Inicie o Módulo LoraWAN®
Escolha o seu LoRaWAN Network Server server_address preferido e o gateway EUI gateway_ID no arquivo global_conf.json.sx1250.xxxxx correspondente, 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 Ethernet Gigabit e SSD NVMe. Desenvolvemos várias placas de expansão baseadas em interfaces PCIe, USB e I2C para atender a diferentes requisitos de cenário. Isso também facilita as necessidades de personalizaçã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 personalizaçã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 personalizaçã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
- reTerminal DM Datasheet
- Manual do Usuário do reTerminal DM
- Projeto Esquemático & Projeto de PCB & Arquivos Gerber do reTerminal DM
- Arquivo de Projeto Estrutural do reTerminal DM.stp
Suporte Técnico e Discussão de Produtos
Obrigado por escolher nossos produtos! Estamos aqui para oferecer 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.