reTerminal DM 入門ガイド

reTerminal DM は、10.1インチのオープンソース産業用HMI - データフローを統合し、現場デバイスを管理する統合デバイスマスターです。
Raspberry Pi CM4をベースとし、パネルPC、HMI、PLC、IIoTゲートウェイのオールインワンデバイスとして、reTerminal DM は IP65産業グレードの大型スクリーンを備えた新世代のインタラクティブセンシングハブです。
豊富な拡張性とハイブリッド接続性を備え、CANバス、RS485、RS232、ギガビットイーサネットポート、その他のインターフェースをサポートし、4G、LoRa®、WiFi、BLEなどの強力なワイヤレス通信機能も備えています。
*4GとLoRa®モジュールはreTerminal DMにデフォルトで付属していません。関連モジュールを別途ご購入ください。 4Gバンドル
特徴
- HMI、PLC、パネルPC、ゲートウェイが一体化:分散ハブデバイスに最適
- イベント駆動アプリケーション向けローコードプログラミング:フローベース編集とワンクリックデプロイメント用のNode-REDをネイティブ統合、Raspberry Piで動作するすべてのソフトウェアと互換性
- 過酷な作業環境向けの堅牢設計:IP65フロントパネル、-10~50°C動作温度
- ハイブリッド接続性:4G LTE、LoRaWAN®、WiFi、BLE、RS485/RS232、CANバス、1000Mイーサネット、USB、HDMIをサポート
- ソフトウェアとハードウェアのオープンソース設計:Raspberry Pi CM4を搭載、カスタマイズや派生製品を歓迎
- 製品保証:2年保証
*4GとLoRa®モジュールはreTerminal DMにデフォルトで付属していません。関連モジュールを別途ご購入ください。
仕様
| 基本 | |
| CPU | CM4 |
| Quad-core [email protected] | |
| メモリ | 8GB |
| ストレージ | 32GB eMMC |
| M.2 SATA SSD スロット 2280-B Key(オプション) | |
| OS サポート | Raspbian SenseCraft Edge OS |
| ディスプレイ | |
| サイズ | 10.1'' |
| 最大解像度 | 1280 x 800 |
| 最大色数 | 16.7M(8ビット) |
| 輝度 | 400 nit |
| 視野角 | 170/170 H/V° |
| バックライト寿命 | 30000時間 |
| タッチタイプ | 10点静電容量式 |
| 鉛筆硬度 | 7H |
| ビデオ&オーディオ | |
| ビデオ | HDMI 2.0 |
| オーディオ | マイクロフォン x 2 |
| ブザー | |
| 3.5mmオーディオジャック | |
| カメラ | CSI(オプション) |
| インターフェース | |
| イーサネット | 1 x 10/100/1000 Mbps |
| 1 x 10/100/1000 Mbps(オプション) | |
| USB | 2 x USB-A 2.0 ホスト |
| 2 x USB 3.0(オプション) | |
| RS485 | 1 x RS-485 > ターミナルブロック 1 x RS-485 > DB9(オプション) |
| RS232 | 1 x RS-232 > ターミナルブロック 1 x RS-232 > DB9(オプション) |
| CAN | 1 x CAN-BUS > ターミナルブロック |
| DI | 4 x DI > ターミナルブロック |
| DO | 4 x DO > ターミナルブロック |
| 40pin GPIO | 内部 |
| ワイヤレス通信 | |
| WiFi | オンチップ WiFi |
| BLE | オンチップ BLE |
| LoRa® | LoRaWAN® 用 Mini-PCIe(オプション) |
| Cellular | 4G 用 Mini-PCIe(オプション) |
| 電源 | |
| 入力 | 2ピン ターミナルブロック |
| PoE | 12W PoE(オプション) |
| 電源範囲 | 12~24 DC |
| 環境 | |
| 防塵防水等級 | IP65 フロントパネル |
| 動作温度 | -10~50 °C |
| 保存温度 | -20~70 °C |
| 湿度(動作時) | 10~90% RH |
| 機械的仕様 | |
| 寸法 | 259.4 x 191 x 42.2 mm |
| 筐体 | ダイカストアルミニウム合金 |
| 取り付け | パネル、VESA、DINレール |
| 重量(正味) | 1.8Kg |
| 認証 | |
| CE, FCC, RoHS, Telec, REACH | |
| その他 | |
| RTC | 高精度 RTC |
| セキュリティ | ATECC608A |
| 保証 | 2年 |
| 放熱 | ファンレス |
ハードウェア概要

メインボード概要

電源図

