インターフェースの使用方法
はじめに
reComputer J401 carrier board は NVIDIA Jetson Orin Nano/NX(Orin Nano 4GB/Orin Nano 8GB、Orin NX 8GB/Orin NX 16GB) をサポートし、卓越した性能を発揮して、エッジコンピューティングの困難なタスクにも容易に対応できるよう設計されています。産業オートメーションシステムの開発や強力な AI アプリケーションの構築などに最適な選択肢です。
本ボードはネットワーク機能として、高速なネットワーキングを実現する 1x ギガビット Ethernet ポート を備えています。また、4x USB 3.2 Type-A(10Gbps)ポート、1x USB 2.0 Type-C ポート、1x CAN コネクタ を搭載し、多様な接続オプションを提供します。この拡張ボードには SSD カード用に 1x M.2 Key M 2280(128GB NVMe 2280 SSD 付属)と、LTE ワイヤレス接続拡張用の 1x M.2 Key E スロットが実装されています。
さらに、ボード上では複数の周辺機器がサポートされています。2x 15 ピン MIPI-CSI と 1x HDMI 2.1 コネクタにより、高品質なビデオコンテンツのキャプチャおよび表示が可能で、カメラやディスプレイを接続できます。また、5V PWM ファンヘッダ、1 つの RTC ソケット、および 2 ピン RTC ヘッダ も備えています。
ボードは 9〜19V DC の広い入力範囲をサポートしており、さまざまなコンピューティングタスクへ柔軟に組み込むことができます。動作温度範囲は -10°C から 60°C です。
アクセサリの推奨については、reComputer J401 のバンドルページ を参照してください。
260 ピン SODIMM
260 ピン SODIMM の主な機能は、キャリアボードを NVIDIA Jetson Orin Nano 4GB/NVIDIA Jetson Orin Nano 8GB、NVIDIA Jetson Orin NX 8GB/NVIDIA Jetson Orin NX 16GB と接続することです。
接続概要

接続が正しければ、電源アダプタを接続したときに電源インジケータが点灯します。
M.2 Key M
M.2 Key M は、PCIe(Peripheral Component Interconnect Express)インターフェースを使用して高速データ転送をサポートする M.2 コネクタの物理的および電気的レイアウトに関する仕様です。M.2 Key M コネクタは、ソリッドステートドライブ(SSD)やその他の高性能拡張カードをマザーボードやその他のホストデバイスに接続するためによく使用されます。「Key M」という名称は、接続可能なデバイスの種類を決定する、M.2 コネクタの特定のピン構成とキー形状を指します。
対応 SSD は以下のとおりです
- 128GB NVMe M.2 PCle Gen3x4 2280 Internal SSD
- 256GB NVMe M.2 PCle Gen3x4 2280 Internal SSD
- 512GB NVMe M.2 PCle Gen3x4 2280 Internal SSD
- 1TB NVMe M.2 PCle Gen3x4 2280 Internal SSD
- 2TB NVMe M.2 PCle Gen3x4 2280 Internal SSD
接続概要
付属の SSD を取り外して新しいものを取り付けたい場合は、以下の手順に従ってください。

使用方法
接続された SSD に対して簡単なベンチマークを行う方法を説明します。
- ステップ 1: 以下のコマンドを実行して書き込み速度を確認します。
sudo dd if=/dev/zero of=/home/nvidia/test bs=1M count=512 conv=fdatasync
- ステップ 2: 以下のコマンドを実行して読み取り速度を確認します。書き込み速度のコマンドを実行した後に実行するようにしてください。
sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches"
sudo dd if=/home/nvidia/test of=/dev/null bs=1M count=512
M.2 Key E
M.2 Key E は、Wi-Fi や Bluetooth カードなどのワイヤレス通信モジュールをサポートする M.2 コネクタの物理的および電気的レイアウトに関する仕様です。「Key E」という名称は、ワイヤレスネットワークデバイス向けに最適化された、M.2 コネクタの特定のピン構成とキー形状を指します。M.2 Key E コネクタは、ワイヤレス接続オプションを必要とするマザーボードやその他のデバイスによく搭載されています。ここでは Intel wifi/bluetooth モジュールを推奨します。
接続概要

