Introducción a reTerminal DM

reTerminal DM es una HMI robusta de código abierto de 10,1" (10.1") - un dispositivo maestro integrado para unificar el flujo de datos y gestionar el dispositivo in situ.
Basado en Raspberry Pi CM4 y, como un dispositivo todo en uno Panel PC, HMI, PLC y pasarela IIoT, reTerminal DM es una nueva generación de concentrador de sensado interactivo con una pantalla grande de grado robusto IP65.
Está equipado con una gran escalabilidad y conectividad híbrida, compatible con bus CAN, RS485, RS232, puerto Ethernet Gigabit y otras interfaces, así como potentes capacidades de comunicación inalámbrica como 4G, LoRa®, WiFi y BLE.
Aviso de compra: Los módulos 4G y LoRa® no vienen con reTerminal DM por defecto. Compra los módulos correspondientes según sea necesario, como el 4G bundle.
Opciones de personalización disponibles: branding del logotipo, embalaje y flasheo de firmware.
Características
- HMI, PLC, Panel PC y pasarela en uno: perfecto para dispositivos concentradores distribuidos
- Programación de bajo código para aplicaciones dirigidas por eventos: Node-RED integrado de forma nativa para edición basada en flujos y despliegue con un clic, compatible con todo el software que se ejecuta en Raspberry Pi
- Diseño robusto para entornos de trabajo hostiles: panel frontal IP65, temperatura de funcionamiento de -10~50°C
- Conectividad híbrida: compatible con 4G LTE, LoRaWAN®, WiFi, BLE, RS485/RS232, bus CAN, Ethernet 1000M, USB, HDMI
- Diseño de hardware y software de código abierto: impulsado por Raspberry Pi CM4, se admite la 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, compra los módulos correspondientes según sea necesario.
Especificaciones
| Básico | |
| CPU | CM4 |
| Quad-core [email protected] | |
| Memoria | 8GB |
| Almacenamiento | 32GB eMMC |
| Ranura M.2 SATA SSD 2280-B Key (opcional) | |
| Compatibilidad con SO | Raspbian SenseCraft Edge OS |
| Pantalla | |
| Tamaño | 10.1'' |
| Resolución máx. | 1280 x 800 |
| Máx. colores | 16.7M (8-bit) |
| Luminancia | 400 nit |
| Ángulo de visión | 170/170 H/V° |
| Vida útil de la retroiluminación | 30000 hrs |
| Tipo de toque | Capacitivo de 10 puntos |
| Dureza del lápiz | 7H |
| Vídeo y audio | |
| Vídeo | HDMI 2.0 |
| Audio | Micrófono x 2 |
| Zumbador | |
| Conector de audio de 3,5 mm | |
| 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 |
| GPIO de 40 pines | Interno |
| 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 | PoE de 12W (opcional) |
| Rango de alimentación | 12~24 DC |
| Entorno | |
| Grado de protección | Panel frontal IP65 |
| Temperatura de funcionamiento | -10~50 °C |
| Temperatura de almacenamiento | -20~70 °C |
| Humedad (funcionamiento) | 10~90% HR |
| Mecánico | |
| Dimensiones | 259.4 x 191 x 42.2 mm |
| Carcasa | Aleación de aluminio fundido a presión |
| Montaje | Panel, VESA, carril 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 base

Diagrama de alimentación

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

