Introducción a reTerminal DM

reTerminal DM es una HMI industrial de código abierto de 10.1" - un Maestro de Dispositivo Integrado para unificar el flujo de datos y gestionar el dispositivo en el sitio.
Basado en Raspberry Pi CM4, y como un dispositivo todo-en-uno Panel PC, HMI, PLC, Gateway IIoT, reTerminal DM es una nueva generación de hub de detección interactivo con una pantalla grande de grado industrial IP65.
Está equipado con rica escalabilidad y conectividad híbrida, soportando bus CAN, RS485, RS232, puerto Gigabit Ethernet, y otras interfaces, así como potentes capacidades de comunicación inalámbrica como 4G, LoRa®, WiFi, y BLE.
*Los módulos 4G y LoRa® no vienen con reTerminal DM por defecto, por favor compre los módulos relevantes en consecuencia, para paquete 4G
Características
- HMI, PLC, Panel PC y gateway en uno: Perfecto para los dispositivos hub distribuidos
- Programación de código bajo para aplicaciones basadas en eventos: Node-RED integrado nativamente para edición basada en flujo y despliegue con un clic, compatible con todo el software que funciona en Raspberry Pi
- Diseño robusto para entorno de trabajo duro: Panel frontal IP65, temperatura de operación -10~50°C
- Conectividad híbrida: Soporte 4G LTE, LoRaWAN®, WiFi, BLE, RS485/RS232, bus CAN, Ethernet 1000M, USB, HDMI
- Diseño de código abierto en software y hardware: Alimentado por Raspberry Pi CM4, bienvenida personalización o derivados
- Garantía del producto: Garantía de dos años
*Los módulos 4G y LoRa® no vienen con reTerminal DM por defecto, por favor compre los módulos relevantes en consecuencia.
Especificaciones
| Básico | |
| CPU | CM4 |
| Quad-core [email protected] | |
| Memoria | 8GB |
| Almacenamiento | 32GB eMMC |
| Ranura M.2 SATA SSD 2280-B Key (opcional) | |
| Soporte de SO | Raspbian SenseCraft Edge OS |
| Pantalla | |
| Tamaño | 10.1'' |
| Resolución Máx. | 1280 x 800 |
| Colores Máx. | 16.7M (8-bit) |
| Luminancia | 400 nit |
| Ángulo de Visión | 170/170 H/V° |
| Vida de Retroiluminación | 30000 hrs |
| Tipo de Táctil | Capacitivo de 10 puntos |
| Dureza del Lápiz | 7H |
| Video y Audio | |
| Video | HDMI 2.0 |
| Audio | Micrófono x 2 |
| Zumbador | |
| Jack de Audio 3.5mm | |
| Cámara | 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 > Bloque de Terminales 1 x RS-485 > DB9 (opcional) |
| RS232 | 1 x RS-232 > Bloque de Terminales 1 x RS-232 > DB9 (opcional) |
| CAN | 1 x CAN-BUS > Bloque de Terminales |
| DI | 4 x DI > Bloque de Terminales |
| DO | 4 x DO > Bloque de Terminales |
| 40pin GPIO | Interior |
| Comunicación Inalámbrica | |
| WiFi | WiFi integrado |
| BLE | BLE integrado |
| LoRa® | Mini-PCIe para LoRaWAN® (opcional) |
| Celular | Mini-PCIe para 4G (opcional) |
| Alimentación | |
| Entrada | Bloque de Terminales de 2 pines |
| PoE | 12W PoE (opcional) |
| Rango de Alimentación | 12~24 DC |
| Ambiente | |
| Protección de Ingreso | IP65 Panel Frontal |
| Temperatura de Operación | -10~50 °C |
| Temperatura de Almacenamiento | -20~70 °C |
| Humedad (Operación) | 10~90% RH |
| Mecánico | |
| Dimensión | 259.4 x 191 x 42.2 mm |
| Carcasa | Aleación de Aluminio Fundido a Presión |
| Montaje | Panel, VESA, Riel Din |
| Peso (Neto) | 1.8Kg |
| Certificación | |
| CE, FCC, RoHS, Telec, REACH | |
| Otros | |
| RTC | RTC de Alta Precisión |
| Seguridad | ATECC608A |
| Garantía | 2 Años |
| Disipación de Calor | Sin ventilador |
Descripción General del Hardware

Descripción General de la Placa Principal

Diagrama de Alimentación

El reTerminal DM soporta dos opciones de fuente de alimentación: terminal DC y puerto PoE. Por defecto, el reTerminal DM se alimenta a través del terminal DC, mientras que la fuente de alimentación PoE es opcional. Esto proporciona flexibilidad en la selección de fuente de alimentación y permite una fácil integración con varias fuentes de energía.
Terminal de alimentación