使用方法
wifi/bluetooth モジュールを取り付けると、右上隅に wifi/bluetooth のアイコンが表示されます。

Wi-Fi テスト
ifconfig

Bluetooth テスト
bluetoothctl
power on #open bluetooth
agent on #registe agent
scan on #search other bluetooths
connect xx:xx:xx:xx #connect target bluetooth
paired-devices #show all paired devices

CSI カメラ
CSI は Camera Serial Interface の略です。これは、イメージセンサからホストプロセッサへビデオデータを転送するためのシリアル通信インターフェースを記述する仕様です。CSI は、モバイルデバイス、カメラ、組み込みシステムで一般的に使用され、画像およびビデオデータを処理・解析するために、高速かつ効率的な転送を可能にします。
対応カメラは以下のとおりです
-
IMX219 カメラ
-
IMX477 カメラ
接続概要
ここでは 2 つの CSI カメラコネクタは CAM0 と CAM1 としてマークされています。2 つのうち任意のコネクタに 1 台のカメラを接続することも、2 台のカメラを同時に両方のコネクタに接続することもできます。

使用方法
ターミナル(Ctrl+Alt+T)を開き、以下のようにコマンドを入力します:
sudo /opt/nvidia/jetson-io/jetson-io.py

- Method 1
- Method 2
CAM0 ポートの場合
nvgstcapture-1.0 sensor-id=0
CAM1 ポートの場合
nvgstcapture-1.0 sensor-id=1
カメラのさらなる設定を変更したい場合は、"nvgstcapture-1.0 --help" と入力して、利用可能なすべての設定可能なオプションにアクセスできます。
CAM0 ポートの場合
gst-launch-1.0 nvarguscamerasrc sensor-id=0 sensor-mode=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=20/1, format=NV12' ! nvvidconv ! xvimagesink
CAM1 ポートの場合
gst-launch-1.0 nvarguscamerasrc sensor-id=1 sensor-mode=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=20/1, format=NV12' ! nvvidconv ! xvimagesink
カメラのさらなる設定を変更したい場合は、width、height、framerate、format などの引数を更新できます。
RTC
RTC は Real-Time Clock(リアルタイムクロック)の略です。これは、メインシステムクロックとは独立して現在の時刻と日付を追跡するクロックです。RTC は、デバイスの電源が切れているときでも正確な時刻を維持するために、コンピュータ、組み込みシステム、その他の電子機器で一般的に使用されます。多くの場合、小型のバッテリで駆動され、電源のオン/オフの間も継続して動作し、時刻と日付の情報を保持します。
接続概要
- Method 1
- Method 2
下図のように、3V CR1220 コイン電池 をボード上の RTC ソケットに接続します。電池の プラス (+) 側が上向きになっていることを確認してください。

下図のように、JST コネクタ付き 3V CR2302 コイン電池 をボード上の 2 ピン 1.25mm JST ソケットに接続します。

使い方
-
ステップ 1: 上述のように RTC バッテリを接続します。
-
ステップ 2: reComputer Industrial の電源を入れます。
-
ステップ 3: Ubuntu デスクトップで右上のドロップダウンメニューをクリックし、
Settings > Date & Timeに移動して、Ethernet ケーブルでネットワークに接続し、Automatic Date & Time を選択して日付と時刻を自動取得します。

Ethernet 経由でインターネットに接続していない場合は、ここで日付と時刻を手動で設定できます。
- ステップ 4: ターミナルウィンドウを開き、以下のコマンドを実行してハードウェアクロックの時刻を確認します。
sudo hwclock
以下のような出力が表示されますが、これは正しい日付/時刻ではありません。

