reComputer Industrial R22xx を設定する
概要
本 Wiki では、デバイスの取り付け後に reComputer Industrial R22xx シリーズ上のハードウェアコンポーネントを設定およびテストする方法を説明します。GPIO マッピング、USER LED テスト、SPI 通信、Wi-Fi および Bluetooth スキャン、LoRa®、4G、5G、RS485、RS232、CAN、DI/DO テスト、安全なシャットダウンのための UPS などを扱います。

GPIO マッピングとオフセットの確認
GPIO マッピングとオフセットを確認するには、次の手順に従います。
- 次のコマンドをコピー&ペーストして、GPIO マッピングを確認します。
cat /sys/kernel/debug/gpio
このコマンドは GPIO マッピングとオフセットを表示し、GPIO ピンのデバッグや設定に必要な情報を提供します。
USER LED テスト
ユーザーが使用できるように、赤、青、緑の 3 色の LED を用意しています。/sys/class/leds/ ディレクトリに入って確認できます:
1. LED ディレクトリへ移動する
cd /sys/class/leds/
ls

対応する色の LED を点灯させるには、次のコマンドを使用します。
sudo su
echo 1 > /sys/class/leds/led-red//brightness
echo 1 > /sys/class/leds/led-blue/brightness
echo 1 > /sys/class/leds/led-green/brightness
これにより、対応する LED が点灯します。
3. LED を消灯する(任意)
特定の LED を消灯するには、次を使用します。
sudo su
echo 0 > /sys/class/leds/led-red/brightness
echo 0 > /sys/class/leds/led-blue/brightness
echo 0 > /sys/class/leds/led-green/brightness
SPI 通信のテスト
TPM モジュールの MISO と MOSI ピンをショートさせて SPI 通信をテストするには、次の手順に従います。
- spidev-test リポジトリをクローンします。
# Don't forget to connect to network before running command
git clone https://github.com/rm-hull/spidev-test.git
- spidev-test ディレクトリに移動します。
cd spidev-test
- spidev_test.c ファイルをコンパイルします。
gcc spidev_test.c -o spidev_test
- 次のコマンドで spidev_test プログラムを実行します。
./spidev_test -D /dev/spidev10.0 -v -p hello
このコマンドは、指定した SPI デバイス(/dev/spidev10.0)上で詳細出力(-v)を有効にして SPI 通信をテストし、メッセージ "hello"(-p hello)を送信します。 TPM モジュールの MISO と MOSI ピンをショートさせることで、MOSI から送信されたデータが MISO で受信されるループバック状態を作り出します。この構成により、実際のデバイスを接続しなくても SPI 通信をテストできます。
Wi-Fi スキャン
利用可能な Wi-Fi ネットワークとその詳細を一覧表示するには、次を実行します。
sudo iwlist wlan0 scan
- このコマンドは周辺のすべての Wi-Fi ネットワークをスキャンし、その SSID、信号強度、暗号化方式を表示します。
Bluetooth スキャン
Bluetooth デバイスをスキャンするには、次の手順に従います。
Bluetooth 制御インターフェースを開く:
sudo bluetoothctl
このコマンドで Bluetooth 制御インターフェースが開きます。そこから、周辺の Bluetooth デバイスをスキャンするための追加コマンドを実行できます。
スキャンを有効化する:
scan on
このコマンドで周辺の Bluetooth デバイスのスキャンが開始されます。その後、bluetoothctl インターフェース内で、ペアリングや接続など Bluetooth デバイスとやり取りするための他のコマンドを使用できます。
Mini-PCIe 経由の LoRa®
LoRa® SPI 設定
LoRa® SPI を Mini-PCIe スロット 2 に取り付けた後、次の手順で LoRa® SPI を設定できます。
- SX1302_HAL リポジトリをクローンします。
cd ~/
git clone https://github.com/Lora-net/sx1302_hal
- クローンしたディレクトリに移動します。
cd sx1302_hal
- 設定ファイルを編集します。
I2C デバイスの設定ファイルを開きます。
sudo nano ./libloragw/inc/loragw_i2c.h
次の行を変更します。
#define I2C_DEVICE "/dev/i2c-1"
次のように変更します。
#define I2C_DEVICE "/dev/i2c-2"
#define I2C_DEVICE "/dev/i2c-1" を #define I2C_DEVICE "/dev/i2c-2" に変更します。 ctrl+x を押して終了し、y を押して変更を保存し、その後 Enter を押してコマンドライン画面に戻ります。
- packet_forwarder/reset_lgw.sh ファイルを追加します。
sudo nano packet_forwarder/reset_lgw.sh
実行コードを追加します。
SX1302_RESET_PIN=632 # SX1302 reset
SX1302_POWER_EN_PIN=633 # SX1302 power enable
SX1261_RESET_PIN=634 # SX1261 reset (LBT / Spectral Scan)
# AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
ファームウェアは標準で SPI モデル WM1302-SPI-US915-M をサポートしています。他のモデルを使用したい場合は、対応する RESET_PIN の定義を確認し、以下のコマンドを参考に RESET_PIN を変更できます。
cat /sys/kernel/debug/gpio
ctrl+x を押して終了し、y を押して変更を保存し、その後 Enter を押してコマンドライン画面に戻ります。
- 設定コードを変更します。
cp ./tools/reset_lgw.sh ./packet_forwarder
- 18、29、35、42、53、54 行目をそれぞれコメントアウトします。
nano ./packet_forwarder/global_conf.json.sx1250.US915
"com_path": "/dev/spidev0.0" を "com_path": "/dev/spidev2.0" に変更します。
cd ./packet_forwarder
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.US915