El reTerminal DM se suministra con un voltaje nominal de 12~24 V. La fuente de alimentación se conecta a través del conector de bloque de terminales de alimentación de 2 pines.
POE (opcional)
El producto estándar no incluye un módulo PoE por defecto, Seeed puede proporcionar servicios de soldadura y ensamblaje PoE para pedidos de personalización por lotes bajo solicitud, por favor contacte [email protected],
Si el módulo PoE está instalado, el puerto LAN1 del reTerminal DM puede soportar alimentación PoE, proporcionando una forma conveniente y eficiente de alimentar el dispositivo a través de Ethernet. Esta opción simplifica el proceso de instalación y reduce la cantidad de cableado requerido, convirtiéndolo en una solución ideal para aplicaciones con fuentes de alimentación limitadas o donde las tomas de corriente no están fácilmente disponibles.
- Entrada PoE: Rango 44~57V; Típico 48V
- Salida PoE: 12V, 1.1A Máx.
Consumo de Energía
Por favor, consulte la tabla a continuación para el consumo de energía probado del reTerminal DM en el laboratorio de Seeed Studio. Tenga en cuenta que este valor es solo de referencia, ya que los métodos de prueba y el entorno pueden resultar en variaciones en los resultados.
| Estado | Voltaje | Corriente | Consumo de Energía | Descripción |
|---|---|---|---|---|
| Apagado | 0.6mA | Prueba de consumo de energía estático en estado de apagado y sin alimentación. | ||
| Inactivo | 24V | 0.165A | 3.96W | Para probar la corriente de entrada al suministrar energía de 24V al dispositivo reTerminal DM a través del conector Terminal mientras ejecuta el sistema predeterminado de Seeed Studio, sin ejecutar ningún programa de prueba. |
| Carga Completa | 24V | 0.37A | 8.88W | Configurar la CPU para ejecutar a carga completa usando el comando "stress -c 4", mientras reproduce un video y realiza comunicación CAN y RS485. Sin dispositivos externos conectados. |
Encendido y Apagado
El reTerminal DM no viene con un botón de encendido por defecto, y el sistema se iniciará automáticamente una vez que se conecte la alimentación. Al apagar, por favor seleccione la opción de apagado en el sistema operativo y espere a que el sistema se apague completamente antes de cortar la alimentación. Para reiniciar el sistema, simplemente reconecte la alimentación.
Tenga en cuenta que después del apagado, por favor espere al menos 10 segundos antes de reiniciar el sistema para permitir que los condensadores internos se descarguen completamente.
Diagrama de Bloques

Bloque I2C

Interfaz
Micrófono
El reTerminal DM está equipado con dos micrófonos MEMS ubicados en los lados izquierdo y derecho debajo de la pantalla. Estos micrófonos pueden configurarse como un arreglo de micrófono dual, proporcionando capacidades superiores de captación de sonido. Los micrófonos se comunican con el chip codec de audio a través de la interfaz I2S, mientras que el chip codec se comunica con CM4 a través de la interfaz PCM. El chip codec de audio seleccionado para el reTerminal DM es el TI TLV320AIC3104 Low-Power Stereo Audio Codec.
Es importante tener en cuenta que para lograr una clasificación IP65 para el panel frontal, las aberturas del micrófono están cubiertas con una membrana acústica impermeable. Por favor evite usar objetos punzantes para tocar las aberturas del micrófono.
Para interfaz con el Micrófono:
Por favor abra la aplicación Terminal en el dispositivo y escriba arecord -l para encontrar el controlador del Micrófono:

Para grabar el audio puede usar la aplicación audacity, por favor use sudo apt install audacity para instalar la aplicación audacity:
Por favor abra audacity para abrir la aplicación y haga clic en grabar para grabar audio desde los micrófonos integrados:

Indicador LED