reTerminal DM は2つの電源供給オプションをサポートしています:DC ターミナルと PoE ポート。デフォルトでは、reTerminal DM は DC ターミナルを通じて電源供給されますが、PoE 電源供給はオプションです。これにより電源供給の選択に柔軟性が提供され、様々な電源との簡単な統合が可能になります。
電源ターミナル

reTerminal DM は 12~24 V の定格電圧で供給されます。電源は 2ピン電源ターミナルブロックコネクタを介して接続されます。
POE(オプション)
標準製品にはデフォルトで PoE モジュールは含まれていません。Seeed では、バッチカスタマイズ注文のリクエストに応じて PoE はんだ付けおよび組み立てサービスを提供できます。[email protected] までお問い合わせください。
PoE モジュールが取り付けられている場合、reTerminal DM の LAN1 ポートは PoE 電源供給をサポートし、イーサネット経由でデバイスに電源を供給する便利で効率的な方法を提供します。このオプションにより設置プロセスが簡素化され、必要なケーブル配線量が削減されるため、電源が限られているアプリケーションや電源コンセントが容易に利用できない場所での理想的なソリューションとなります。
- PoE 入力:範囲 44~57V;標準 48V
- PoE 出力:12V、1.1A 最大
消費電力
Seeed Studio の研究室でテストされた reTerminal DM の消費電力については、以下の表を参照してください。テスト方法と環境により結果に変動が生じる可能性があるため、この値は参考値としてご利用ください。
| ステータス | 電圧 | 電流 | 消費電力 | 説明 |
|---|---|---|---|---|
| シャットダウン | 0.6mA | シャットダウンおよび電源オフ状態での静的消費電力テスト。 | ||
| アイドル | 24V | 0.165A | 3.96W | デフォルトの Seeed Studio システムを実行中、テストプログラムを実行せずに、ターミナルソケット経由で reTerminal DM デバイスに 24V 電源を供給した際の入力電流をテスト。 |
| フル負荷 | 24V | 0.37A | 8.88W | "stress -c 4" コマンドを使用して CPU をフル負荷で実行し、同時にビデオを再生し、CAN & RS485 通信を実行。外部デバイスは接続なし。 |
電源オンと電源オフ
reTerminal DM にはデフォルトで電源ボタンが付属しておらず、電源が接続されるとシステムが自動的に起動します。シャットダウン時は、オペレーティングシステムでシャットダウンオプションを選択し、システムが完全にシャットダウンするまで待ってから電源を切断してください。システムを再起動するには、単純に電源を再接続してください。
シャットダウン後は、内部コンデンサが完全に放電されるよう、システムを再起動する前に少なくとも 10 秒間お待ちください。
ブロック図

I2C ブロック

インターフェース
マイクロフォン
reTerminal DM には、画面下部の左右に配置された 2 つの MEMS マイクロフォンが搭載されています。これらのマイクロフォンはデュアルマイクロフォンアレイとして構成でき、優れた音声収集機能を提供します。マイクロフォンは I2S インターフェースを通じてオーディオコーデックチップと通信し、コーデックチップは PCM インターフェースを通じて CM4 と通信します。reTerminal DM に選択されたオーディオコーデックチップは、TI TLV320AIC3104 低消費電力ステレオオーディオコーデックです。
フロントパネルの IP65 等級を達成するため、マイクロフォンの開口部は防水音響膜で覆われていることに注意してください。マイクロフォンの開口部に鋭利な物体で触れることは避けてください。
マイクロフォンとのインターフェース:
デバイス上で Terminal アプリを開き、arecord -l と入力してマイクロフォンドライバを見つけてください:

音声を録音するには audacity アプリを使用できます。sudo apt install audacity を使用して audacity アプリをインストールしてください:
audacity を開いてアプリを起動し、録音をクリックして内蔵マイクロフォンから音声を録音してください:

LED インジケータ