LoRa® USB 設定
LoRa® USB の場合、前のコマンドは LoRa® SPI と同じままですが、最後のコマンドのみ次のように変更する必要があります。
cho 632 > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio632/direction
echo "1" > /sys/class/gpio/gpio632/value
sudo ./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB

このコマンドは、LoRa® USB 用に使用する設定ファイルを指定します。
M.2 B-KEY 経由の 5G セルラー
minicom を介して AT コマンドを使用し 5G/4G モジュールとやり取りするには、次の手順に従います。
- 新しい power_5g.sh ファイルを作成します:
nano power_5g.sh
sudo nano で開き、次のコマンドを入力してから ctrl+x を押して保存して終了します。
#!/bin/bash
RESET_PIN=655
POWER_PIN=660
if [ ! -d "/sys/class/gpio/gpio$RESET_PIN" ]; then
echo $RESET_PIN > /sys/class/gpio/export
fi
if [ ! -d "/sys/class/gpio/gpio$POWER_PIN" ]; then
echo $POWER_PIN > /sys/class/gpio/export
fi
echo "out" > /sys/class/gpio/gpio$RESET_PIN/direction
echo "out" > /sys/class/gpio/gpio$POWER_PIN/direction
echo 1 > /sys/class/gpio/gpio$RESET_PIN/value
echo 1 > /sys/class/gpio/gpio$POWER_PIN/value
echo "Start to reboot 5g module"
echo 0 > /sys/class/gpio/gpio$RESET_PIN/value
sleep 0.05
echo 0 > /sys/class/gpio/gpio$POWER_PIN/value
echo "5g module reboot completed"
- ファイルを実行します。
sudo ./power_5g.sh
10〜15 秒後(モジュールの電源投入と USB の列挙に時間がかかります)、デバイスノードが現れるか確認します。
ls /dev/ttyUSB*
/dev/ttyUSB0 などが出力されます。

適切なシリアルポートとボーレートで minicom を開きます。
sudo apt update
sudo apt install minicom
sudo minicom -D /dev/ttyUSB2 -b 115200
このコマンドは、指定したシリアルポート(/dev/ttyUSB2)をボーレート 115200 で開いて minicom を起動します。
- minicom が開いたら、4G モジュールに AT コマンドを送信し始めることができます。例えば:
AT
このコマンドはモジュールが応答しているかどうかを確認します。モジュールが正常に動作していれば、"OK" という応答が返ってくるはずです。
- 4G モジュールを使用して電話番号に発信するには、ATD コマンドの後に電話番号を続けて使用します。
ATD<phone_number>;
phone_number を、発信したい電話番号に置き換えてください。 コマンドの末尾には、電話番号の終わりを示すためにセミコロン ; を必ず付けてください。
Mini-PCIe 経由の 4G セルラー
新しい power_4g.sh ファイルを作成します。
sudo nano power_4g.sh
sudo nano で開き、次のコマンドを入力してから ctrl+x を押して保存して終了します。
# SIM_MUX_SEL
echo 655 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio655/direction
echo 0 > /sys/class/gpio/gpio655/value
echo 660 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio660/direction
echo 1 > /sys/class/gpio/gpio660/value
ファイルを実行します。
sudo ./power_4g.sh
minicom に入ってコマンドを送信します。
sudo apt install minicom -y
sudo minicom -D /dev/ttyUSB2 -b 115200
Ctrl+A、Z、E の順に押します。まず AT を送信して接続されているかテストします。OK が表示されれば、接続は成功です。