El reTerminal DM cuenta con tres indicadores LED que sirven para señalar el estado operacional de la máquina. Por favor consulte la tabla a continuación para las funciones específicas y estados de cada LED:
Asignación de pines LED
| Etiqueta | Señal | Fuente de Señal | Color | Descripción |
|---|---|---|---|---|
| PWR | LED_nPWR | CM4 | Amarillo | Usado para indicar la alimentación del CM4. Cuando el CM4 está encendido normalmente, el LED se encenderá |
| USER | PCA9535 - GPIO | Rojo | Función definida por el usuario | |
| ACT | LED_nACT | CM4 | Verde | Usado para indicar varios estados del sistema. Ver la tabla a continuación. |
Tabla de estado ACT
| Destellos largos | Destellos cortos | Estado |
|---|---|---|
| 0 | 3 | Falla genérica al arrancar |
| 0 | 4 | start*.elf no encontrado |
| 0 | 7 | Imagen del kernel no encontrada |
| 0 | 8 | Falla de SDRAM |
| 0 | 9 | SDRAM insuficiente |
| 0 | 10 | En estado HALT |
| 2 | 1 | Partición no FAT |
| 2 | 2 | Falló al leer de la partición |
| 2 | 3 | Partición extendida no FAT |
| 2 | 4 | Discrepancia de firma/hash de archivo - Pi 4 |
| 4 | 4 | Tipo de placa no soportado |
| 4 | 5 | Error fatal de firmware |
| 4 | 6 | Falla de alimentación tipo A |
| 4 | 7 | Falla de alimentación tipo B |
Si el LED ACT parpadea en un patrón regular de cuatro parpadeos, no puede encontrar bootcode (start.elf)
Si el LED ACT parpadea en un patrón irregular entonces el arranque ha comenzado.
Si el LED ACT no parpadea, entonces el código EEPROM podría estar corrupto, intente de nuevo sin nada conectado para asegurarse.
Para más detalles por favor consulte el foro de Raspberry Pi:
STICKY: Is your Pi not booting? (The Boot Problems Sticky) - Raspberry Pi Forums
Para más detalles por favor consulte el foro de Raspberry Pi: https://forums.raspberrypi.com//viewtopic.php?f=28&t=58151
Para activar el LED USER por favor use el siguiente comando:
sudo -i
echo 0 > /sys/class/leds/usr-led/brightness
echo 1 > /sys/class/leds/usr-led/brightness
Debería ver el LED USER encenderse con color rojo.
Sensor de Luz

El sensor de luz, ubicado en la parte inferior derecha de la pantalla, es capaz de detectar la intensidad de luz ambiental y ajustar automáticamente el brillo de la pantalla para proporcionar una experiencia de visualización óptima mientras conserva energía. El sensor de luz se comunica con el CM4 a través del protocolo I2C.
La dirección I2C es 0x29.
Para interfaz con el sensor de luz:
- Paso 1. Ingrese al siguiente directorio
cd /sys/bus/iio/devices/iio:device0
- Paso 2. Escriba lo siguiente para obtener el valor de intensidad de luz en Lux
cat in_illuminance_input

Zumbador

El reTerminal DM cuenta con un zumbador activo ubicado en la esquina inferior derecha de la pantalla, que puede usarse para varios propósitos como alarmas y notificaciones de eventos. El zumbador es controlado a través del IC de expansión GPIO PCA9535, que proporciona canales adicionales de E/S digital para el dispositivo.
Para probar y controlar el zumbador puede simplemente establecer 1 o 0 al archivo /sys/class/leds/usr-buzzer/brightness:

Terminales Multifuncionales

Tabla de comparación de terminales y señales
| 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 |
Tabla de asignación de pines de terminal
| Pin | Serigrafía | Señal | Descripción |
|---|---|---|---|
| 1 | CH | CANH | Señal CAN diferencial alta |
| 2 | CL | CANL | Señal CAN diferencial baja |
| 3 | GS | GND_ISO | Señal de tierra aislada |
| 4 | RA | RS485A | Señal RS485 diferencial A |
| 5 | RB | RS485B | Señal RS485 diferencial B |
| 6 | GS | GND_ISO | Señal de tierra aislada |
| 7 | RT | RS232_TX | Extremo de transmisión de señal RS232 |
| 8 | RX | RS232_RX | Extremo de recepción de señal RS232 |
| 9 | GD | GND | Tierra de la placa principal |
| 10 | GD | GND | Tierra de la 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 | Señal de tierra de entrada, conectada con GND vía 1MΩ |
| 16 | D1 | DO1 | Salida digital 1 |
| 17 | D2 | DO2 | Salida digital 2 |
| 18 | D3 | DO3 | Salida digital 3 |
| 19 | D4 | DO4 | Salida digital 4 |
| 20 | GO | GND_DO | Señal de tierra de salida, conectada con GND vía 0Ω |
DI/DO
El reTerminal DM soporta 4 canales de entrada digital y 4 canales de salida digital, todos los cuales están ópticamente aislados para proteger efectivamente la placa principal de picos de voltaje u otras perturbaciones eléctricas.