- ステップ 5: 以下のコマンドを入力して、ハードウェアクロックの時刻を現在のシステムクロックの時刻に変更します。
sudo hwclock --systohc
- ステップ 6: インターネットから時刻を取得しないように、接続されている Ethernet ケーブルをすべて取り外し、ボードを再起動します。
sudo reboot
-
ステップ 7: ハードウェアクロックの時刻を確認し、デバイスの電源を切っても日付/時刻が同じままであることを確認します。
-
ステップ 8: お好みのテキストエディタを使用して新しいシェルスクリプトを作成します。ここでは vi テキストエディタを使用します。
sudo vi /usr/bin/hwtosys.sh
- ステップ 9: i を押して 挿入モード に入り、次の内容をファイル内にコピー&ペーストします。
#!/bin/bash
sudo hwclock --hctosys
- ステップ 10: スクリプトを実行可能にします。
sudo chmod +x /usr/bin/hwtosys.sh
- ステップ 11: systemd ファイルを作成します。
sudo nano /lib/systemd/system/hwtosys.service
- ステップ 12: ファイル内に次の内容を追加します。
[Unit]
Description=Change system clock from hardware clock
[Service]
ExecStart=/usr/bin/hwtosys.sh
[Install]
WantedBy=multi-user.target
- ステップ 13: systemctl デーモンをリロードします。
sudo systemctl daemon-reload
- ステップ 14: 作成したサービスをブート時に起動するよう有効化し、そのサービスを開始します。
sudo systemctl enable hwtosys.service
sudo systemctl start hwtosys.service
- ステップ 15: スクリプトが systemd サービスとして稼働していることを確認します。
sudo systemctl status hwtosys.service
- ステップ 16: ボードを再起動すると、システムクロックがハードウェアクロックと同期していることがわかります。
ファン制御
nvfancontrol はユーザ空間のファン速度制御デーモンです。これは、nvfancontrol 設定ファイル内の温度とファン速度のマッピングテーブルに基づいてファン速度を管理します。
nvfancontrol サービスには、Tmargin、キックスタート PWM、ファンプロファイル、ファン制御、ファンガバナなど、いくつかの基本要素があります。これらはすべて、ユーザーの好みに応じて設定ファイルを通じてプログラム可能です。本章では、以下のセクションでそれぞれについて説明します。
nvfancontrol.conf を変更したい場合は、事前に こちら を必ず読んでください
使い方
- Method 1
- Method 2
- ステップ 1: nvfancontrol の systemd サービスを停止します。
sudo systemctl stop nvfancontrol
- ステップ 2: nvfancontrol.conf を変更します。
vi /etc/nvfancontrol.conf
nvfancontrol.conf を変更した後、終了するには Ese と :q を入力します
- ステップ 3: ステータスファイルを削除します。
sudo rm /var/lib/nvfancontrol/status
- ステップ 4: nvfancontrol の systemd サービスを再起動します。
sudo systemctl restart nvfancontrol
- ステップ 1: root モードに入ります。
sudo -i
- ステップ 2: nvfancontrol の systemd サービスを停止します。
sudo systemctl stop nvfancontrol
- ステップ 3: PWM 値を変更します。
echo 100 > /sys/devices/platform/pwm-fan/hwmon/hwmon3/pwm1
値が大きいほどファン速度は速くなります。PWM 値は 0 から 255 の間である必要があります。hwmon3 はあなたのパスではない可能性があるため、自分のパスを確認してください
- ステップ 4: rpm を確認します。
cat /sys/class/hwmon/hwmon0/rpm
GPIO
40 ピンヘッダの詳細は以下のとおりです。
| ヘッダーピン | モジュールピン名 | モジュールピン | SoC ピン名 | デフォルトの用途 | 代替機能 |
|---|---|---|---|---|---|
| 1 | - | - | - | メイン 3.3V 電源 | - |
| 2 | - | - | - | メイン 5.0V 電源 | - |
| 3 | I2C1_SDA | 191 | DP_AUX_CH3_N | I2C #1 データ | - |
| 4 | - | - | - | メイン 5.0V 電源 | - |
| 5 | I2C1_SCL | 189 | DP_AUX_CH3_P | I2C #1 クロック | - |
| 6 | - | - | - | グラウンド | - |
| 7 | GPIO09 | 211 | AUD_MCLK | GPIO | オーディオマスタークロック |
| 8 | UART1_TXD | 203 | UART1_TX | UART #1 送信 | GPIO |
| 9 | - | - | - | グラウンド | - |
| 10 | UART1_RXD | 205 | UART1_RX | UART #1 受信 | GPIO |
| 11 | UART1_RTS* | 207 | UART1_RTS | GPIO | UART #2 送信要求 |
| 12 | I2S0_SCLK | 199 | DAP5_SCLK | GPIO | オーディオ I2S #0 クロック |
| 13 | SPI1_SCK | 106 | SPI3_SCK | GPIO | SPI #1 シフトクロック |
| 14 | - | - | - | グラウンド | - |
| 15 | GPIO12 | 218 | TOUCH_CLK | GPIO | - |
| 16 | SPI1_CSI1* | 112 | SPI3_CS1 | GPIO | SPI #1 チップセレクト #1 |
| 17 | - | - | - | GPIO | - |
| 18 | SPI1_CSI0* | 110 | SPI3_CS0 | GPIO | SPI #0 チップセレクト #0 |
| 19 | SPI0_MOSI | 89 | SPI1_MOSI | GPIO | SPI #0 Master Out/Slave In |
| 20 | - | - | - | グラウンド | - |
| 21 | SPI0_MISO | 93 | SPI1_MISO | GPIO | SPI #0 Master In/Slave Out |
| 22 | SPI1_MISO | 108 | SPI3_MISO | GPIO | SPI #1 Master In/Slave Out |
| 23 | SPI0_SCK | 91 | SPI1_SCK | GPIO | SPI #0 シフトクロック |
| 24 | SPI0_CS0* | 95 | SPI1_CS0 | GPIO | SPI #0 チップセレクト #0 |
| 25 | - | - | - | グラウンド | - |
| 26 | SPI0_CS1* | 97 | SPI1_CS1 | GPIO | SPI #0 チップセレクト #1 |
| 27 | I2C0_SDA | 187 | GEN2_I2C_SDA | I2C #0 データ | GPIO |
| 28 | I2C0_SCL | 185 | GEN2_I2C_SCL | I2C #0 クロック | GPIO |
| 29 | GPIO01 | 118 | SOC_GPIO41 | GPIO | 汎用クロック #0 |
| 30 | - | - | - | グラウンド | - |
| 31 | GPIO11 | 216 | SOC_GPIO42 | GPIO | 汎用クロック #1 |
| 32 | GPIO07 | 206 | SOC_GPIO44 | GPIO | PWM |
| 33 | GPIO13 | 228 | SOC_GPIO54 | GPIO | PWM |
| 34 | - | - | - | グラウンド | - |
| 35 | I2S0_FS | 197 | DAP5_FS | GPIO | オーディオ I2S #0 フレームセレクト |
| 36 | UART1_CTS* | 209 | UART1_CTS | GPIO | UART #1 送信許可 (CTS) |
| 37 | SPI1_MOSI | 104 | SPI3_MOSI | GPIO | SPI #1 マスター出力/スレーブ入力 |
| 38 | I2S0_DIN | 195 | DAP5_DIN | GPIO | オーディオ I2S #0 データ入力 |
| 39 | - | - | - | グラウンド | - |
| 40 | I2S0_DOUT | 193 | DAP5_DOUT | GPIO | オーディオ I2S #0 データ出力 |
UART
UART は Universal Asynchronous Receiver/Transmitter(汎用非同期受信送信機)の略です。これは 2 つのデバイス間でシリアル通信を行うために使用される通信プロトコルです。UART 通信には 2 本のピンが関与し、1 本はデータ送信用(TX)、もう 1 本はデータ受信用(RX)です。非同期であるため、デバイス間で共有クロック信号なしにデータが送信されます。UART は、マイコン、センサ、さまざまな電子機器間の通信など、多くの用途で一般的に使用されています。
接続概要
UART インターフェースは以下のピンを使用しますが、J401 上の別の UART インターフェースを使用することもできます。
| ヘッダーピン | モジュールピン名 | モジュールピン | SoC ピン名 | デフォルトの用途 | 代替機能 |
|---|---|---|---|---|---|
| 6 | - | - | - | グラウンド | - |
| 8 | UART1_TXD | 203 | UART1_TX | UART #1 送信 | GPIO |
| 10 | UART1_RXD | 205 | UART1_RX | UART #1 受信 | GPIO |
J401 を TTL の UART と以下のように接続します。
| J401 ヘッダーピン | 用途 | USB-TTL 変換 | 用途 |
|---|---|---|---|
| 6 | グラウンド | GND | グラウンド |
| 8 | UART1_TXD | U_RX | UART_RX |
| 10 | UART1_RXD | U_TX | UART_TX |