次のコマンドを実行すると、モジュールは自動的に再起動します。minicom を終了しなければ、対応する設定情報を確認できます。 ECM ダイヤルアップによるインターネット接続:
AT+QCFG="usbnet",1
最後の行に OK と表示されれば成功です。
Note デバイスはしばらく待つ必要があり、その後 ifconfig で usb0 の IP アドレスを確認できます。
ネットワーク状態と通信をテストします:
# Check network status
ifconfig
# Test communication
ping www.baidu.com -I usb0
RS485 テスト
reComputer Industrial R21xx には 2 つの RS485 ポート が搭載されています。以下はそれぞれに対応する COM ポート と デバイスファイル です。
| RS485 ポート数 | COM ポート | シルク印刷ラベル | デバイスファイル |
|---|---|---|---|
| RS485-2 | COM2 | A2/B2/GND3 | /dev/ttyACM1 |
| RS485-3 | COM3 | A3/B3/GND4 | /dev/ttyACM2 |
RS485 の機能をテストするには、以下の手順に従ってください(RS485_1 と RS485_2 を例とします)。
- RS485_1 と RS485_2 の A と B をそれぞれ接続します。
- 2 つのターミナルウィンドウを開き、それぞれで minicom を起動します。
sudo minicom -D /dev/ttyACM1
sudo minicom -D /dev/ttyACM2
拡張ボードがある場合は、番号を 1 つ後ろにずらす必要があります。例えば /dev/ttyAcM2、/dev/ttyAcM3 のようになります。
- 開いた両方の ACM で、次の操作を行う必要があります。
-
Ctrl+A を押し、その後 Z を押すと、Minicom Command Summary インターフェースが表示されます。

-
さらに O を押して設定を開き、Serial port setup を選択して Enter を押します。すべての RS485 関連インターフェースを開き、H/I/J/K/L を順に押して有効にします。

-
すべてが "YES" と表示されたら Enter を押して戻り、その後 Exit を選択して終了します。
ACM2 と ACM3 を例にします。 ACM2 から ACM3 へ送信したい場合、ACM2 を再度設定する必要があります。ctrl+A を押し、その後 Z、さらに E を押してからシリアルポートの書き込みコマンドを開始します。このとき、ACM2 で任意の文字列を出力すると、同時に ACM3 で ACM2 の内容を確認できます。 逆に、ACM3 から ACM2 へ送信したい場合は、ACM3 を再度設定する必要があります。ctrl+A を押し、その後 Z、さらに E を押してからシリアルポートの書き込みコマンドを開始します。このとき、ACM3 で任意の文字列を出力すると、同時に ACM2 で ACM3 の内容を確認できます。図のようになります。

RS232 テスト
reComputer Industrial R21xx には 2 つの RS232 ポートが搭載されており、それぞれに対応する COM ポート と デバイスファイル は次のとおりです。
| RS232 ポート数 | COM ポート | シルク印刷ラベル | デバイスファイル |
|---|---|---|---|
| RS232-1 | COM1 | RX1/TX1/GND1 | /dev/ttyACM0 |
| RS232-2 | COM2 | RX2/TX2/GND2 | /dev/ttyACM1 |
RS232 は全二重通信であるため、RS232 の TX と RX を直接短絡させてループバックテストを行います。

2 つのターミナルを開く必要があります。拡張ボードが接続されている場合は ACM1、接続されていない場合は ACM2 を使用します。 ターミナル 1:*
sudo minicom -D /dev/ttyACM1 -b 9600
拡張ボードが接続されていない場合は、/dev/ttyACM1 を /dev/ttyACM0 に変更する必要があります。
ターミナル 2:
printf "hello seeed\r\n" > /dev/ttyACM1
ターミナル 1 には、ターミナル 2 から出力要求された内容が表示されます。