Tabla de asignación de pines DI/DO
| Pin | Señal CM4 | Rango de Voltaje Típico | Voltaje Máx. | Capacidad de Corriente Nominal |
|---|---|---|---|---|
| DI1 | GPIO16 | 5-24V DC | 30V DC | |
| DI2 | GPIO17 | 5-24V DC | 30V DC | |
| DI3 | GPIO22 | 5-24V DC | 30V DC | |
| DI4 | GPIO23 | 5-24V DC | 30V DC | |
| GND_DI | ||||
| DO1 | GPIO24 | 5-24V DC | 30V DC | 500mA |
| DO2 | GPIO25 | 5-24V DC | 30V DC | 500mA |
| DO3 | GPIO26 | 5-24V DC | 30V DC | 500mA |
| DO4 | GPIO6 | 5-24V DC | 30V DC | 500mA |
| GND_DO |
La tierra para las señales de entrada es diferente de la tierra para las señales de salida. La tierra para las señales de entrada debe conectarse al pin GND_DI, mientras que la tierra para las señales de salida debe conectarse al pin GND_DO.
La lógica negativa utilizada para las entradas y salidas digitales del reTerminal DM, la relación de nivel lógico entre Terminal IO y CM4 GPIO se muestra en la tabla a continuación.
| Entrada Digital Terminal | Señal Detectada CM4 GPIO |
|---|---|
| Bajo | Alto |
| Alto | Bajo |
| Salida CM4 GPIO | Salida Digital Terminal |
|---|---|
| Alto | Bajo |
| Bajo | Alto |
En esta sección usaremos la herramienta raspi-gpio para probar con GPIOs, puedes usar raspi-gpio help para ver el manual:

Para obtener el estado actual de todos los GPIOs, por favor ingresa el siguiente comando en la Terminal:
raspi-gpio get

Entrada Digital
Aquí hay un esquema que muestra cómo cablear sensores a DI:

Para obtener el estado específico del GPIO, por favor ingresa el siguiente comando en la Terminal:
raspi-gpio get 16

donde el estado actual del GPIO16 está configurado como INPUT y pulling Down el nivel actual del pin es 1 lo que significa High lo que también significa que la Entrada Digital Terminal actual DI1 es Low según la tabla anterior
Pongamos una señal High en el DI1 conectando el terminal DI1 al pin Positive de la fuente de 5V, luego la Ground de la fuente de 5V al GND_DI
raspi-gpio get 16

Donde el nivel actual del pin del GPIO16 es 0 lo que significa Low lo que también significa que la Entrada Digital Terminal actual DI1 es High según la tabla anterior
Salida Digital
Aquí hay un esquema que muestra cómo cablear Carga a DO:

Para controlar el valor del estado de salida digital, primero necesitamos configurar el estado del pin como Output y pulling Down:
#set current pin state
raspi-gpio set 24 op pd dh
#get the pin state after set
raspi-gpio get 24

Donde el GPIO24 correspondiente a DO1 está configurado al estado Output y pulling down, y el nivel del GPIO24 está configurado como High
Ahora configuremos el GPIO24 como Low lo que significa que la Salida DO1 se maneja como High.
#set current pin state
raspi-gpio set 24 dh
#get the pin state after set
raspi-gpio get 24

RS485

El reTerminal DM está equipado con una interfaz RS485 a través de su conector de 20 pines, que está aislada tanto para señal como para alimentación para garantizar una operación segura y confiable en aplicaciones industriales y de automatización. Las señales RS485 A y RS485 B están aisladas usando aislamiento capacitivo, que proporciona excelente inmunidad EMI y cumple con los requisitos de comunicación de alta velocidad de la interfaz RS485.
Una resistencia terminal de 120Ω ha sido instalada por defecto. La interfaz RS485 usa una fuente de alimentación aislada, lo que significa que la señal de tierra para dispositivos externos conectados a la interfaz RS485 debe conectarse al pin GND_ISO.
Para probar e interfaz con el RS485, debes preparar un adaptador USB a RS485, y por favor asegúrate de que la conexión sea la misma que se muestra a continuación:

Por favor nota que el puerto RS485 es /dev/ttyACM1 o /dev/ttyCH340USB1 dependiendo de qué OS estés ejecutando.
Por favor usa tu herramienta de comunicación serie favorita en tu computadora host para realizar la prueba a continuación: ejecuta el código python en reTerminal DM para probar la conexión serie RS485, donde este código configurará el puerto serie RS485 como sigue
Baudrate -> 9600 Bytesize -> 8 bits Parity -> None Stopbits -> 1 Hardware flow control -> disabled
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

El conector de 20 pines del reTerminal DM también incluye una interfaz RS232, que no está aislada. Porque la comunicación RS232 típicamente usa niveles de voltaje CMOS y tiene distancias de comunicación cortas, haciéndola menos susceptible a interferencias electromagnéticas del entorno.
Por favor nota que el pin Ground necesita conectarse al pin GD junto al pin RX, asegúrate de que no sea el pin GS.
Aquí está el script python de prueba para enviar datos desde reTerminal DM a la computadora 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()
Aquí está el script python de prueba para recibir datos en reTerminal DM enviados desde la computadora 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