El reTerminal DM se alimenta con un voltaje nominal de 12~24 V. La fuente de alimentación se conecta mediante el 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 de PoE para pedidos de personalización por lotes bajo solicitud, por favor contacta con [email protected],
Si se instala el módulo PoE, el puerto LAN1 de reTerminal DM puede admitir alimentación PoE, proporcionando una forma cómoda 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 necesario, lo que la convierte en una solución ideal para aplicaciones con fuentes de alimentación limitadas o donde no hay tomas de corriente fácilmente disponibles.
- Entrada PoE: Rango 44~57V; Típico 48V
- Salida PoE: 12V, 1.1A máx.
Consumo de energía
Consulta la siguiente tabla para conocer el consumo de energía probado de reTerminal DM en el laboratorio de Seeed Studio. Ten en cuenta que este valor es solo de referencia, ya que los métodos de prueba y el entorno pueden provocar 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 alimentación de 24V al dispositivo reTerminal DM a través del conector de terminal mientras se 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 que funcione a carga completa usando el comando "stress -c 4", mientras se reproduce un video y se 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, selecciona la opción de apagado en el sistema operativo y espera a que el sistema se apague completamente antes de cortar la alimentación. Para reiniciar el sistema, simplemente vuelve a conectar la alimentación.
Ten en cuenta que después de apagar, espera 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 situados en los lados izquierdo y derecho debajo de la pantalla. Estos micrófonos se pueden configurar como una matriz de micrófonos dual, proporcionando capacidades superiores de captación de sonido. Los micrófonos se comunican con el chip códec de audio a través de la interfaz I2S, mientras que el chip códec se comunica con el CM4 a través de la interfaz PCM. El chip códec 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. Evita usar objetos afilados para tocar las aberturas del micrófono.
Para interactuar con el micrófono:
Abre la aplicación Terminal en el dispositivo y escribe arecord -l para encontrar el controlador del micrófono:

Para grabar el audio puedes usar la aplicación audacity, utiliza sudo apt install audacity para instalar la aplicación audacity:
Abre audacity para abrir la aplicación y haz 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 de funcionamiento de la máquina. Consulta la tabla siguiente para conocer las funciones y estados específicos de cada LED:
Asignación de pines del LED
| Etiqueta | Señal | Fuente de señal | Color | Descripción |
|---|---|---|---|---|
| PWR | LED_nPWR | CM4 | Amarillo | Se utiliza para indicar la alimentación del CM4. Cuando el CM4 está alimentado normalmente, el LED se encenderá |
| USER | PCA9535 - GPIO | Rojo | Función definida por el usuario | |
| ACT | LED_nACT | CM4 | Verde | Se utiliza para indicar varios estados del sistema. Consulta la tabla siguiente. |
Tabla de estado de ACT
| Destellos largos | Destellos cortos | Estado |
|---|---|---|
| 0 | 3 | Fallo genérico de arranque |
| 0 | 4 | start*.elf no encontrado |
| 0 | 7 | Imagen del kernel no encontrada |
| 0 | 8 | Fallo de SDRAM |
| 0 | 9 | SDRAM insuficiente |
| 0 | 10 | En estado HALT |
| 2 | 1 | Partición no FAT |
| 2 | 2 | Error al leer desde la partición |
| 2 | 3 | Partición extendida no FAT |
| 2 | 4 | No coincide la firma/hash del archivo - Pi 4 |
| 4 | 4 | Tipo de placa no compatible |
| 4 | 5 | Error de firmware fatal |
| 4 | 6 | Fallo de alimentación tipo A |
| 4 | 7 | Fallo de alimentación tipo B |
Si el LED ACT parpadea con un patrón regular de cuatro destellos, no puede encontrar el bootcode (start.elf)
Si el LED ACT parpadea con un patrón irregular, entonces el arranque ha comenzado.
Si el LED ACT no parpadea, entonces el código EEPROM podría estar dañado, inténtalo de nuevo sin nada conectado para asegurarte.
Para más detalles, consulta el foro de Raspberry Pi:
STICKY: Is your Pi not booting? (The Boot Problems Sticky) - Raspberry Pi Forums
Para más detalles, consulta el foro de Raspberry Pi: https://forums.raspberrypi.com//viewtopic.php?f=28&t=58151
Para activar el LED USER utiliza el siguiente comando:
sudo -i
echo 0 > /sys/class/leds/usr-led/brightness
echo 1 > /sys/class/leds/usr-led/brightness
Deberías ver que el LED USER se enciende en color rojo.
Sensor de luz