DI(Digital Input)テスト
reComputer Industrial R21xx には 4 つの DI ポートがあり、ユーザーは実際のニーズに応じてこれらのポートを設定できます。
| ポート数 | DI ポート | 対応する拡張 GPIO |
|---|---|---|
| 4 | DI1 | GPIO588 |
| DI2 | GPIO589 | |
| DI3 | GPIO590 | |
| DI4 | GPIO595 |
DI ポートの入力タイプは PNP です。5VDC〜24VDC の入力電圧をサポートし、電流は 1000mA です。 DI の機能をテストするには、次の手順に従ってテストを行います。
- reComputer Industrial R21xx の DI ポートと外部負荷との接続を完了します。
- 次のコマンドを入力して GPIO の状態を取得します。
echo 588 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio588/direction
cat /sys/class/gpio/gpio588/value
- 外部レベルが High のとき、/sys/class/gpio/gpio588/value の値は 0 です。外部レベルが Low のとき、/sys/class/gpio/gpio588/value の値は 1 です。
DO(Digital Output)
reComputer Industrial R21xx には 4 つの DO ポートがあり、ユーザーは実際のニーズに応じてこれらのポートを設定できます。
| ポート数 | DI ポート | 対応する拡張 GPIO |
|---|---|---|
| 4 | DO1 | GPIO638 |
| DO2 | GPIO637 | |
| DO3 | GPIO636 | |
| DO4 | GPIO635 |
DO ポートの出力タイプはトランジスタです。60 VDC 未満の出力電圧と、500 mA の電流容量をサポートします。 DO の機能をテストするには、次の手順に従ってテストを行います。
- reComputer Industrial R21xx の DO ポートと外部負荷との接続を完了します。
- 次のコマンドを入力して、出力を High レベルまたは Low レベルに設定します。
echo 638 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio638/direction
echo 1 > /sys/class/gpio/gpio638/value
echo 0 > /sys/class/gpio/gpio638/value
- 外部レベルが High のとき、/sys/class/gpio/gpio638/value の値は 0 です。外部レベルが Low のとき、/sys/class/gpio/gpio638/value の値は 1 です。
CAN テスト
ループバックテスト
| ポート数 | DI ポート | 対応する拡張 GPIO |
|---|---|---|
| 2 | CAN_H/CAN_L | can0 |
reComputer Industiral R22xx は CAN インターフェースを 1 つだけ搭載しているため、単体でのループバックテストは実行できません。通信機能を検証するには、外部の対向デバイスまたは USB-to-CAN アダプタが必要です。このテストでは、デュアル CAN インターフェースを備えた reComputer Industiral R21xx を対向ノードとして使用し、reComputer Industiral R22xx と接続します。具体的な接続方法および設定手順については、以下のチュートリアルを参照してください。
- 2 本のデュポン線を使用して、can0 と can1 の H-H および L-L を短絡させ、最小限のループテストを構成します。
CAN_H─────●───── CAN-H
CAN_L─────●───── CAN-L
G_CAN_H─────●───── G_CAN
- ドライバがロードされていないことを防ぐために、ネットワークインターフェース can0 と can1 の 2 つがシステム上に表示されていることを確認します。
# should print can0 can1
ls /sys/class/net | grep can
# should see "successfully initialized"
dmesg | grep -i can
- 2 つの CAN インターフェースを 500 kbit/s に設定してオンラインにし、データ送受信の準備をします(安全のため Low レベルに設定します)。 R22xx:
sudo ip link set can0 down
sudo ip link set can0 up type can bitrate 500000
R21xx:
sudo ip link set can1 down
sudo ip link set can1 up type can bitrate 500000
- 通信テスト(片方向) can-utils を使用してデータを送受信します。
ステップ A:R21xx(CAN1)送信 → R22xx(CAN0)受信
-
R22xx: candump can0
-
R21xx: cansend can1 123#DE.AD.BE.EF.CA.FE.00.11
ステップ B:R22xx(CAN0)送信 → R21xx(CAN1)受信
-
R21xx: candump can1
-
R22xx: cansend can0 555#1122334455667788
USB ハブテスト
USB ハブをテストするには、次の手順を使用します。
- lsusb コマンドを実行して、USB ハブが検出されているか確認します。このコマンドは、ハブを含む接続されているすべての USB デバイスを一覧表示します。
lsusb
このコマンドを実行すると、システムに接続されている USB デバイスに関する情報が表示され、その中に存在する USB ハブも含まれます。 USB ハブが正常に動作していれば、lsusb コマンドの出力にその詳細が表示されます。表示されない場合は、ハブまたはシステムへの接続に問題がある可能性があります。そのような場合は、USB ハブまたはその接続をトラブルシューティングする必要があります。
RTC(Real-Time Clock)テスト
Real-Time Clock(RTC)の機能をテストするには、次の手順に従います。
- 自動時刻同期を無効にします。
sudo systemctl stop systemd-timesyncd
sudo systemctl disable systemd-timesyncd
- 時刻を設定します。 RTC に特定の日付と時刻を設定します。
sudo hwclock --set --date "2025-10-23 16:00:00"
- RTC 時刻をシステムに同期します システム時刻を RTC 時刻に合わせて更新します。
sudo hwclock --hctosys
- RTC 時刻を確認します。
sudo hwclock -r
このコマンドは、RTC に保存されている時刻を読み出して表示します。
- RTC から電源を取り外し、数分待ってから再接続し、RTC が正しい時刻を保持しているかもう一度確認します。