El reTerminal DM cuenta con una interfaz CAN que soporta el protocolo CAN FD (Controller Area Network Flexible Data-Rate). La interfaz CAN está aislada usando aislamiento capacitivo, que proporciona excelente protección EMI y asegura comunicación confiable en aplicaciones industriales y de automatización. Una resistencia terminal de 120Ω ha sido instalada por defecto.
La interfaz CAN usa una fuente de alimentación aislada, lo que significa que la señal de tierra para dispositivos externos conectados a la interfaz CAN debe conectarse al pin GND_ISO
Para probar e interfaz con el bus CAN: Por favor, conecta el adaptador USB a CAN como se muestra en la imagen a continuación:

- PASO 1: Instalar las CAN-utils
sudo apt install can-utils

CAN-utils es una colección de herramientas de depuración extremadamente útiles que utilizan la interfaz CAN. Incluye aplicaciones como:
- candump – Volcar paquetes CAN – mostrar, filtrar y registrar en disco.
- canplayer – Reproducir archivos de registro CAN.
- cansend – Enviar una sola trama.
- cangen – Generar tráfico aleatorio.
- canbusload – mostrar la utilización actual del bus CAN
El código fuente de CAN-utils se puede obtener del repositorio de GitHub.
- PASO 2: Configurar la interfaz CAN usando el siguiente comando:
sudo ip link set can0 up type can bitrate 500000
sudo ifconfig can0 txqueuelen 1000
sudo ip link set can0 up
- PASO 3: Descargar el código de prueba al reTerminal DM usando git
git clone https://github.com/limengdu/Seeed_reTerminal_Bridge_CAN_exmaple
- PASO 4: Compilar y ejecutar el código que envía los datos:
cd Seeed_reTerminal_Bridge_CAN_exmaple/
gcc cantransmit.c -o cantransmit
en tu computadora host Linux u otro reTerminal DM, puedes compilar y ejecutar el código que recibe los datos.
gcc canreceive.c -o canreceive
puedes ver los resultados, la imagen a continuación se realizó usando dos reTerminal DM:

USB
USB Tipo-A

Hay dos puertos USB 2.0 Tipo-A, a los cuales puedes conectar dispositivos USB como unidades flash, cámaras web, teclado y ratón, etc.
USB Tipo-C

USB Tipo-C es un puerto USB 2.0 utilizado para depuración serie o flasheo de imagen del SO dependiendo de la posición del interruptor de arranque. Para flashear el SO, consulta la página Wiki de Flasheo de SO
Ranura para Tarjeta SIM

El reTerminal DM utiliza una ranura para tarjeta SIM de tamaño estándar comúnmente encontrada en aplicaciones industriales, que requiere una tarjeta SIM estándar con dimensiones de 25mm x 15mm.
Ten en cuenta que la versión estándar del reTerminal DM no viene con un módulo 4G. Si requieres funcionalidad 4G, se debe comprar por separado un módulo 4G adicional. Por lo tanto, esta ranura para tarjeta SIM solo funciona si has colocado la versión compatible del módulo 4G en la ranura PCIe 4G.
Botón de Reinicio

Hay un Interruptor de Botón Pulsador Mini ubicado en el orificio de reinicio del reTerminal DM. Al presionar este botón con un objeto delgado, el CM4 puede ser reiniciado. Este botón está conectado al pin RUN_PG del CM4. Este pin cuando está alto señala que el CM4 ha iniciado. Llevar este pin a bajo reinicia el módulo.
Conector de Audio

El reTerminal DM tiene un conector de auriculares de 3.5mm, que soporta salida de sonido, y puede conectarse a auriculares externos, altavoces, etc.
El conector de auriculares solo soporta salida de sonido y no soporta la función de grabación de micrófono.

HDMI

El reTerminal DM cuenta con una interfaz HDMI nativa del CM4, soportando hasta salida de video 4K @ 60 fps. Es ideal para aplicaciones que requieren múltiples pantallas, permitiendo a los usuarios mostrar su contenido en pantallas externas grandes.
Ethernet RJ45