El sensor de luz, situado en la parte inferior derecha de la pantalla, es capaz de detectar la intensidad de la luz ambiental y ajustar automáticamente el brillo de la pantalla para proporcionar una experiencia de visualización óptima mientras ahorra energía. El sensor de luz se comunica con el CM4 a través del protocolo I2C.
La dirección I2C es 0x29.
Para interactuar con el sensor de luz:
- Paso 1. Entra en el siguiente directorio
cd /sys/bus/iio/devices/iio:device0
- Paso 2. Escribe 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 situado en la esquina inferior derecha de la pantalla, que se puede utilizar para diversos fines, como alarmas y notificaciones de eventos. El zumbador se controla a través del CI de expansión GPIO PCA9535, que proporciona canales adicionales de E/S digitales para el dispositivo.
Para probar y controlar el zumbador simplemente puedes establecer 1 o 0 en el archivo /sys/class/leds/usr-buzzer/brightness:

Terminales multifuncionales

Tabla de comparación de terminal y señal
| 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 del 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 base |
| 10 | GD | GND | Tierra de la placa base |
| 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 a GND a través de 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 a GND a través de 0Ω |
DI/DO
El reTerminal DM admite 4 canales de entrada digital y 4 canales de salida digital, todos los cuales están ópticamente aislados para proteger eficazmente la placa base de picos de voltaje u otras perturbaciones eléctricas.

Tabla de asignación de pines DI/DO
| Pin | Señal CM4 | Rango típico de voltaje | Voltaje máx. | Capacidad de corriente 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 |
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 de reTerminal DM, y la relación de nivel lógico entre Terminal IO y CM4 GPIO se muestra en la tabla siguiente.
| Entrada digital del terminal | Señal detectada por CM4 GPIO |
|---|---|
| Bajo | Alto |
| Alto | Bajo |
| Salida CM4 GPIO | Salida digital del terminal |
|---|---|
| Alto | Bajo |
| Bajo | Alto |
En esta sección usaremos la herramienta raspi-gpio para probar con los GPIO, puedes usar raspi-gpio help para ver el manual:

Para obtener el estado actual de todos los GPIO, introduce el siguiente comando en el Terminal:
raspi-gpio get

Entrada digital
Aquí se muestra un esquema de cómo cablear sensores a DI:

Para obtener el estado de un GPIO específico, introduce el siguiente comando en el 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 actual del terminal 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 5V source, y luego la Ground de la 5V source 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 actual del terminal DI1 es High según la tabla anterior
Salida digital
Aquí se muestra un esquema de cómo cablear la carga a DO:

Para controlar el valor de estado de la salida digital, primero debemos 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 que corresponde a DO1 está configurado en estado Output y pulling down, y el nivel de GPIO24 está configurado en High
Ahora configuremos el GPIO24 a Low, lo que significa que la salida de DO1 se conduce 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, la cual está aislada tanto para señal como para alimentación para garantizar un funcionamiento seguro y fiable en aplicaciones robustas y de automatización. Las señales RS485 A y RS485 B están aisladas mediante aislamiento capacitivo, lo que proporciona una excelente inmunidad al EMI y cumple con los requisitos de comunicación de alta velocidad de la interfaz RS485.
Se ha instalado por defecto una resistencia terminal de 120Ω. La interfaz RS485 utiliza una fuente de alimentación aislada, lo que significa que la señal de tierra de los dispositivos externos conectados a la interfaz RS485 debe conectarse al pin GND_ISO.
Para probar e interconectar con la RS485, debes preparar un adaptador USB a RS485 y asegurarte de que la conexión sea la misma que la siguiente:

Ten en cuenta que el puerto RS485 es /dev/ttyACM1 o /dev/ttyCH340USB1 dependiendo de qué sistema operativo estés ejecutando.
Utiliza tu herramienta de comunicación serie favorita en tu ordenador host para realizar la siguiente prueba: ejecuta el código de python en reTerminal DM para probar la conexión serie RS485, donde este código configurará el puerto serie RS485 de la siguiente manera
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. Esto se debe a que la comunicación RS232 normalmente utiliza niveles de voltaje CMOS y tiene distancias de comunicación cortas, lo que la hace menos susceptible a interferencias electromagnéticas del entorno.
Ten en cuenta que el pin de tierra debe conectarse al pin GD junto al pin RX, asegúrate de que no sea el pin GS.
Aquí está el script de prueba en python para enviar datos desde reTerminal DM al ordenador 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 de prueba en python para recibir datos en reTerminal DM enviados desde el ordenador 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 incorpora una interfaz CAN que es compatible con el protocolo CAN FD (Controller Area Network Flexible Data-Rate). La interfaz CAN está aislada mediante aislamiento capacitivo, lo que proporciona una excelente protección contra EMI y garantiza una comunicación fiable en aplicaciones robustas y de automatización. Se ha instalado por defecto una resistencia terminal de 120Ω.
La interfaz CAN utiliza una fuente de alimentación aislada, lo que significa que la señal de tierra de los dispositivos externos conectados a la interfaz CAN debe conectarse al pin GND_ISO
Para probar e interconectar con el bus CAN: Por favor, conecta el adaptador USB a CAN como se muestra en la imagen siguiente:

- PASO 1: Instalar 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 – Vuelca paquetes CAN – los muestra, filtra y registra en disco.
- canplayer – Reproduce archivos de registro CAN.
- cansend – Envía una sola trama.
- cangen – Genera tráfico aleatorio.
- canbusload – muestra la utilización actual del bus CAN
El código fuente de CAN-utils se puede obtener desde el repositorio de GitHub.
- PASO 2: Configura 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: Descarga el código de prueba a reTerminal DM usando git
git clone https://github.com/limengdu/Seeed_reTerminal_Bridge_CAN_exmaple
- PASO 4: Compila y ejecuta el código que envía los datos:
cd Seeed_reTerminal_Bridge_CAN_exmaple/
gcc cantransmit.c -o cantransmit
en tu ordenador 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 siguiente se ha realizado usando dos reTerminal DM:

USB
USB Tipo A

Hay dos puertos USB 2.0 Tipo A, a los que 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 usado para depuración serie o para grabar la imagen del sistema operativo, dependiendo de la posición del interruptor de arranque. Para la grabación del sistema operativo, consulta la página Wiki de Flashing OS
Ranura para tarjeta SIM

El reTerminal DM utiliza una ranura para tarjeta SIM de tamaño estándar que se encuentra comúnmente en aplicaciones robustas, la cual requiere una tarjeta SIM estándar con dimensiones de 25 mm x 15 mm.
Ten en cuenta que la versión estándar de reTerminal DM no viene con un módulo 4G. Si necesitas 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 4G PCIe.
Botón de reinicio

Hay un mini pulsador ubicado en el orificio de reinicio del reTerminal DM. Al presionar este botón con un objeto fino, se puede reiniciar el CM4. Este botón está conectado al pin RUN_PG del CM4. Cuando este pin está en alto, indica que el CM4 ha arrancado. Llevar este pin a nivel bajo reinicia el módulo.
Conector de audio

reTerminal DM tiene un conector de auriculares de 3,5 mm, que admite salida de sonido y se puede conectar a auriculares externos, altavoces, etc.
El conector de auriculares solo admite salida de sonido y no admite la función de grabación de micrófono.

HDMI

El reTerminal DM incorpora una interfaz HDMI nativa del CM4, que admite salida de vídeo de hasta 4K a 60 fps. Es ideal para aplicaciones que requieren múltiples pantallas, permitiendo a los usuarios enviar su contenido a pantallas externas de gran tamaño.
Ethernet RJ45