ウォッチドッグタイマーのテスト
ウォッチドッグテストを実行するには、次の手順に従います:
- ウォッチドッグソフトウェアをインストールします:
sudo apt install watchdog
- ウォッチドッグの設定ファイルを編集します:
# make sure you install vim already, if haven't, can install by the command below
sudo apt-get install vim
sudo vim /etc/watchdog.conf
設定を次のように変更します:
watchdog-device = /dev/watchdog
# Uncomment and edit this line for hardware timeout values that differ
# from the default of one minute.
watchdog-timeout = 120
# If your watchdog trips by itself when the first timeout interval
# elapses then try uncommenting the line below and changing the
# value to 'yes'.
#watchdog-refresh-use-settimeout = auto
# If you have a buggy watchdog device (e.g. some IPMI implementations)
# try uncommenting this line and setting it to 'yes'.
#watchdog-refresh-ignore-errors = no
# ====================== Other system settings ========================
#
# Interval between tests. Should be a couple of seconds shorter than
# the hardware time-out value.
interval = 15
max-load-1 = 24
#max-load-5 = 18
#max-load-15 = 12
realtime = yes
priority = 1
必要に応じて、他の設定も調整できます。
- ウォッチドッグサービスが動作していることを確認します:
sudo systemctl start watchdog
- ウォッチドッグ機能をテストするには、次のコマンドを実行してシステムハングをシミュレートします:
sudo su
echo 1 > /proc/sys/kernel/sysrq
echo "c" > /proc/sysrq-trigger
このコマンドはカーネルクラッシュを引き起こし、ウォッチドッグによってシステムが再起動されるはずです。
- 指定したタイムアウト時間後にシステムが再起動することを確認するため、システムを監視します。 これらの手順により、システム上のウォッチドッグタイマーの機能をテストし、確認することができます。