reTerminal DM には、マシンの動作状態を示す 3 つの LED インジケータが搭載されています。各 LED の具体的な機能と状態については、以下の表を参照してください:
LED ピン割り当て
| ラベル | 信号 | 信号源 | 色 | 説明 |
|---|---|---|---|---|
| PWR | LED_nPWR | CM4 | 黄色 | CM4 の電源供給を示すために使用。CM4 が正常に電源オンされると、LED が点灯します |
| USER | PCA9535 - GPIO | 赤色 | ユーザー定義機能 | |
| ACT | LED_nACT | CM4 | 緑色 | システムの様々な状態を示すために使用。以下の表を参照。 |
ACT ステータステーブル
| 長い点滅 | 短い点滅 | ステータス |
|---|---|---|
| 0 | 3 | 一般的な起動失敗 |
| 0 | 4 | start*.elf が見つからない |
| 0 | 7 | カーネルイメージが見つからない |
| 0 | 8 | SDRAM 障害 |
| 0 | 9 | SDRAM 不足 |
| 0 | 10 | HALT 状態 |
| 2 | 1 | パーティションが FAT でない |
| 2 | 2 | パーティションからの読み取りに失敗 |
| 2 | 3 | 拡張パーティションが FAT でない |
| 2 | 4 | ファイル署名/ハッシュの不一致 - Pi 4 |
| 4 | 4 | サポートされていないボードタイプ |
| 4 | 5 | 致命的なファームウェアエラー |
| 4 | 6 | 電源障害タイプ A |
| 4 | 7 | 電源障害タイプ B |
ACT LED が規則的な 4 回点滅パターンで点滅する場合、ブートコード(start.elf)を見つけることができません
ACT LED が不規則なパターンで点滅する場合、起動が開始されています。
ACT LED が点滅しない場合、EEPROM コードが破損している可能性があります。何も接続せずに再試行してください。
詳細については、Raspberry Pi フォーラムをご確認ください:
STICKY: Is your Pi not booting? (The Boot Problems Sticky) - Raspberry Pi Forums
詳細については、Raspberry Pi フォーラムをご確認ください:https://forums.raspberrypi.com//viewtopic.php?f=28&t=58151
USER LED をアクティブにするには、以下のコマンドを使用してください:
sudo -i
echo 0 > /sys/class/leds/usr-led/brightness
echo 1 > /sys/class/leds/usr-led/brightness
USER LED が赤色で点灯するのが確認できるはずです。
光センサー

画面右下に配置された光センサーは、周囲光の強度を検出し、画面の明るさを自動調整して、エネルギーを節約しながら最適な視聴体験を提供する機能があります。光センサーは I2C プロトコルを通じて CM4 と通信します。
I2C アドレスは 0x29 です。
光センサーとのインターフェース:
- ステップ 1. 以下のディレクトリに移動
cd /sys/bus/iio/devices/iio:device0
- ステップ 2. 以下を入力して光強度値を Lux で取得
cat in_illuminance_input

ブザー

reTerminal DM には、画面右下角に配置されたアクティブブザーが搭載されており、アラームやイベント通知など様々な目的に使用できます。ブザーは PCA9535 GPIO 拡張 IC を通じて制御され、デバイスに追加のデジタル I/O チャンネルを提供します。
ブザーをテストおよび制御するには、/sys/class/leds/usr-buzzer/brightness ファイルに 1 または 0 を設定するだけです:

多機能ターミナル

ターミナルと信号対応表
| 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 |
ターミナルピン割り当て表
| ピン | シルクスクリーン | 信号 | 説明 |
|---|---|---|---|
| 1 | CH | CANH | 差動 CAN 信号ハイ |
| 2 | CL | CANL | 差動 CAN 信号ロー |
| 3 | GS | GND_ISO | 絶縁グランド信号 |
| 4 | RA | RS485A | 差動 RS485 信号 A |
| 5 | RB | RS485B | 差動 RS485 信号 B |
| 6 | GS | GND_ISO | 絶縁グランド信号 |
| 7 | RT | RS232_TX | RS232 信号送信端 |
| 8 | RX | RS232_RX | RS232 信号受信端 |
| 9 | GD | GND | メインボードグランド |
| 10 | GD | GND | メインボードグランド |
| 11 | I1 | DI1 | デジタル入力 1 |
| 12 | I2 | DI2 | デジタル入力 2 |
| 13 | I3 | DI3 | デジタル入力 3 |
| 14 | I4 | DI4 | デジタル入力 4 |
| 15 | GI | GND_DI | 入力グランド信号、1MΩ を介して GND に接続 |
| 16 | D1 | DO1 | デジタル出力 1 |
| 17 | D2 | DO2 | デジタル出力 2 |
| 18 | D3 | DO3 | デジタル出力 3 |
| 19 | D4 | DO4 | デジタル出力 4 |
| 20 | GO | GND_DO | 出力グランド信号、0Ω を介して GND に接続 |
DI/DO
reTerminal DM は 4 つのデジタル入力と 4 つのデジタル出力チャンネルをサポートしており、すべて光学的に絶縁されており、電圧スパイクやその他の電気的外乱からメインボードを効果的に保護します。