El reTerminal DM viene con una interfaz Ethernet Gigabit nativa del CM4 que admite tres velocidades diferentes: 10/100/1000 Mbit/s. Se puede comprar un módulo PoE adicional para habilitar la alimentación a través de Ethernet (PoE) mediante 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 sigue siendo la misma que en la Raspberry Pi 4B. Los usuarios deben abrir la tapa trasera para usar estos GPIO. Cabe señalar que, debido a los recursos limitados de E/S del CM4, los GPIO de 40 pines y muchas interfaces periféricas están multiplexados, por lo que debes prestar especial atención a los conflictos al usar los GPIO. Para obtener información detallada sobre la 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 | ||||
| Bloque Terminal DI2 | DI2 | GPIO 17 | GPIO 18 | PCM_CLK | Conector de audio de 3,5 mm | |
| Pines de interrupción para la pantalla táctil | TP_INT | GPIO 27 | GND | |||
| Bloque Terminal DI3 | DI3 | GPIO 22 | GPIO 23 | DI4 | Bloque Terminal DI4 | |
| 3V3 | GPIO 24 | DO1 | Bloque Terminal DO1 | |||
| Módulo CAN y LoRa® | SPI0_MOSI | GPIO 10 | GND | |||
| SPI0_MISO | GPIO 9 | GPIO 25 | DO2 | Bloque Terminal 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 | ||||
| Bloque de terminales DO4 | DO4 | GPIO 6 | GPIO 12 | CAN_INT | Pines de interrupción para CAN | |
| Pines de control de la retroiluminación LCD | LCD_PWM | GPIO 13 | GND | |||
| Conector de audio de 3,5 mm | PCM_FS | GPIO 19 | GPIO 16 | DI1 | Bloque de terminales DI1 | |
| Bloque de terminales DO3 | DO3 | GPIO 26 | GPIO 20 | PCM_DIN | Conector de audio de 3,5 mm | |
| GND | GPIO 21 | PCM_DOUT | Conector de audio de 3,5 mm |
RTC
El reTerminal DM incorpora un circuito RTC que viene preinstalado con una batería CR2032, lo que le permite mantener la función de cronometraje incluso en caso de pérdida de alimentación.
Utiliza el siguiente comando para cambiar el reloj de hardware con el reloj actual del sistema
sudo hwclock --systohc
Utiliza 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 garantiza el reinicio automático del sistema en caso de bloqueos anómalos 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 espera del watchdog en watchdog.conf, sigue estos pasos:
PASO 1: Abre el archivo watchdog.conf para editarlo, normalmente ubicado en /etc/watchdog.conf.
sudo nano /etc/watchdog.conf
PASO 2: Busca las opciones de configuración "watchdog-device" y "watchdog-timeout" en /etc/watchdog.conf, configúralas como se indica a continuación.
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 el 1 utiliza 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 espera del watchdog en 60 segundos, puedes establecer el valor de watchdog-timeout en 60, lo que significa que si el watchdog no recibe una señal de reinicio en 60 segundos, activará una operación de reinicio automático, suponiendo que el sistema se haya bloqueado.
puedes probar si el watchdog está activo con el siguiente comando, donde estos comandos pondrán el sistema en detención; por favor 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 hayas configurado en el watchdog-timeout
Retroiluminación
Hay 6 niveles de brillo que puedes configurar para la retroiluminación, desde 0 que es apagado hasta 5 que es el brillo máximo. Puedes controlar el brillo utilizando 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 se puede personalizar para admitir funciones de cámara. Ten en cuenta que, debido al espacio limitado en el panel frontal, solo se pueden utilizar cámaras de tamaño pequeño. La solución actualmente probada rigurosamente utiliza la placa controladora de cámara Raspberry Pi V2.0 + la cámara personalizada de Seeed IMX219-77.
| Conector | Tipo de conector | Paso de pin | Carril | Orientación del FPC |
|---|---|---|---|---|
| CSI0 | FPC de 15 pines | 1mm | 2 | Dedos dorados hacia abajo |
| CSI1 | FPC de 22 pines | 0.5mm | 4 | Dedos 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 requisito personalizado de cámara, por favor contacta con [email protected]
Módulo 4G

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

Paso 3. Instala la herramienta de comunicación serie 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 serie se haya abierto, escribe AT y pulsa 'Enter', y deberías ver OK.

Paso 5. Habilita el módulo 4G para conectarse a la red 4G
En la misma ventana serie de minicom escribe:
AT+QCFG="usbnet"
Devolverá algo como +QCFG: "usbnet",0, pero necesitamos que esté configurado en 1 (modo ECM), así que introduce el siguiente comando:
AT+QCFG="usbnet",1
Luego introduce el siguiente comando para forzar el reinicio del módem:
AT+CFUN=1,1
Luego puedes reiniciar o esperar un rato 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 es compatible tanto con la versión USB como con la versión SPI del WM1302 LoraWAN® Module, 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® elige la versión SPI del WM1302 LoraWAN® Module.
- WM1302 SPI Module
- WM1302 USB Module