GPIO によるブザーの制御
ブザーに対応する GPIO は gpio627 です。ブザーをオン/オフするには、次のスクリプトを入力します:
- ブザーをオンにする:
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 1 > /sys/class/gpio/gpio627/value
- ブザーをオフにする:ブザーをオフにする:
echo 627 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio627/direction
echo 0 > /sys/class/gpio/gpio627/value
TPM 2.0
TPM 2.0 モジュールをデバイスに接続している場合、次のコードで TPM 接続を確認できます。
ls /dev | grep tpm
出力の解釈:
出力に tpm0 と tpmrm0 が表示されている場合、TPM(Trusted Platform Module)デバイスがシステム上で検出され、利用可能であることを意味します。これは TPM ハードウェアが認識され、アクセス可能であることを示しており、良好な状態です。TPM 関連の機能やアプリケーションを、デバイスが存在しアクセス可能であることを前提に進めることができます。
ATECC608A
ATECC608A デバイスとやり取りしてランダムなシリアル番号を生成するには、次の手順に従います:
- atecc-util リポジトリをクローンします:
curl -LJO https://github.com/wirenboard/atecc-util/releases/download/v0.4.12/atecc-util_0.4.12_arm64.deb
- .deb パッケージの内容を現在のディレクトリに展開します:
dpkg -x ./atecc-util_0.4.12_arm64.deb .
- atecc ディレクトリに移動します:
cd usr/bin
- ランダムなシリアル番号を生成します:
./atecc -b 10 -s 192 -c 'serial'
このコマンドは、ATECC ユーティリティにスロット 10(-b 10)を使用し、シリアル番号サイズを 192 ビット (-s 192) に設定し、ランダムなシリアル番号 (-c 'serial') を生成するよう指示します。出力は、"01235595d3d621f0ee" のような生成されたシリアル番号になります。 このプロセスにより、ATECC608A デバイスとやり取りし、ランダムなシリアル番号の生成など、さまざまな操作を実行できます。
EEPROM とのやり取り
EEPROM(Electrically Erasable Programmable Read-Only Memory)とやり取りするためのコマンドは次のとおりです:
- EEPROM デバイスファイルに対して、読み取り・書き込み・実行のフルパーミッションを付与します:
sudo chmod 777 /sys/bus/i2c/devices/10-0050/eeprom
- 文字列 "This is a test string" を EEPROM デバイスに書き込みます:
echo "This is a test string" > /sys/bus/i2c/devices/10-0050/eeprom
- EEPROM デバイスの内容を読み取り、hexdump ユーティリティを使用して 16 進数 形式で表示します:
cat /sys/bus/i2c/devices/6-0050/eeprom | hexdump -C
SSD 検出の確認
SSD を含むディスクを一覧表示するには、fdisk -l コマンドを使用できます。方法は次のとおりです:
sudo fdisk -l
このコマンドは、システムに接続されているすべてのディスクの一覧を表示し、正しく検出されていれば SSD も含まれます。SSD を表すエントリを探してください。通常、/dev/sd に続いて文字(例:/dev/sda, /dev/sdb, など)が付きます。 SSD に対応するエントリを特定したら、必要に応じてパーティション作成やフォーマットを行うことができます。
安全なシャットダウンのための UPS
CPU と DC 電源入力の間の GPIO6 は、電源が落ちたときに CPU に警告を出すために使用されます。その後、CPU はスーパキャパシタのエネルギーが尽きる前にスクリプト内で緊急処理を行い、"$ shutdown" を実行する必要があります。 この機能を使用する別の方法として、GPIO ピンの変化をトリガとしてシャットダウンを開始する方法があります。指定された GPIO ピンは、KEY_POWER イベントを生成する入力キーとして設定されます。このイベントは systemd-logind によって処理され、シャットダウンが開始されます。
- ハードウェア接続。
UPS デバイスの 'CM5_UPS_DET' ピンが、R21xx デバイスの GPIO16 ピンに接続されていることを確認してください。
- 設定ファイルを変更します。
- ターミナルを開きます。
- 次のコマンドを実行して設定ファイルを編集します:
sudo nano /boot/firmware/config.txt
- ファイルの末尾に次の内容を追加します:
dtoverlay=gpio-shutdown,gpio_pin=GPIO16,active_low=1

エディタを保存して終了します(Ctrl+O で保存し、Enter で確定、Ctrl+X で終了します)。
- Python スクリプトを準備します
- 新しい Python スクリプトファイルを作成します:
cd ~
sudo nano ups_shutdown.py
- 次のコードをファイルにコピー&ペーストします:
import RPi.GPIO as GPIO
import time, os
num = 0
GPIO.setmode(GPIO.BCM)
# Set GPIO16 to input mode
# Add 500ms anti-shake time to stabilize the software
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.add_event_detect(16, GPIO.FALLING, bouncetime=500)
while True:
if GPIO.event_detected(16):
print("...External power off...")
print("")
# Sync data to disk
os.system('sync')
print("...Data saving...")
print("")
# Sleep for 3 seconds
time.sleep(3)
# Synchronize data again
os.system('sync')
# Countdown 5 seconds
while num < 5:
print('----------')
s = 5 - num
print('---' + str(s) + '---')
num = num + 1
time.sleep(1)
print('----------')
# Execute shutdown command
os.system('sudo shutdown -h now')
エディタを保存して終了します(Ctrl+O で保存し、Enter で確定、Ctrl+X で終了します)。
- スクリプトを実行します。
- ターミナルを開きます。
- 次のコマンドを実行してスクリプトを実行します:
sudo python3 ups_shutdown.py
sudo を使用して、スクリプトがシャットダウンコマンドを実行するのに十分な権限を持つようにします。
- 電源障害テストをシミュレートします
- 外部電源を切断します。
- システムが自動的にデータを保存してシャットダウンするかどうかを確認します。

- 結果を確認します
- 電源を再接続します。
- システムデータが完全で、正常に起動するかどうかを確認します。
- UPS 機能については、詳細情報についてお問い合わせください。
- アラーム信号はアクティブ Low です。
AI アクセラレータ
reComputer Industrial R21xx の M.2 M-KEY 2240 スロットは、PCIE M.2 AI アクセラレータを搭載できるように設計されています。また、R21xx-12 シリーズには最大 26TOPS の Hailo-8 M.2 AI アクセラレーションがプリインストールされています。 R21xx-10 シリーズ製品を購入した場合は、AI 機能を有効にするために Hailo の NPU モジュールを別途購入する必要があります。 デバイスには Hailo アクセラレータドライバがプリインストールされているため、そのまま使用してテストケースを実行できます:
- テストケースディレクトリに移動します
cd /mnt/hailo-rpi5-examples/
- 仮想環境を起動します
source ./setup_env.sh
- シンプルな検出サンプルを実行します
python basic_pipelines/detection_simple.py