DI/DO ピン割り当て表
| ピン | CM4 信号 | 標準電圧範囲 | 最大電圧 | 定格電流容量 |
|---|---|---|---|---|
| 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 |
入力信号のグランドと出力信号のグランドは異なります。入力信号のグランドはGND_DIピンに接続し、出力信号のグランドはGND_DOピンに接続する必要があります。
reTerminal DMのデジタル入力と出力に使用される負論理では、Terminal IOとCM4 GPIOの論理レベル関係は以下の表に示されています。
| ターミナルデジタル入力 | CM4 GPIO検出信号 |
|---|---|
| Low | High |
| High | Low |
| CM4 GPIO出力 | ターミナルデジタル出力 |
|---|---|
| High | Low |
| Low | High |
このセクションでは、raspi-gpioツールを使用してGPIOをテストします。raspi-gpio helpを使用してマニュアルを表示できます:

すべてのGPIOの現在の状態を取得するには、Terminalで以下のコマンドを入力してください:
raspi-gpio get

デジタル入力
DIにセンサーを配線する方法を示す回路図は以下の通りです:

特定のGPIOステータスを取得するには、Terminalで以下のコマンドを入力してください:
raspi-gpio get 16

ここでGPIO16の現在の状態はINPUTに設定され、pulling Downで現在のピンレベルは1(Highを意味)です。これは上記の表によると、現在のターミナルデジタル入力DI1がLowであることを意味します。
DI1ターミナルを5V電源のPositiveピンに接続し、5V電源のGroundをGND_DIに接続することで、DI1にHigh信号を入力してみましょう。
raspi-gpio get 16

この場合、GPIO16の現在のピンレベルは0(Lowを意味)で、上記の表によると現在のターミナルデジタル入力DI1がHighであることを意味します。
デジタル出力
DOに負荷を配線する方法を示す回路図は以下の通りです:

デジタル出力状態値を制御するには、まずピン状態をOutputとpulling Downに設定する必要があります:
#set current pin state
raspi-gpio set 24 op pd dh
#get the pin state after set
raspi-gpio get 24

DO1に対応するGPIO24がOutputとpulling down状態に設定され、GPIO24レベルがHighに設定されています。
次にGPIO24をLowに設定します。これはDO1出力がHighとして駆動されることを意味します。
#set current pin state
raspi-gpio set 24 dh
#get the pin state after set
raspi-gpio get 24

RS485

reTerminal DMは20ピンコネクタを通じてRS485インターフェースを搭載しており、産業および自動化アプリケーションでの安全で信頼性の高い動作を確保するため、信号と電源の両方が絶縁されています。RS485 AとRS485 B信号は容量絶縁を使用して絶縁されており、優れたEMI耐性を提供し、RS485インターフェースの高速通信要件を満たします。
120Ωの終端抵抗がデフォルトでインストールされています。 RS485インターフェースは絶縁電源を使用しているため、RS485インターフェースに接続される外部デバイスのグランド信号はGND_ISOピンに接続する必要があります。
RS485をテストしてインターフェースするには、USB to RS485アダプターを準備し、以下と同じ接続であることを確認してください:

RS485ポートは実行しているOSによって/dev/ttyACM1または/dev/ttyCH340USB1になることに注意してください。
ホストコンピューターでお気に入りのシリアル通信ツールを使用して、以下のテストを実行してください: reTerminal DMでPythonコードを実行してRS485シリアル接続をテストします。このコードはRS485シリアルポートを以下のように設定します:
ボーレート -> 9600 バイトサイズ -> 8ビット パリティ -> なし ストップビット -> 1 ハードウェアフロー制御 -> 無効
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

reTerminal DMの20ピンコネクタにはRS232インターフェースも含まれており、これは絶縁されていません。RS232通信は通常CMOS電圧レベルを使用し、通信距離が短いため、環境からの電磁干渉の影響を受けにくいためです。
グランドピンはRXピンの隣のGDピンに接続する必要があります。GSピンではないことを確認してください。
reTerminal DMからホストコンピューターにデータを送信するテスト用Pythonスクリプトは以下の通りです:

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()
ホストコンピューターから送信されたデータをreTerminal DMで受信するテスト用Pythonスクリプトは以下の通りです:

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

reTerminal DMはCAN FD(Controller Area Network Flexible Data-Rate)プロトコルをサポートするCANインターフェースを搭載しています。CANインターフェースは容量絶縁を使用して絶縁されており、優れたEMI保護を提供し、産業および自動化アプリケーションでの信頼性の高い通信を確保します。120Ωの終端抵抗がデフォルトでインストールされています。
CANインターフェースは絶縁電源を使用しているため、CANインターフェースに接続される外部デバイスのグランド信号はGND_ISOピンに接続する必要があります。
CANバスをテストしてインターフェースするには: 下の画像のようにUSB to CANアダプターを接続してください:

- ステップ 1: CAN-utilsをインストールします
sudo apt install can-utils

CAN-utilsは、CANインターフェースを使用した非常に有用なデバッグツールのコレクションです。以下のようなアプリケーションが含まれています:
- candump – CANパケットをダンプ – 表示、フィルタリング、ディスクへのログ記録。
- canplayer – CANログファイルの再生。
- cansend – 単一フレームの送信。
- cangen – ランダムトラフィックの生成。
- canbusload – 現在のCANバス使用率の表示
CAN-utilsのソースはGitHubリポジトリから入手できます。
- ステップ 2: 以下のコマンドを使用してCANインターフェースを設定します:
sudo ip link set can0 up type can bitrate 500000
sudo ifconfig can0 txqueuelen 1000
sudo ip link set can0 up
- ステップ 3: gitを使用してreTerminal DMにテストコードをダウンロードします
git clone https://github.com/limengdu/Seeed_reTerminal_Bridge_CAN_exmaple
- ステップ 4: データを送信するコードをコンパイルして実行します:
cd Seeed_reTerminal_Bridge_CAN_exmaple/
gcc cantransmit.c -o cantransmit
Linuxホストコンピューターまたは別のreTerminal DMで、データを受信するコードをコンパイルして実行できます。
gcc canreceive.c -o canreceive
結果を確認できます。下の画像は2台のreTerminal DMを使用して実行したものです:

USB
USB Type-A

USB 2.0 Type-Aポートが2つあり、フラッシュドライブ、ウェブカメラ、キーボード、マウスなどのUSBデバイスを接続できます。
USB Type-C

USB Type-Cは、ブートスイッチの位置に応じてシリアルデバッグまたはOSイメージの書き込みに使用されるUSB 2.0ポートです。OSの書き込みについては、OSフラッシュWikiページを参照してください
SIMカードスロット

reTerminal DMは、産業用アプリケーションで一般的に使用される標準サイズのSIMカードスロットを使用しており、25mm x 15mmの寸法の標準SIMカードが必要です。
reTerminal DMの標準バージョンには4Gモジュールが付属していないことにご注意ください。4G機能が必要な場合は、追加の4Gモジュールを別途購入する必要があります。したがって、このSIMカードスロットは、4G PCIeスロットにサポートされているバージョンの4Gモジュールを配置した場合にのみ機能します。
リセットボタン

reTerminal DMのリセット穴にミニプッシュボタンスイッチがあります。細い物体でこのボタンを押すことで、CM4をリセットできます。このボタンはCM4のRUN_PGピンに接続されています。このピンがハイの時、CM4が開始されたことを示します。このピンをローにドライブするとモジュールがリセットされます。
オーディオジャック

reTerminal DMには3.5mmヘッドフォンジャックがあり、音声出力をサポートし、外部ヘッドフォン、スピーカーなどに接続できます。
ヘッドフォンジャックは音声出力のみをサポートし、マイク録音機能はサポートしていません。

HDMI

reTerminal DMは、CM4からのネイティブHDMIインターフェースを備えており、最大4K @ 60 fpsの映像出力をサポートしています。複数のディスプレイが必要なアプリケーションに最適で、ユーザーは外部の大画面にコンテンツを出力できます。
イーサネット RJ45