Paso 1. Consulta la guía LoraWAN® Module Hardware assembly para instalar el WM1302 SPI LoraWAN® Module en la ranura LoraWAN® Mini PCIe donde deberías ver la serigrafía Lora.
Instale los paquetes necesarios build-essential (el paquete esencial de compilación es un paquete de Debian que contiene las herramientas necesarias para crear un paquete DEB a partir del 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 Raspberry Pi Software Configuration Tool:
- 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, reinicie Raspberry Pi para asegurarse de que estos ajustes funcionen.
Paso 3. Descargue el código WM1302 en 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 un editor de texto como se muestra a continuación:
#!/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. Inicie el Módulo LoraWAN®
Elija su servidor de red LoRaWAN preferido server_address y el gateway EUI gateway_ID en el archivo correspondiente global_conf.json.sx1250.xxxxx según el módulo que esté utilizando, y modifique el up/down port a 1700. Luego ejecute el siguiente código para iniciar el 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


Paso 1. Consulte la guía LoraWAN® Module Hardware assembly para instalar el WM1302 USB LoraWAN® Module en la ranura 4G Mini PCIe donde debería ver la serigrafía 4G.

Paso 2. escriba sudo raspi-config en la línea de comandos para abrir la herramienta Raspberry Pi Software Configuration Tool:
- 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, reinicie Raspberry Pi para asegurarse de que estos ajustes funcionen.
Paso 3. Descargue el código WM1302 en 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, siga los pasos a continuación:
lsusb
En mi caso, nuestro WM1302 está usando el STMicroelectronics Virtual COM Port por lo que podemos obtener el id de producto 5740
Paso 5-2.
Luego obtenga el dispositivo USB con el número de Product ID 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 podemos obtener el puerto del dispositivo como se muestra a continuación:
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, por lo que siga el patrón sed -i 's/ttyACM0/the_result_from_above' global_conf.json.sx1250.frequency_of_your_module.USB. Tenga en cuenta que debe reemplazar 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
Consulte los pasos que se muestran en la imagen a continuación:

Paso 6. Inicie el Módulo LoraWAN®
Elija su servidor de red LoRaWAN preferido server_address y el gateway EUI gateway_ID en el archivo correspondiente global_conf.json.sx1250.xxxxx según el módulo que esté utilizando, y modifique el up/down port a 1700. Luego ejecute el siguiente código para iniciar el 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

Tarjeta de expansión PCIe
El reTerminal DM cuenta con una interfaz PCIe que se deriva del CM4, la cual es compatible con 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 Ethernet Gigabit y NVMe SSD. Hemos desarrollado múltiples tarjetas de expansión basadas en interfaces PCIe, USB e I2C para satisfacer los requisitos de diferentes escenarios. Esto también facilita las necesidades de personalización.
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 por lotes.
POE
El reTerminal DM puede ser compatible con el estándar IEEE 802.3af PD (Powered Devices) añadiendo un módulo de alimentación PoE.
El reTerminal DM admite alimentación PoE, pero el producto estándar no incluye un módulo PoE por defecto. Seeed puede proporcionar servicios de soldadura y ensamblaje de PoE para pedidos de personalización por lotes. Sin embargo, si un cliente está probando una muestra, deberá soldar y ensamblar el módulo PoE por sí mismo.
SSD
El reTerminal DM admite 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 máxima teórica de 5Gbps. Si está utilizando un SSD Gen3.0 o superior, es posible que no pueda 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é SSD son compatibles, puede comprar el 112990247, SSD NVMe M.2 PCle Gen3x4 2280 de 512GB desde el sitio web oficial de Seeed.
La versión estándar del reTerminal DM no admite SSD y requiere la compra de una tarjeta de expansión PCIe para habilitar esta función.
Recursos adicionales
- Hoja de datos de reTerminal DM
- Manual de usuario de reTerminal DM
- Diseño esquemático de reTerminal DM y diseño de PCB y archivos Gerber
- Archivo de diseño estructural de reTerminal DM.stp
Soporte técnico y debate sobre productos
Gracias por elegir nuestros productos. Estamos aquí para ofrecerte diferentes tipos de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a distintas preferencias y necesidades.