使い方
- Step 1: Windows ノート PC に PuTTy をインストールし、以下のように PuTTy を設定します。

- Step 2: Jetson に PuTTy をインストールし、ターミナル(ALT+Ctrl+T)を開いて次のコマンドを入力します。
sudo apt install putty
- Step 3: Windows 上の PuTTy を使って Jetson に「hello linux」を送信し、Jetson 上の PuTTy を使って Windows に「hello windows」を送信します。
ボーレートが 115200 に設定されていることを確認してください。
結果は次のようになります。

I2C
I2C は Inter-Integrated Circuit(インター・インテグレーテッド・サーキット)の略です。これは、システム内の複数の集積回路間で通信を可能にする、広く使用されているシリアル通信プロトコルです。I2C は 2 本の双方向ラインを使用し、1 本はデータ用(SDA)、もう 1 本はクロック用(SCL)です。I2C バスに接続されたデバイスはマスタまたはスレーブとして動作でき、複数のデバイス同士が通信できます。I2C は、そのシンプルさ、柔軟性、センサ、メモリチップ、その他の周辺機器など、さまざまなデバイスを組み込みシステムや電子機器に接続できる点から広く利用されています。
接続概要
I2C インターフェースは以下のピンを使用しますが、J401 上の他の I2C インターフェースを使用することもできます。
| ヘッダーピン | モジュールピン名 | モジュールピン | SoC ピン名 | デフォルトの用途 | 代替機能 |
|---|---|---|---|---|---|
| 2 | - | - | - | メイン 5.0V 電源 | - |
| 3 | I2C1_SDA | 191 | DP_AUX_CH3_N | I2C #1 データ | - |
| 5 | I2C1_SCL | 189 | DP_AUX_CH3_P | I2C #1 クロック | - |
| 6 | - | - | - | グラウンド | - |
J401 を Grove-3-Axis Digital Accelerometer と I2C で次のように接続します。
| J401 | 用途 | Grove-3-Axis Digital Accelerometer | 用途 |
|---|---|---|---|
| 2 | 5V 電源 | Vcc | - |
| 3 | I2C1_SDA | SDA | I2C_SDA |
| 5 | I2C1_SCL | SCL | I2C_SCL |
| 6 | グラウンド | GND | グラウンド |