reTerminal DMには、3つの異なる速度(10/100/1000 Mbit/s)をサポートするCM4ネイティブギガビットイーサネットインターフェースが付属しています。追加のPoEモジュールを購入して、このインターフェースを通じてPower-over-Ethernet(PoE)配信を有効にし、reTerminal DMに電力を供給できます。
内部インターフェース
40ピンGPIO
クラシックなRaspberry Pi 40ピンGPIO設計がreTerminal DM内部に保持されており、ピン配置はRaspberry Pi 4Bと同じです。これらのGPIOを使用するには、ユーザーは背面カバーを開く必要があります。CM4 IOのリソースが限られているため、40ピンGPIOと多くの周辺インターフェースが多重化されているため、GPIOを使用する際は競合に特に注意する必要があります。詳細なピン割り当て情報については、以下の表を参照してください。
| 説明 | ピン多重化 | ピン多重化 | 説明 | |||
|---|---|---|---|---|---|---|
| ピン 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 Type C | ||
| GND | GPIO 15 | UART0_RXD | ||||
| ブロック端子 DI2 | DI2 | GPIO 17 | GPIO 18 | PCM_CLK | 3.5mmオーディオジャック | |
| 画面タッチの割り込みピン | TP_INT | GPIO 27 | GND | |||
| ブロック端子 DI3 | DI3 | GPIO 22 | GPIO 23 | DI4 | ブロック端子 DI4 | |
| 3V3 | GPIO 24 | DO1 | ブロック端子 DO1 | |||
| CANおよびLoRa®モジュール | SPI0_MOSI | GPIO 10 | GND | |||
| SPI0_MISO | GPIO 9 | GPIO 25 | DO2 | ブロック端子 DO2 | ||
| SPI0_SCLK | GPIO 11 | GPIO 8 | SPI0_CE0 | CAN用SPI有効ピン | ||
| GND | GPIO 7 | SPI0_CE1 | LoRa® 用 SPI イネーブルピン | |||
| ID_SD | ID_SC | |||||
| I2C_SCL | GPIO 5 | GND | ||||
| ブロック端子 DO4 | DO4 | GPIO 6 | GPIO 12 | CAN_INT | CAN 用割り込みピン | |
| LCD バックライト制御ピン | LCD_PWM | GPIO 13 | GND | |||
| 3.5mm オーディオジャック | PCM_FS | GPIO 19 | GPIO 16 | DI1 | ブロック端子 DI1 | |
| ブロック端子 DO3 | DO3 | GPIO 26 | GPIO 20 | PCM_DIN | 3.5mm オーディオジャック | |
| GND | GPIO 21 | PCM_DOUT | 3.5mm オーディオジャック |
RTC
reTerminal DM には、CR2032 バッテリーが事前に取り付けられた RTC 回路が搭載されており、電源が失われた場合でも時刻保持機能を維持できます。
現在のシステムクロックでハードウェアクロックを変更するには、以下のコマンドを使用してください
sudo hwclock --systohc
現在のハードウェアクロックでシステムクロックを変更するには、以下のコマンドを使用してください
sudo hwclock --hctosys
現在のハードウェアクロックを表示するには
sudo hwclock -r

ウォッチドッグ
reTerminal DM には、システムの異常クラッシュが発生した場合に自動的にシステムを再起動する独立したハードウェアウォッチドッグ回路が搭載されています。ウォッチドッグ回路は RTC を通じて実装され、1 秒から 255 秒までの柔軟な給餌時間を可能にします。
watchdog.conf でウォッチドッグタイムアウト時間を設定するには、以下の手順に従ってください:
ステップ 1:watchdog.conf ファイルを編集用に開きます。通常は /etc/watchdog.conf にあります。
sudo nano /etc/watchdog.conf
ステップ 2:/etc/watchdog.conf の下にある「watchdog-device」と「watchdog-timeout」設定オプションを探し、以下のように設定してください。
watchdog-timeout オプションが 60 未満に設定されている場合、即座に再起動が発生する可能性があります。ハードウェアウォッチドッグを利用するには、watchdog-device を /dev/watchdog1 として設定する必要があります。1 なしのデフォルト設定は 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
例えば、ウォッチドッグタイムアウト時間を 60 秒に設定したい場合、watchdog-timeout の値を 60 に設定できます。これは、ウォッチドッグが 60 秒以内にリセット信号を受信しない場合、システムがクラッシュしたと仮定して自動再起動操作をトリガーすることを意味します。
以下のコマンドでウォッチドッグがアクティブかどうかをテストできますが、これらのコマンドはシステムを停止状態にするため、以下のコマンドを実行する際は注意してください:
sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
これで、reTerminal DM は watchdog-timeout に設定した時間後に再起動するはずです
バックライト
バックライトには 6 段階の明度を設定できます。0 はオフ、5 は最大明度です。 以下のコマンドを使用して明度を制御できます。
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
内蔵アドオン
カメラ

CSI カメラインターフェースは reTerminal DM メインボードに予約されており、カメラ機能をサポートするようにカスタマイズできます。フロントパネルのスペースが限られているため、小型のカメラのみ使用できることにご注意ください。現在厳密にテストされたソリューションは、Raspberry Pi カメラ V2.0 ドライバーボード + Seeed カスタマイズカメラ IMX219-77 を使用しています。
| コネクタ | コネクタタイプ | ピンピッチ | レーン | FPC 向き |
|---|---|---|---|---|
| CSI0 | 15 ピン FPC | 1mm | 2 | 金指が下向き |
| CSI1 | 22 ピン FPC | 0.5mm | 4 | 金指が上向き |

reTerminal DM の標準バージョンにはフロントパネルにカメラ開口部がないため、標準製品ではカメラ機能は利用できません。カスタマイズされたカメラ要件がある場合は、[email protected] にお問い合わせください
4G モジュール