El reTerminal DM viene con una interfaz Ethernet Gigabit nativa del CM4 que soporta tres velocidades diferentes: 10/100/1000 Mbit/s. Se puede comprar un módulo PoE adicional para habilitar la entrega de energía sobre Ethernet (PoE) a través de esta interfaz, proporcionando energía al reTerminal DM.
Interfaz Interna
GPIO de 40 Pines
El diseño clásico de GPIO de 40 pines de Raspberry Pi se mantiene dentro del reTerminal DM, y la asignación de pines permanece igual que en la Raspberry Pi 4B. Los usuarios necesitan abrir la cubierta trasera para usar estos GPIOs. Debe notarse que debido a los recursos limitados del CM4 IO, el GPIO de 40 pines y muchas interfaces periféricas están multiplexadas, por lo que necesitas prestar especial atención al conflicto al usar GPIOs. Para información detallada de asignación de pines, consulta la siguiente tabla.
| Descripción | Multiplexación de pines | Multiplexación de pines | Descripción | |||
|---|---|---|---|---|---|---|
| Pin 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 | ||||
| Terminal de Bloque DI2 | DI2 | GPIO 17 | GPIO 18 | PCM_CLK | Conector de audio de 3.5mm | |
| Pines de interrupción para toque de pantalla | TP_INT | GPIO 27 | GND | |||
| Terminal de Bloque DI3 | DI3 | GPIO 22 | GPIO 23 | DI4 | Terminal de Bloque DI4 | |
| 3V3 | GPIO 24 | DO1 | Terminal de Bloque DO1 | |||
| Módulo CAN y LoRa® | SPI0_MOSI | GPIO 10 | GND | |||
| SPI0_MISO | GPIO 9 | GPIO 25 | DO2 | Terminal de Bloque DO2 | ||
| SPI0_SCLK | GPIO 11 | GPIO 8 | SPI0_CE0 | Pines de habilitación SPI para CAN | ||
| GND | GPIO 7 | SPI0_CE1 | Pines de habilitación SPI para LoRa® | |||
| ID_SD | ID_SC | |||||
| I2C_SCL | GPIO 5 | GND | ||||
| Terminal de Bloque DO4 | DO4 | GPIO 6 | GPIO 12 | CAN_INT | Pines de interrupción para CAN | |
| Pines de control de retroiluminación LCD | LCD_PWM | GPIO 13 | GND | |||
| Conector de audio de 3.5mm | PCM_FS | GPIO 19 | GPIO 16 | DI1 | Terminal de Bloque DI1 | |
| Terminal de Bloque DO3 | DO3 | GPIO 26 | GPIO 20 | PCM_DIN | Conector de audio de 3.5mm | |
| GND | GPIO 21 | PCM_DOUT | Conector de audio de 3.5mm |
RTC
El reTerminal DM cuenta con un circuito RTC que viene preinstalado con una batería CR2032, permitiéndole mantener la funcionalidad de cronometraje incluso en caso de pérdida de energía.
Usa el siguiente comando para cambiar el reloj de hardware con el reloj del sistema actual
sudo hwclock --systohc
Usa el siguiente comando para cambiar el reloj del sistema con el reloj de hardware actual
sudo hwclock --hctosys
Para ver el reloj de hardware actual
sudo hwclock -r

Watchdog
El reTerminal DM viene equipado con un circuito watchdog de hardware independiente que asegura el reinicio automático del sistema en caso de fallos anormales del sistema. El circuito watchdog se implementa a través del RTC y permite tiempos de alimentación flexibles de 1 a 255 segundos.
Para configurar el tiempo de timeout del watchdog en watchdog.conf, sigue estos pasos:
PASO 1: Abre el archivo watchdog.conf para editarlo, generalmente ubicado en /etc/watchdog.conf.
sudo nano /etc/watchdog.conf
PASO 2: Busca las opciones de configuración "watchdog-device" y "watchdog-timeout" bajo /etc/watchdog.conf, configúralas como sigue.
podrías experimentar un reinicio instantáneo cuando la opción watchdog-timeout se establece por debajo de 60, para utilizar el watchdog de hardware necesitas configurar el watchdog-device como /dev/watchdog1, donde la configuración predeterminada sin 1 está utilizando el dispositivo watchdog de 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 ejemplo, si quieres establecer el tiempo de timeout del watchdog a 60 segundos, puedes establecer el valor de watchdog-timeout a 60, lo que significa que si el watchdog no recibe una señal de reinicio dentro de 60 segundos, activará una operación de reinicio automático, asumiendo que el sistema se ha bloqueado.
puedes probar si el watchdog está activo con el siguiente comando, donde estos comandos pondrán el sistema en parada, ten cuidado al ejecutar los siguientes comandos:
sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
Ahora tu reTerminal DM debería haberse reiniciado después del tiempo que estableciste para el watchdog-timeout
Retroiluminación
Hay 6 niveles de brillo que puedes establecer para la retroiluminación, desde 0 que es apagar hasta 5 que es el brillo máximo. Puedes controlar el brillo usando los siguientes 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
Complemento Interno
Cámara

La interfaz de cámara CSI está reservada en la placa principal del reTerminal DM, que puede ser personalizada para soportar funciones de cámara. Ten en cuenta que debido al espacio limitado en el panel frontal, solo se pueden usar cámaras de tamaño pequeño. La solución actualmente probada rigurosamente utiliza la placa controladora de la cámara Raspberry Pi V2.0 + cámara personalizada de Seeed IMX219-77.
| Conector | Tipo de Conector | Paso de Pin | Carril | Orientación FPC |
|---|---|---|---|---|
| CSI0 | FPC de 15 pines | 1mm | 2 | Contactos dorados hacia abajo |
| CSI1 | FPC de 22 pines | 0.5mm | 4 | Contactos dorados hacia arriba |