アプリケーションを終了するには、Ctrl+C を押します。
これは検出サンプルの軽量版であり、CPU 負荷を最小限に抑えつつ Hailo の性能を示すことに主眼を置いています。内部の GStreamer ビデオ処理パイプラインは、ビデオ処理タスクを最小限にすることで簡略化されており、YOLOv6 Nano モデルが使用されています。
購入されたreComputerにHailo-8が含まれておらず、統合用にHailoデバイスの購入を検討している場合は、公式のHailoドキュメント(https://github.com/hailo-ai)を参照して、ファームウェアと環境を構成し、サンプルを実行してデバイスが正常に使用できることを確認してください。
PoE IPカメラ
reComputer Industrial R22xxシリーズは、高密度IPビデオストリームおよび産業オートメーション向けに設計されています。5つの物理ギガビットEthernetポートを備え、ハイブリッドバスアーキテクチャにより最大限の帯域幅と安定性を確保します。
内部バス構成:
- eth0(ネイティブ):SoCに直接接続されています。最も低いレイテンシを提供し、プライマリアップリンク(WAN)または管理ポートとして使用することを推奨します。
- eth1(USB拡張):ネイティブポートの隣にある単独のポートです。USB 3.0バス経由で拡張され、PoE出力をサポートします。
- eth2, eth3, eth4(PCIe拡張):連続する3つのポートです。これらはPCIeバス経由で拡張され、PoE出力をサポートします。
- 技術仕様
| カテゴリ | 仕様 | 備考 |
|---|---|---|
| 総ポート数 | 1(ネイティブ)+ 4(拡張) | 5x RJ45 ギガビットEthernet |
| PoEモード | Alternative A(モードA) | データペア(1/2, 3/6)経由で給電 |
| ポートあたりのPoE出力 | 12W(最大) | 標準的なIPカメラ向けに最適化 |
| 並列PoE出力 | 4ポートすべてが同時に12Wをサポート | システムへの十分な電源入力が必要 |
| 電源入力範囲 | 9V - 36V DC | 内部昇圧回路によりPoE用に48Vへ昇圧 |
| 安全機能 | 過電流・低電圧保護 | ホットプラグは禁止されています |
- 重要な安全ガイドライン
- ホットプラグ禁止:
警告:PoE電源が有効(GPIO High)の状態でEthernetケーブルを抜き差しすると、過渡サージが発生し、LAN7800またはPCIeブリッジチップを損傷する可能性があります。必ず「先に接続、後で給電(Connect First, Power Second)」の原則に従ってください。
- 電源の推奨事項:
本製品は9V入力をサポートしていますが、4つのPoEポートすべてがフルロード(4 × 12W)の場合でも高い変換効率を確保するため、少なくとも72W(3A)容量の24V産業用電源の使用を推奨します。
- 設定手順
- ステップ1:競合するサービスを無効化
デスクトップ向けネットワークマネージャが産業用の静的IP設定を上書きしないように、
NetworkManagerを無効化します。
# Switch to systemd-networkd
sudo systemctl disable --now NetworkManager
sudo systemctl mask NetworkManager
sudo systemctl enable --now systemd-networkd
- ステップ2:PoEの自動給電(GPIO)を有効化
起動時にPoE電源が有効になるように、
exit 0行の前に以下のコマンドを/etc/rc.localに追加します。
# Export and set PoE Enable Pin (Example: GPIO 532)
echo 652 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio652/direction
echo 1 > /sys/class/gpio/gpio652/value
- ステップ3:マルチインターフェースIPの展開
各ポートに独立したサブネットを割り当て、
eth0がインターネットアクセス用のデフォルトゲートウェイとして維持されるように RouteMetric を使用します。
# Configure eth0 (WAN/DHCP) - Highest Priority
sudo bash -c 'cat > /etc/systemd/network/10-eth0.network <<EOF
[Match]
Name=eth0
[Network]
DHCP=yes
[DHCPv4]
RouteMetric=10
EOF'
# Configure eth1-eth4 (Static IP Segments)
for i in {1..4}; do
sudo bash -c "cat > /etc/systemd/network/20-eth$i.network <<EOF
[Match]
Name=eth$i
[Network]
Address=10.0.$((i+2)).10/24
[IPv4]
RouteMetric=$((100+i))
EOF"
done
- 検証とトラブルシューティング
- バス接続の確認
lspciとlsusbを使用して、すべてのコントローラがシステムに認識されていることを確認します:
- PCIe拡張ポート(eth2-4):
lspci | grep Ethernetを実行 - USB拡張ポート(eth1):
lsusb -tを実行し、lan78xxドライバを探します。
- FAQ
- Q: カメラが何度も再起動するのはなぜですか?
- A: カメラの消費電力が12Wを超えていないか確認してください。高出力のPTZカメラや強力なIRイルミネータを備えたカメラは、この上限を超える場合があります。
- Q: PoE用に12V DC入力を使用できますか?
- A: はい。内部回路が12Vを48Vに昇圧します。ただし、入力電圧が低いほど変換損失が大きくなるため、12V電源が高電流に対応できることを確認してください。
- Q: インターフェース名がeth1-4ではありません。
- A:
ip linkを使用して実際のカーネル名(例:enp1s0)を確認し、.networkファイル内のName=フィールドを更新してください。
- A:
- 4チャネルPoEカメラ対応状況:

reComputer R22 と reCamera
このガイドでは、RISC-Vプラットフォームを搭載し、迅速なエッジAI展開のために設計されたオープンソースのモジュラーAIカメラであるreCameraを、PoE経由でreComputer R22に接続するための手順をステップバイステップで説明します。Node-REDを使用してRTSPストリームを展開し、R22上でライブ映像をプレビューする方法を扱います。
- ハードウェア接続と初期化
- 対応モデル: reCameraシリーズ(PoEバージョン、例:LH-AR01)。
- 物理接続: 標準的なEthernetケーブルを使用して、reCameraをR22上の任意のPoEポート(eth1-eth4)に接続します。
- PoE電源を有効化:
R22のターミナルで次のコマンドを実行し、48V出力を有効にします:
# Enable GPIO 652
echo 652 > /sys/class/gpio/export
echo out > /sys/class/gpio/652/direction
echo 1 > /sys/class/gpio/652/value

- reCameraの設定(ワンクリックNode-REDインポート)
事前設定済みの flows.json を使用して、認証付きRTSPストリームを素早く展開します。
- ダッシュボードへアクセス: ブラウザを開き、
http://10.0.3.200:1880(reCameraのデフォルトIP)にアクセスします。 - 設定をインポート:
- 右上のメニューアイコン
≡をクリックし、Import を選択します。 - flows.json ファイルをアップロードし、Import をクリックします。
- 右上のメニューアイコン
- カスタム認証(必須):
- フロー内の
RTSP Outputノードをダブルクリックします。 - Authentication セクションで、次の認証情報を設定します:
- Username:
seeed - Password:
seeed
- Username:
- フロー内の
- デプロイ: 右上の赤い Deploy ボタンをクリックします。

- R22でのビデオストリームのプレビュー
R22(CM4/CM5ベース)はハードウェアデコードをサポートしているため、検証にはVLCまたはFFplayの使用を推奨します。
- オプションA:VLC GUIを使用(推奨)
- R22のターミナルで
vlcと入力してプレーヤーを起動します。 - Media -> Open Network Stream に進みます。
- 認証付きRTSP URLを入力します:
rtsp://seeed:[email protected]:554/live - Play をクリックします。
- オプションB:コマンドラインを使用(クイックテスト)
次のコマンドをコピーしてそのまま実行します:
ffplay -fflags nobuffer -flags low_delay rtsp://seeed:[email protected]:554/live
- トラブルシューティング
| 問題 | 想定される原因 | 解決策 |
|---|---|---|
| 10.0.3.200 にPingできない | R22内部IPの競合 | eth3/eth4 の両方が 10.0.3.10 を使用していないか確認し、一方を手動で変更します。 |
| reCameraが起動しない | PoE電源が有効になっていない | GPIO 652 が 1 に設定されていること、および入力電源が 12V/3A 以上であることを確認してください。 |
| 映像の遅延/ラグ | ネットワークまたはMTUの問題 | R22とreCamera間に大量のブロードキャストトラフィックが発生していないことを確認してください。 |

技術サポートと製品ディスカッション
当社製品をお選びいただきありがとうございます。私たちは、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選択いただける、複数のコミュニケーションチャネルをご用意しています。