必要な材料
- reTerminal DM x 1
- EC25-EUX 4G モジュール x1
- SIM カード x1
ステップ 1. EC25 4G モジュールハードウェア組み立てガイドを参照して、EC25 4G モジュールを4G/LTE PCIe スロットに取り付けてください。*4G/LTE*シルクスクリーンが見えるはずです。また、システムの電源を入れる前に、4G 対応 SIM カードをSIM カードスロットに挿入してください。
ステップ 2. lsusbを使用して EC25-EUX が検出されるかどうかを確認します
lsusb
lsusb -t

ステップ 3. シリアル通信ツール minicom をインストールします。
sudo apt install minicom
ステップ 4. minicom を通じて EC25-EUX 4G モジュールに接続します。
sudo minicom -D /dev/ttyUSB2 -b 1152008n1
シリアル接続が開いたら、AT と入力して 'Enter' を押すと、OK が表示されるはずです。

ステップ 5. 4G モジュールを 4G ネットワークに接続できるようにします
同じ minicom シリアルウィンドウで以下を入力してください:
AT+QCFG="usbnet"
+QCFG: "usbnet",0,のような結果が返されますが、これを 1(ECM モード)に設定する必要があるため、以下のコマンドを入力してください:
AT+QCFG="usbnet",1
次に、以下のコマンドを入力してモデムを強制的に再起動します:
AT+CFUN=1,1
その後、再起動するか、モジュールが SIM カードキャリアからインターネットを取得するまでしばらく待つことができます。
また、ifconfig コマンドを使用して reTerminal DM のネットワーク状態を照会することもできます。

LoraWAN® モジュール
reTerminal DM は WM1302 LoraWAN® モジュールの USB バージョンと SPI バージョンの両方をサポートしていますが、USB バージョンは 4G モジュール用に設計された Mini PCIe を利用する必要があります。つまり、4G モジュールと LoraWAN® モジュールの両方を使用したい場合は、WM1302 LoraWAN® モジュールの SPI バージョンを選択してください。
- WM1302 SPI モジュール
- WM1302 USBモジュール

ステップ 1. LoraWAN® モジュールハードウェア組み立てガイドを参照して、WM1302 SPI LoraWAN® モジュールを*Lora*シルクスクリーンが見えるLoraWAN® Mini PCIeスロットに取り付けてください。
モジュールをインストールして、必要なパッケージbuild-essential(build essentialパッケージは、ソースコードからDEBパッケージを作成するために必要なツールを含むDebianパッケージです)をインストールします。
sudo apt update
sudo apt install git
sudo apt-get install build-essential
ステップ 2. コマンドラインでsudo raspi-configと入力してRaspberry Piソフトウェア設定ツールを開きます:
- Interface Optionsを選択
- SPIを選択し、Yesを選択して有効にします
- I2Cを選択し、Yesを選択して有効にします
- Serial Portを選択し、"Would you like a login shell..."に対してNoを選択し、"Would you like the serial port hardware..."に対してYesを選択します
この後、これらの設定が動作することを確認するためにRaspberry Piを再起動してください。
ステップ 3. WM1302コードをreTerminalにダウンロードしてコンパイルします。
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
cd sx1302_hal
sudo make
ステップ 4. reset_lgw.shスクリプトをコピーして変更します
cp ~/sx1302_hal/tools/reset_lgw.sh ~/sx1302_hal/packet_forwarder/
cd ~/sx1302_hal/packet_forwarder
vim reset_lgw.sh
以下のようにテキストエディタでreset_lgw.shスクリプトを変更します:
#!/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 "------------------------------------"
ステップ 5. global_conf.json.sx1250.US915設定ファイル内のLoraWAN® モジュールのデフォルトSPIポートを置き換えます:
sed -i 's/spidev0.0/spidev0.1/g' global_conf.json.sx1250.US915
ステップ 6. LoraWAN® モジュールを開始します
使用しているモジュールに基づいて、対応するglobal_conf.json.sx1250.xxxxxで希望するLoRaWANネットワークサーバーserver_addressとゲートウェイEUI gateway_IDを選択し、up/down portを1700に変更します。その後、以下のコードを実行してコンセントレータを開始します:
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


ステップ 1. LoraWAN® モジュールハードウェア組み立てガイドを参照して、WM1302 USB LoraWAN® モジュールを*4G*シルクスクリーンが見える4G Mini PCIeスロットに取り付けてください。