Ten en cuenta que la versión estándar del reTerminal DM no viene con una abertura para cámara en el panel frontal, por lo tanto, la funcionalidad de cámara no está disponible para el producto estándar. Si tienes un requerimiento de cámara personalizada, contacta [email protected]
Módulo 4G

Materiales Requeridos
- reTerminal DM x 1
- Módulo 4G EC25-EUX x1
- Tarjeta SIM x1
Paso 1. Consulta la guía de Ensamblaje de Hardware del Módulo 4G EC25 para instalar el Módulo 4G EC25 en la ranura PCIe 4G/LTE donde deberías ver la serigrafía 4G/LTE, y también inserta la tarjeta SIM habilitada para 4G en la ranura de tarjeta SIM, antes de encender el sistema.
Paso 2. Verifica si el EC25-EUX es detectado usando lsusb
lsusb
lsusb -t

Paso 3. Instala la herramienta de comunicación serial minicom.
sudo apt install minicom
Paso 4. Conecta el módulo 4G EC25-EUX a través de minicom.
sudo minicom -D /dev/ttyUSB2 -b 1152008n1
una vez que la conexión serial se abra, escribe AT y presiona 'Enter', y deberías ver OK.

Paso 5. Habilita el módulo 4G para conectarse a la red 4G
En la misma ventana serial de minicom escribe:
AT+QCFG="usbnet"
Retornará algo como +QCFG: "usbnet",0, pero necesitamos que esté establecido en 1 (modo ECM), así que ingresa el siguiente comando:
AT+QCFG="usbnet",1
Luego ingresa el siguiente comando para forzar el reinicio del módem:
AT+CFUN=1,1
Luego puedes reiniciar o esperar un momento para que el módulo obtenga internet de tu operador de tarjeta SIM.
También puedes usar el comando ifconfig para consultar el estado de red del reTerminal DM.

Módulo LoraWAN®
reTerminal DM soporta tanto la versión USB como SPI del Módulo LoraWAN® WM1302, sin embargo la versión USB necesitará utilizar el Mini PCIe diseñado para el Módulo 4G, lo que significa que si quieres usar tanto el Módulo 4G como el Módulo LoraWAN® por favor elige la versión SPI del Módulo LoraWAN® WM1302.
- Módulo WM1302 SPI
- Módulo USB WM1302

