reTerminal DM Getting Started
reTerminal DM is A 10.1" open-source industrial HMI - an Integrated Device Master to unify data flow and manage the onsite device.
Based on Raspberry Pi CM4, and as a Panel PC, HMI, PLC, IIoT Gateway all-in-one device, reTerminal DM is a new generation of interactive sensing hub with an IP65 industrial-grade large screen.
It is equipped with rich scalability and hybrid connectivity, supporting CAN bus, RS485, RS232, Gigabit Ethernet port, and other interfaces, as well as powerful wireless communication capabilities such as 4G, LoRa®, WiFi, and BLE.
*4G and LoRa® modules does not come with reTerminal DM by default, please purchase the relevant modules accordingly, for 4G bundle
HMI, PLC, Panel PC and gateway in one: Perfect for the distributed hub devices Low code programming for event-driven applications: Natively integrated Node-RED for flow-based editing and one-click deployment, compatible with all software runs on Raspberry Pi Rugged design for harsh working environment: IP65 front panel, -10~50°C operating temperature Hybrid connectivity: Support 4G LTE, LoRaWAN®, WiFi, BLE, RS485/RS232, CAN bus, 1000M Ethernet, USB, HDMI Open-source design in software and hardware: Powered by Raspberry Pi CM4, welcome customization or derivatives Product warranty: Two-year warranty
*4G and LoRa® modules does not come with reTerminal DM by default, please purchase the relevant modules accordingly.
|Quad-core [email protected]|
|M.2 SATA SSD Slot 2280-B Key (optional)|
SenseCraft Edge OS
|Max. Resolution||1280 x 800|
|Max. Colors||16.7M (8-bit)|
|Viewing Angle||170/170 H/V°|
|Backlight Life||30000 hrs|
|Touch Type||10-point Capacitive|
|Audio||Microphone x 2|
|3.5mm Audio Jack|
|Ethernet||1 x 10/100/1000 Mbps|
|1 x 10/100/1000 Mbps (optional)|
|USB||2 x USB-A 2.0 Host|
|2 x USB 3.0 (optional)|
|RS485||1 x RS-485 > Terminal Block|
1 x RS-485 > DB9 (optional)
|RS232||1 x RS-232 > Terminal Block|
1 x RS-232 > DB9 (optional)
|CAN||1 x CAN-BUS > Terminal Block|
|DI||4 x DI > Terminal Block|
|DO||4 x DO > Terminal Block|
|LoRa®||Mini-PCIe for LoRaWAN® (optional)|
|Cellular||Mini-PCIe for 4G (optional)|
|Input||2-pin Terminal Block|
|PoE||12W PoE (optional)|
|Power Range||12~24 DC|
|Ingress Protection||IP65 Front Panel|
|Operating Temperature||-10~50 °C|
|Storage Temperature||-20~70 °C|
|Humidity (Operating)||10~90% RH|
|Dimension||259.4 x 191 x 42.2 mm|
|Enclosure||Die-cast Aluminum Alloy|
|Mounting||Panel, VESA, Din-Rail|
|CE, FCC, RoHS, Telec, REACH|
|RTC||High Accuracy RTC|
The reTerminal DM supports two power supply options: DC terminal and PoE port. By default, the reTerminal DM is powered through the DC terminal, while the PoE power supply is optional. This provides flexibility in power supply selection and allows for easy integration with various power sources.
The reTerminal DM is supplied with a nominal voltage of 12~24 V. The power supply is connected via the 2-pin power terminal block connector.
The standard product does not include a PoE module by default, Seeed can provide PoE soldering and assembly services for batch customization orders on request, please contact [email protected],
If the PoE module installed, the LAN1 port of reTerminal DM can support PoE power supply, providing a convenient and efficient way to power the device over Ethernet. This option simplifies the installation process and reduces the amount of cabling required, making it an ideal solution for applications with limited power sources or where power outlets are not readily available.
- PoE input: Range 44~57V; Typical 48V
- PoE output: 12V, 1.1A Max.
Please refer to the table below for the tested power consumption of reTerminal DM in Seeed Studio's laboratory. Please note that this value is for reference only, as the test methods and environment can result in variations in the results.
|Shutdown||0.6mA||Static power consumption test in shutdown and power-off state.|
|Idle||24V||0.165A||3.96W||To test the input current when supplying 24V power to the reTerminal DM device through the Terminal socket while running the default Seeed Studio system, without running any test programs.|
|Full Load||24V||0.37A||8.88W||Configure CPU to run at full load using the "stress -c 4" command, while playing a video and performing CAN & RS485 communication. No external devices connected.|
Power On and Power Off
The reTerminal DM does not come with a power button by default, and the system will automatically start up once power is connected. When shutting down, please select the shutdown option in the operating system and wait for the system to fully shut down before cutting off power. To restart the system, simply reconnect the power.
Please note that after shutting down, please wait for at least 10 seconds before restarting the system to allow for the internal capacitors to fully discharge.
The reTerminal DM is equipped with two MEMS microphones located on the left and right sides below the screen. These microphones can be conﬁgured as a dual microphone array, providing superior sound pickup capabilities. The microphones communicate with the audio codec chip through the I2S interface, while the codec chip communicates with CM4 through the PCM interface. The audio codec chip selected for the reTerminal DM is the TI TLV320AIC3104 Low-Power Stereo Audio Codec.
It's important to note that in order to achieve an IP65 rating for the front panel, the microphone openings are covered with a waterproof acoustic membrane. Please avoid using sharp objects to touch the microphone openings.
To interface with the Microphone:
Please open the
Terminal APP on device and type
arecord -l to find the Microphone driver:
To record the audio you can use the
audacity app, please use the
sudo apt install audacity to install the audacity app:
Please open the audacity to open the app and click record to records audo from the built-in microphones:
The reTerminal DM features three LED indicators that serve to signal the machine's operational status. Please refer to the table below for the speciﬁc functions and states of each LED:
LED pin assignment
|PWR||LED_nPWR||CM4||Yellow||Used to indicate the power supply of CM4. When the CM4 is powered on normally, the LED will light up|
|USER||PCA9535 - GPIO||Red||User deﬁned function|
|ACT||LED_nACT||CM4||Green||Used to indicate various states of the system. See the table below.|
ACT Status table
|Long ﬂashes||Short ﬂashes||Status|
|0||3||Generic failure to boot|
|0||4||start*.elf not found|
|0||7||Kernel image not found|
|0||10||In HALT state|
|2||1||Partition not FAT|
|2||2||Failed to read from partition|
|2||3||Extended partition not FAT|
|2||4||File signature/hash mismatch - Pi 4|
|4||4||Unsupported board type|
|4||5||Fatal ﬁrmware error|
|4||6||Power failure type A|
|4||7||Power failure type B|
If the ACT LED blinks in a regular four blink pattern, it cannot ﬁnd bootcode (start.elf)
If the ACT LED blinks in an irregular pattern then booting has started.
If the ACT LED doesn't blink, then the EEPROM code might be corrupted, try again without anything connected to make sure.
For more detail please check the Raspberry Pi forum:
STICKY: Is your Pi not booting? (The Boot Problems Sticky) - Raspberry Pi Forums
For more detail please check the Raspberry Pi forum: https://forums.raspberrypi.com//viewtopic.php?f=28&t=58151
To active the USER Led please use following command:
echo 0 > /sys/class/leds/usr-led/brightness
echo 1 > /sys/class/leds/usr-led/brightness
You should see the USER LED light up with red color.
The light sensor, located at the bottom right of the screen, is capable of detecting ambient light intensity and automatically adjusting screen brightness to provide an optimal viewing experience while conserving energy. The light sensor communicates with the CM4 through I2C protocol.
The I2C address is 0x29.
To interface with the light sensor:
- Step 1. Enter the following directory
- Step 2. Type the following to obtain the light intensity value in Lux
The reTerminal DM features an active buzzer located at the bottom right corner of the screen, which can be used for various purposes such as alarm and event notiﬁcations. The buzzer is controlled through the PCA9535 GPIO expansion IC, which provides additional digital I/O channels for the device.
To test and control the buzzer you can simply set the
0 to the
Terminal and signal comparison table
Terminal pin assignment table
|1||CH||CANH||Differential CAN signal high|
|2||CL||CANL||Differential CAN signal low|
|3||GS||GND_ISO||Isolated ground signal|
|4||RA||RS485A||Differential RS485 signal A|
|5||RB||RS485B||Differential RS485 signal B|
|6||GS||GND_ISO||Isolated ground signal|
|7||RT||RS232_TX||RS232 signal transmit end|
|8||RX||RS232_RX||RS232 signal receive end|
|11||I1||DI1||Digital input 1|
|12||I2||DI2||Digital input 2|
|13||I3||DI3||Digital input 3|
|14||I4||DI4||Digital input 4|
|15||GI||GND_DI||Input ground signal, connected with GND via 1MΩ|
|16||D1||DO1||Digital output 1|
|17||D2||DO2||Digital output 2|
|18||D3||DO3||Digital output 3|
|19||D4||DO4||Digital output 4|
|20||GO||GND_DO||Output ground signal,connected with GND via 0Ω|
The reTerminal DM supports 4 digital input and 4 digital output channels, all of which are optically isolated to effectively protect the mainboard from voltage spikes or other electrical disturbances.
DI/DO pin assignment table
|Pin||CM4 Signal||Typical Voltage Range||Max. Voltage||Rated Current Capacity|
|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|
|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|
The ground for the input signals is different from the ground for the output signals. The ground for the input signals should be connected to the GND_DI pin, while the ground for the output signals should be connected to the GND_DO pin.
The negative logic used for the digital inputs and outputs of reTerminal DM, the logic level relationship between Terminal IO and CM4 GPIO is shown in the table below.
|Terminal Digital Input||CM4 GPIO Detect Signal|
|CM4 GPIO Output||Terminal Digital Output|
In this setion we will use the
raspi-gpio tool to test with GPIOs, you can use the
raspi-gpio help to view the manual:
To get the current state of all the GPIOs, Please enter following command in the
To get specific GPIO status, Please enter following command in the
raspi-gpio get 16
where the current state of the
GPIO16 is set as
pulling Down the current pin level is
1 which means
High which also means the current Terminal Digital Input
Low according to the above table
Let's put a
High signal of the the
DI1 by connect the
DI1 terminal to the
Positive pin of the
5V source, then the
Ground from the
5V source to the
raspi-gpio get 16
Which the current pin level of the
0 which means
Low which also means the current Terminal Digital Input
High according to the above table
To Control the Digital output state value, first of all we need to set the pin state to
#set current pin state
raspi-gpio set 24 op pd dh
#get the pin state after set
raspi-gpio get 24
GPIO24 correspond to
DO1 is set to the
pulling down state, and the
GPIO24 level is set to
Now lets set the
Low which means
DO1 Output is driven as
#set current pin state
raspi-gpio set 24 dh
#get the pin state after set
raspi-gpio get 24
The reTerminal DM is equipped with an RS485 interface through its 20-pin connector, which is isolated for both signal and power to ensure safe and reliable operation in industrial and automation applications. The
RS485 A and
RS485 B signals are isolated using capacitive isolation, which provides excellent EMI immunity and meets the high-speed communication requirements of the RS485 interface.
A terminal resistor of 120Ω has been installed by default. The RS485 interface uses an isolated power supply, which means that the ground signal for external devices connected to the RS485 interface should be connected to the GND_ISO pin.
To test and interface with the RS485, you should prepare a USB to RS485 adapter, and please make sure the connection is the same as below:
Please note that the RS485 port is
/dev/ttyCH340USB1 depends which OS you are running.
Please use your favorite serial communication tool on your host computer for preform the test below: run the python code on reTerminal DM to test the RS485 serial connection, where this code will set the RS485 serial port as following
Baudrate -> 9600 Bytesize -> 8 bits Parity -> None Stopbits -> 1 Hardware flow control -> disabled
import serial, time
ser = serial.Serial()
ser.port = "/dev/ttyACM1"
ser.port = "/dev/ttyCH340USB1"
print('Neither /dev/ttyACM1 nor /dev/ttyCH340USB1 is present')
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
except Exception as ex:
print ("open serial port error " + str(ex))
ser.flushInput() #flush input buffer
ser.flushOutput() #flush output buffer
ser.write("rs485 communication is on, you can try to send data...\n".encode())
time.sleep(5) #wait 5s
numofline = 0
response = ser.readline()
numofline = numofline +1
if (numofline >= 1):
except Exception as e1:
print ("communicating error " + str(e1))
print ("open serial port error")
The reTerminal DM's 20-pin connector also includes an RS232 interface, which is not isolated. Because RS232 communication typically uses CMOS voltage levels and has short communication distances, making it less susceptible to electromagnetic interference from the environment.
Please note that the Ground pin needs to connected the
GD pin next to the
RX pin, make sure it is not the
Here is the test python script on sending data from reTerminal DM to host computer:
port = "/dev/ttyACM0"
port = "/dev/ttyCH340USB0"
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
print("rs232 starts now!\n")
ser.write("rs232 starts now!\n".encode())
counter += 1
Here is the test python script on receiving data on reTerminal DM send from host computer,
port = "/dev/ttyACM0"
port = "/dev/ttyCH340USB0"
print('Neither /dev/ttyACM0 nor /dev/ttyCH340USB0 is present')
ser = serial.Serial(
baudrate = 9600,
xonxoff = False, #disable software flow control
rtscts = False, #disable hardware (RTS/CTS) flow control
dsrdtr = False
print("Start receiving data now!\n")
if x != b'':
The reTerminal DM features a CAN interface that supports the CAN FD (Controller Area Network Flexible Data-Rate) protocol. The CAN interface is isolated using capacitive isolation, which provides excellent EMI protection and ensures reliable communication in industrial and automation applications. A terminal resistor of 120Ω has been installed by default.
The CAN interface uses an isolated power supply, which means that the ground signal for external devices connected to the CAN interface should be connected to the GND_ISO pin
To test and interface with CAN bus: Please connect the USB to CAN adapter like shown in the image below:
- STEP 1: Install the CAN-utils
sudo apt install can-utils
CAN-utils is a collection of extremely useful debugging tools using the CAN interface. It includes applications such as:
- candump – Dump can packets – display, filter and log to disk.
- canplayer – Replay CAN log files.
- cansend – Send a single frame.
- cangen – Generate random traffic.
- canbusload – display the current CAN bus utilisation
CAN-utils source can be obtained from the GitHub repository.
- STEP 2: Setup CAN interface using the following command:
sudo ip link set can0 up type can bitrate 500000
sudo ifconfig can0 txqueuelen 1000
sudo ip link set can0 up
- STEP 3: Download the testing code to reTerminal DM by using git
git clone https://github.com/limengdu/Seeed_reTerminal_Bridge_CAN_exmaple
- STEP 4: Compiles and runs the code that sends the data:
gcc cantransmit.c -o cantransmit
on you Linux host computer or another reTerminal DM, you can compiles and runs the code that receives the data.
gcc canreceive.c -o canreceive
you can see the results, the image below is done by using the two reTerminal DM:
There are two times of USB 2.0 Type-A ports, which you can connect USB devices such as flash drive, webcam, keyboard and mouse, etc.
USB Type-C is a USB 2.0 port used for serial debugging or flashing OS image depends on the boot switch position. For flashing OS please refer to Flashing OS Wiki page
SIM Card Slot
The reTerminal DM uses a standard-size SIM card slot commonly found in industrial applications, which requires a standard SIM card with dimensions of 25mm x 15mm.
Please note that the standard version of reTerminal DM does not come with a 4G module. If you require 4G functionality, an additional 4G module must be purchased separately, Therefore this SIM card slot only works if you placed the supported version of 4G module in the 4G PCIe slot.
There is a Mini Push Button Switch located in the reset hole of reTerminal DM. By pressing this button with a thin object, the CM4 can be reset. This button is connected to the RUN_PG pin of the CM4. This pin when high signals that the CM4 has started. Driving this pin low resets the module.
reTerminal DM has a 3.5mm headphone jack, which supports sound output, and can be connected to external headphones, speakers, etc.
The headphone jack only supports sound output and does not support the microphone recording function.
The reTerminal DM features a native HDMI interface from CM4, supporting up to 4K @ 60 fps video output. It is ideal for applications that require multiple displays, allowing users to output their content to external large screens.
The reTerminal DM comes with a CM4 native Gigabit Ethernet interface that supports three different speeds: 10/100/1000 Mbit/s. An additional PoE module can be purchased to enable power-over-Ethernet (PoE) delivery through this interface, providing power to the reTerminal DM.
The classic Raspberry Pi 40-pin GPIO design is retained inside the reTerminal DM, and the pin dentition remains the same as the Raspberry Pi 4B. Users need to open the back cover to use these GPIOs, It should be noted that due to the limited resources of CM4 IO, the 40-pin GPIO and many peripheral interfaces are multiplexed, so you need to pay special attention to the conﬂict when using GPIOs. For detailed pin assignment information, please refer to the following table.
|Description||Pin multiplexing||Pin multiplexing||Description|
|Pin 1||3V3||40 PIN|
|I2C3_SDA||GPIO 4||GPIO 14||UART0_TXD||USB Type C|
|Block Terminal DI2||DI2||GPIO 17||GPIO 18||PCM_CLK||3.5mm audio jack|
|Interrupt pins for screen touch||TP_INT||GPIO 27||GND|
|Block Terminal DI3||DI3||GPIO 22||GPIO 23||DI4||Block Terminal DI4|
|3V3||GPIO 24||DO1||Block Terminal DO1|
|CAN and LoRa® module||SPI0_MOSI||GPIO 10||GND|
|SPI0_MISO||GPIO 9||GPIO 25||DO2||Block Terminal DO2|
|SPI0_SCLK||GPIO 11||GPIO 8||SPI0_CE0||SPI enable pins for CAN|
|GND||GPIO 7||SPI0_CE1||SPI enable pins for LoRa®|
|Block Terminal DO4||DO4||GPIO 6||GPIO 12||CAN_INT||Interrupt pins for CAN|
|LCD backlight control pins||LCD_PWM||GPIO 13||GND|
|3.5mm audio jack||PCM_FS||GPIO 19||GPIO 16||DI1||Block Terminal DI1|
|Block Terminal DO3||DO3||GPIO 26||GPIO 20||PCM_DIN||3.5mm audio jack|
|GND||GPIO 21||PCM_DOUT||3.5mm audio jack|
The reTerminal DM features an RTC circuit that comes pre-installed with a CR2032 battery, enabling it to maintain timekeeping functionality even in the event of power loss.
Use the following command to change the hardware clock with current system clock
sudo hwclock --systohc
Use the following command to change the system clock with current hardware clock
sudo hwclock --hctosys
To veiw the current hardware clock
sudo hwclock -r
The reTerminal DM comes equipped with an independent hardware watchdog circuit that ensures automatic system reboot in case of abnormal system crashes. The watchdog circuit is implemented through RTC and allows for ﬂexible feeding times from 1 to 255 seconds.
To configure the watchdog timeout time in watchdog.conf, please follow these steps:
STEP 1: Open the watchdog.conf file for editing, usually located at /etc/watchdog.conf.
sudo nano /etc/watchdog.conf
STEP 2: Look for the "watchdog-device" and "watchdog-timeout" configuration options under the
/etc/watchdog.conf, please set as following.
you might experience instant restart when
watchdog-timeout option is set under
60, to utilise the Hardware watchdog you need to config the
/dev/watchdog1, where the default config without
1 is utilising the Broadcom watchdog device.
# 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
For example, if you want to set the watchdog timeout time to 60 seconds, you can set the value of
60, which means that if the watchdog does not receive a reset signal within 60 seconds, it will trigger an automatic reboot operation, assuming the system has crashed.
you can test if the watchdog is active with following command, where these command will put system in halt please be carefull on proferm the follow commands:
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
Now your reTerminal DM should have rebooted after the time you have set to the watchdog-timeout
There are 6 steps of brightness you can set to the backlight, from 0 is switch off to 5 is the maximum brightness. You could interface on controlling the brightness by using following commands.
echo 0 > /sys/class/backlight/lcd_backlight/brightness
echo 1 > /sys/class/backlight/lcd_backlight/brightness
echo 5 > /sys/class/backlight/lcd_backlight/brightness
The CSI camera interface is reserved on the reTerminal DM mainboard, which can be customized to support camera functions. Please note that due to the limited space on the front panel, only small-sized cameras can be used. The currently rigorously tested solution uses the Raspberry Pi camera V2.0 driver board + Seeed customized camera IMX219-77.
|Connector||Connector Type||Pin Pitch||Lane||FPC Orientation|
|CSI0||15-pin FPC||1mm||2||Gold ﬁngers facing downwards|
|CSI1||22-pin FPC||0.5mm||4||Gold ﬁngers facing upwards|
Please note that the standard version of the reTerminal DM does not come with a camera opening on the front panel, therefore, the camera functionality is not available for the standard product. If you have a customized camera requirement, please contact [email protected]
PCIe Expansion Card
The reTerminal DM features a PCIe interface that is derived from the CM4, which supports PCIe 2.0 and theoretically provides a maximum transmission speed of 5Gbps. This allows for the expansion of various high-speed interfaces such as Gigabit Ethernet and NVMe SSD. We have developed multiple expansion cards based on PCIe, USB, and I2C interfaces to meet different scenario requirements. This also facilitates customization needs.
Please note that the standard product does not include a PCIe expansion card by default. Seeed can provide assembly services for batch customization orders.
The reTerminal DM can support the IEEE 802.3af PD(Powered Devices) standard by adding a PoE power supply module.
The reTerminal DM supports PoE power supply, but the standard product does not include a PoE module by default. Seeed can provide PoE soldering and assembly services for batch customization orders. However, if a customer is testing a sample, they will need to solder and assemble the PoE module themselves.
The reTerminal DM supports 2280 NVMe SSD through the use of a PCIe expansion card. It is important to note that the CM4's PCIe is gen2.0 with a maximum theoretical speed of 5Gbps. If you are using a Gen3.0 or higher SSD, it may not be able to achieve the SSD's maximum speed. After testing, the reTerminal DM with installed SSD can achieve a maximum write speed of 210MB/s and a maximum read speed of 360MB/s. If you are unsure which SSDs are compatible, you can purchase the 112990247, 512GB NVMe M.2 PCle Gen3x4 2280 SSD from Seeed's ofﬁcial website.
The standard version of the reTerminal DM does not support SSD and requires the purchase of a PCIe expansion card to enable this feature.
Tech Support & Product Discussion
Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.