ステップ 2. コマンドラインでsudo raspi-configと入力してRaspberry Piソフトウェア設定ツールを開きます:
- Interface Optionsを選択
- I2Cを選択し、Yesを選択して有効にします
- Serial Portを選択し、"Would you like a login shell..."に対してNoを選択し、"Would you like the serial port hardware..."に対してYesを選択します
この後、これらの設定が動作することを確認するためにRaspberry Piを再起動してください。
ステップ 3. WM1302コードをreTerminalにダウンロードしてコンパイルします。
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
cd sx1302_hal
sudo make
ステップ 4. reset_lgw.shスクリプトをコピーします
cp ~/sx1302_hal/tools/reset_lgw.sh ~/sx1302_hal/packet_forwarder/
ステップ 5. global_conf.json.sx1250.US915.USB設定ファイル内のLoraWAN® モジュールのUSBポートを置き換えます:
ステップ 5-1. まず、特定のUSBポートを取得するために以下の手順に従ってください:
lsusb
私の場合、WM1302はSTMicroelectronics Virtual COM Portを使用しているため、プロダクトID 5740を取得できます
ステップ 5-2.
次に、プロダクトID番号5740でUSBデバイスを取得します。この場合、USBポート番号1-1.4.1を取得します:
sudo dmesg | grep 5740
# Load ACM module
sudo modprobe cdc_acm
その後、以下のようにデバイスポートを取得できます:
sudo dmesg | grep 1-1.4.1
つまり、私の場合USBデバイスはttyACM2です
それでは、sedコマンドsed -i 's/search_string/replacement_string/g' filenameを使用してglobal_conf.json.sx1250.US915.USB設定のUSBデバイスを変更しましょう。sed -i 's/ttyACM0/the_result_from_above' global_conf.json.sx1250.frequency_of_your_module.USBのパターンに従ってください。the_result_from_aboveとfrequency_of_your_moduleをあなたのアプリケーション用に置き換えることに注意してください:
例えば、私の場合:
sed -i 's/ttyACM0/ttyACM2/g' global_conf.json.sx1250.US915.USB
以下の画像に示されている手順を参照してください:

ステップ 6. LoraWAN® モジュールを開始します
使用しているモジュールに基づいて、対応するglobal_conf.json.sx1250.xxxxxで希望するLoRaWANネットワークサーバーserver_addressとゲートウェイEUI gateway_IDを選択し、up/down portを1700に変更します。その後、以下のコードを実行してコンセントレータを開始します:
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

PCIe拡張カード
reTerminal DMは、CM4から派生したPCIeインターフェースを搭載しており、PCIe 2.0をサポートし、理論的に最大5Gbpsの伝送速度を提供します。これにより、ギガビットイーサネットやNVMe SSDなどの様々な高速インターフェースの拡張が可能になります。私たちは、異なるシナリオ要件を満たすために、PCIe、USB、I2Cインターフェースに基づく複数の拡張カードを開発しました。これにより、カスタマイズニーズも促進されます。
標準製品にはデフォルトでPCIe拡張カードが含まれていないことにご注意ください。Seedは、バッチカスタマイズ注文に対して組み立てサービスを提供できます。
POE
reTerminal DMは、PoE電源モジュールを追加することで、IEEE 802.3af PD(Powered Devices)標準をサポートできます。
reTerminal DMはPoE電源をサポートしていますが、標準製品にはデフォルトでPoEモジュールが含まれていません。Seedは、バッチカスタマイズ注文に対してPoEはんだ付けと組み立てサービスを提供できます。ただし、お客様がサンプルをテストしている場合は、PoEモジュールを自分ではんだ付けして組み立てる必要があります。
SSD
reTerminal DMは、PCIe拡張カードを使用して2280 NVMe SSDをサポートします。CM4のPCIeはgen2.0で最大理論速度が5Gbpsであることに注意することが重要です。Gen3.0以上のSSDを使用している場合、SSDの最大速度を達成できない可能性があります。テスト後、SSDが取り付けられたreTerminal DMは、最大書き込み速度210MB/s、最大読み取り速度360MB/sを達成できます。どのSSDが互換性があるかわからない場合は、SeedのオフィシャルウェブサイトからSeedの112990247、512GB NVMe M.2 PCle Gen3x4 2280 SSDを購入できます。
reTerminal DMの標準バージョンはSSDをサポートしておらず、この機能を有効にするためにPCIe拡張カードの購入が必要です。
追加リソース
- reTerminal DMデータシート
- reTerminal DMユーザーマニュアル
- reTerminal DM回路図設計・PCB設計・ガーバーファイル
- reTerminal DM構造設計ファイル.stp
技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルをご用意しています。