テスト
ターミナル(ALT+Ctrl+T)を開き、次のコマンドを入力します。
i2cdetect -y -r 7
コマンド i2cdetect -y -r x の中のチャンネル番号は、ここで示しているものと異なる場合があります。
結果は次のように表示されます。I2C を接続する前はチャンネル 7 上で I2C デバイスは検出されませんでしたが、接続後はアドレス 0x19 の I2C デバイスが検出されました。

ロジック制御用に汎用 IO ピンを使用したい場合は、this wiki を参照してください。
CAN
reComputer J401 シリーズは CAN インターフェースを提供しており、CAN 信号は SOM から TTL/CMOS レベルで直接出力されます。これは標準的な差動信号ではないため、標準的な CAN バスに接続するには外部 CAN トランシーバが必要です。CAN FD フレーム形式をサポートしており、データ長の拡張とより高いデータレートが可能なため、産業オートメーション、ロボット工学、自動車プロトタイピングなど、信頼性が高くリアルタイム性が求められる通信を必要とする用途に適しています。
接続概要

使い方
Step 1. can0 を設定して有効化します。
sudo ip link set can0 down
sudo ip link set can0 type can bitrate 500000
sudo ip link set can0 up
Step 2. 通信テスト。信号を受信するためにターミナルを 1 つ開きます。
candump can0
Step 3. 別のターミナルを開き、信号を送信します。
cansend can0 123#abcdabcd

CAN FD
Step 1. can0 を設定して有効化します。
# Install can-utils Tools
sudo apt update && sudo apt install can-utils -y
# Enable CAN0 interface (FD mode, 5Mbps data segment rate)
sudo ip link set can0 up type can bitrate 500000 dbitrate 2000000 fd on

ステップ 2. 信号を送信するために別のターミナルを開きます。
cansend can0 123#1122334455667788

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