Paso 1. Por favor consulte la guía de ensamblaje de hardware del módulo LoraWAN® para instalar el Módulo LoraWAN® SPI WM1302 en la ranura Mini PCIe LoraWAN® donde debería ver la serigrafía Lora.
Instale los paquetes necesarios build-essential (el paquete build essential es un paquete de Debian que contiene las herramientas necesarias para crear un paquete DEB desde código fuente) instalando el módulo.
sudo apt update
sudo apt install git
sudo apt-get install build-essential
Paso 2. escriba sudo raspi-config en la línea de comandos para abrir la Herramienta de Configuración de Software de Raspberry Pi:
- Seleccione Interface Options
- Seleccione SPI, luego seleccione Yes para habilitarlo
- Seleccione I2C, luego seleccione Yes para habilitarlo
- Seleccione Serial Port, luego seleccione No para "Would you like a login shell..." y seleccione Yes para "Would you like the serial port hardware..."
Después de esto, por favor reinicie Raspberry Pi para asegurarse de que estas configuraciones funcionen.
Paso 3. Descargue el código WM1302 a reTerminal y compílelo.
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
cd sx1302_hal
sudo make
Paso 4. Copie y modifique el 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 el script reset_lgw.sh con VIM como sigue:
#!/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 "------------------------------------"
Paso 5. reemplace el puerto SPI predeterminado del Módulo LoraWAN® en el archivo de configuración global_conf.json.sx1250.US915:
sed -i 's/spidev0.0/spidev0.1/g' global_conf.json.sx1250.US915
Paso 6. Iniciar Módulo LoraWAN®
Luego ejecute el siguiente código para iniciar el Módulo LoraWAN® según la versión de frecuencia de operación de su WM1302.
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 (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915
# for WM1302 LoRaWAN Gateway Module (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB

Por favor elija su servidor de red Lora® preferido server_address y el EUI gateway_ID en el global_conf.json.sx1250.xxxxx correspondiente y modifique el puerto up/down a 1700 para iniciar el concentrador.

Paso 1. Por favor consulte la guía de ensamblaje de hardware del módulo LoraWAN® para instalar el Módulo LoraWAN® USB WM1302 en la ranura Mini PCIe 4G donde debería ver la serigrafía 4G.

Paso 2. escriba sudo raspi-config en la línea de comandos para abrir la Herramienta de Configuración de Software de Raspberry Pi:
- Seleccione Interface Options
- Seleccione I2C, luego seleccione Yes para habilitarlo
- Seleccione Serial Port, luego seleccione No para "Would you like a login shell..." y seleccione Yes para "Would you like the serial port hardware..."
Después de esto, por favor reinicie Raspberry Pi para asegurarse de que estas configuraciones funcionen.
Paso 3. Descargue el código WM1302 a reTerminal y compílelo.
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
cd sx1302_hal
sudo make
Paso 4. Copie el script reset_lgw.sh
cp ~/sx1302_hal/tools/reset_lgw.sh ~/sx1302_hal/packet_forwarder/
Paso 5. reemplace el puerto USB del Módulo LoraWAN® en el archivo de configuración global_conf.json.sx1250.US915.USB:
Paso 5-1. Primero para obtener el puerto USB específico por favor siga los pasos a continuación:
lsusb
En mi caso nuestro WM1302 está usando el STMicroelectronics Virtual COM Port así que podemos obtener el id del producto 5740
Paso 5-2.
Luego obtenga el dispositivo usb con el número de ID de Producto 5740, En este caso obtenemos el número de puerto USB 1-1.4.1:
sudo dmesg | grep 5740
# Load ACM module
sudo modprobe cdc_acm
Entonces podríamos obtener el puerto del dispositivo como sigue:
sudo dmesg | grep 1-1.4.1
así que en mi caso el dispositivo USB es ttyACM2
Así que modifiquemos el dispositivo USB en la configuración global_conf.json.sx1250.US915.USB con el comando sed sed -i 's/search_string/replacement_string/g' filename, así que por favor siga el patrón como sed -i 's/ttyACM0/the_result_from_above' global_conf.json.sx1250.frequency_of_your_module.USB, tenga en cuenta que por favor reemplace the_result_from_above y frequency_of_your_module para su propia aplicación:
por ejemplo en mi caso:
sed -i 's/ttyACM0/ttyACM2/g' global_conf.json.sx1250.US915.USB
Por favor consulte los pasos mostrados en la imagen a continuación:

Paso 6. Iniciar Módulo LoraWAN®
Luego ejecute el siguiente código para iniciar el Módulo LoraWAN® según la versión de frecuencia de operación de su WM1302.
USB version
$ cd ~/sx1302_hal/packet_forwarder
$ ./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB

Por favor elija su servidor de red Lora® preferido y use el EUI ID como se muestra en la imagen anterior para configurar las conexiones.
Tarjeta de Expansión PCIe
El reTerminal DM cuenta con una interfaz PCIe que se deriva del CM4, que soporta PCIe 2.0 y teóricamente proporciona una velocidad máxima de transmisión de 5Gbps. Esto permite la expansión de varias interfaces de alta velocidad como Gigabit Ethernet y NVMe SSD. Hemos desarrollado múltiples tarjetas de expansión basadas en interfaces PCIe, USB e I2C para satisfacer diferentes requisitos de escenarios. Esto también facilita las necesidades de personalización.
Por favor tenga en cuenta que el producto estándar no incluye una tarjeta de expansión PCIe por defecto. Seeed puede proporcionar servicios de ensamblaje para pedidos de personalización en lotes.
POE
El reTerminal DM puede soportar el estándar IEEE 802.3af PD (Dispositivos Alimentados) agregando un módulo de alimentación PoE.
El reTerminal DM soporta alimentación PoE, pero el producto estándar no incluye un módulo PoE por defecto. Seeed puede proporcionar servicios de soldadura y ensamblaje PoE para pedidos de personalización en lotes. Sin embargo, si un cliente está probando una muestra, necesitará soldar y ensamblar el módulo PoE por sí mismo.
SSD
El reTerminal DM soporta SSD NVMe 2280 mediante el uso de una tarjeta de expansión PCIe. Es importante tener en cuenta que el PCIe del CM4 es gen2.0 con una velocidad teórica máxima de 5Gbps. Si está usando un SSD Gen3.0 o superior, puede que no sea capaz de alcanzar la velocidad máxima del SSD. Después de las pruebas, el reTerminal DM con SSD instalado puede alcanzar una velocidad máxima de escritura de 210MB/s y una velocidad máxima de lectura de 360MB/s. Si no está seguro de qué SSDs son compatibles, puede comprar el 112990247, SSD NVMe M.2 PCle Gen3x4 2280 de 512GB del sitio web oficial de Seeed.
La versión estándar del reTerminal DM no soporta SSD y requiere la compra de una tarjeta de expansión PCIe para habilitar esta característica.
Recursos Adicionales
- Hoja de Datos del reTerminal DM
- Manual de Usuario del reTerminal DM
- Diseño Esquemático del reTerminal DM y Diseño PCB y Archivos Gerber
- Archivo de Diseño Estructural del reTerminal DM.stp
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.