M5S3LJ2510 · ハード折り返し試験
DMX出力(TX)を外部ケーブルで自機の入力(RX)へ折り返し、送った値と受け取った値が
ズレなく一致するかを確認する試験。PC・LightJockeyが無くてもM5本体の画面だけで
合否判定できるのが要点。timecode_frame25ms.lj2x(DMXの値そのものに
時刻を埋め込んだ専用データ)を使うと、フレーム単位のタイミングずれまで検出できる。
DMX配線・M5本体のTX/RX回路・USB経由のデータ受け渡しを通しで、値が化けたり遅れたりしていないか
新規個体の受入検査、現場での配線トラブル切り分け、ファーム更新後の回帰確認
M5S3LJ2510本体、DMX-BASEユニットのTX-RXを繋ぐ折り返しケーブル、USB接続したPC(データ投入時のみ)
DMXは差動信号だが、PC本体のUSB電源スイッチングノイズがDMXの差動ラインへ回り込み、 誤動作の原因になることが本プロジェクトの他機種(CoreS3+PWR-485)で実測・再発確認済み (プロジェクト内の既知トラブルとして記録済み)。M5S3LJ2510自体も 本試験ではデータ投入・トリガのためPCとUSB接続した状態で動かしており、 同じリスクを抱えている点に注意。
TXが出たり止まったりする / TX HzやRX Hzが安定しない・
徐々に下がる / 受信側も巻き込まれて信号ロスする / 試験時は問題なくても、
時間が経ってから不安定になる(電源投入直後は正常、というのが典型)。
ノートPCで作業する場合はACアダプタ(充電器)を外してバッテリー駆動にする (充電器自体がノイズ源になりうる)。据置PCや充電が必須の場合は USBアイソレーター(セパレーター)でDMXライン側をPCから電気的に分離する。 いずれも困難なら、機器側はACアダプタ/バッテリー給電単独とし、 書込み・データ投入時だけUSBを挿し、直後に抜く運用にする。
→ だからこそループバック試験は設置・給電構成を変えるたびに再実施する価値がある。 「机上でPC直結・試験は合格」だけで安心せず、現場の実給電構成(ACアダプタ有無・ 同時に繋ぐUSB機器・ケーブル長)で改めて確認するのが本試験の本来の使い方。
M5単体のTX→RXループバックは「M5本体・配線が正しいか」の確認にとどまる。 これに加えてWindows11の「LJシミュレーター」アプリを同時に動かし、その出力と M5の実測結果を突き合わせることで、LJの本番データ→計算→M5実機再生→実測という チェーン全体(システム総合)を検証できる。
実LJ実機を使わずに「LJが出すはずの正しいDMX値」をソフトウェアだけで計算する Windowsアプリ。LJ本体との完全再現試験(W2)に合格済み — 自作シーケンスをLJ実機に 再生させた結果とバイト単位で一致することを確認済み。
①LJシミュレーターが計算した「意図した値」と、②M5がループバック経由で
実測した「実際に出た値」。本ドキュメントの試験(timecode_frame25ms.lj2x)は
合成データだが、実際のLJショーデータ(real_show.lj2x)でも
定常区間100%一致(11567/11567サンプル)を実機検証済み。
DMX配線・M5本体だけでなく、LJデータの解釈・変換・USB転送・再生タイミングの 全経路が実機で正しく動くことの証明になる。今後の音楽・映像同期の発展には 必須の下地。
→ 現状はM5単体のタイムコード試験(本ドキュメントの手順)とLJシミュレーター照合 (実LJショーデータでの同期試験)は別々に実施しているが、いずれ同時実行での 比較確認まで発展させる計画。音楽・映像との同期精度を追い込む土台として、 この「DMXが化けず・遅れず届く」という基礎検証がまず固まっていることが前提になる。
DMX-BASEユニットのDMX OUT(TX)とDMX IN(RX)をXLR等のDMXケーブルで直結する。
PC側から拡張Label210(BEGIN)→211(CHUNK)×N→212(COMMIT)の順で
timecode_frame25ms.lj2xを送る。PKG_STATUS応答が
ok=1であることを確認。
Label 8(RX_ON_CHANGE_REQ)でRXを有効化し、続けて
Label 214(REMOTE_TRIGGER)で再生を開始する(GPIO配線不要、
ソフトウェアだけで開始できる)。
受信データのマジックバイト(ch1=0xA5, ch2=0x5A)をM5側が自動検出し、 通常のch1-8バーグラフから「TIMECODE TEST」表示へ自動で切り替わる。 操作は不要 — 折り返し配線とデータさえ正しければ自動的に出る。
CHECKSUMが緑のOK、d(dec-bin)が
ほぼ0ms付近で推移していれば正常。
CHECKSUM NGや大きめのd(dec-bin)が
一瞬出るのは、USB-CDCの帯域上限による間引き(想定内、下記トラブルシューティング参照)。
常時NGが続く場合のみ配線・機体を疑う。tool_cs/LcdSimulator と同じ方式: 実ファームのビットマップフォントをそのまま移植・ 等倍FB(320×240、1ドット=1画素)・整数倍拡大(ニアレストネイバー、ぼかし無し)。 実機カメラ照合(LcdCompare)にそのまま使えるよう等倍PNGを出力できる。
ループバック配線とデータさえ正しければ、M5側で一切操作せずマジックバイト検出だけで 下記のように自動的に表示が切り替わる。同じ個体・同じカメラ位置で撮影した実写2枚。
起動直後、RXはoff・ch1-8バーグラフは全て0。
WAITING TRIGGERの状態。
タイムコード試験データをアップロード→トリガ後、RXが
ONになりマジックバイトを検出。ch1-8バーグラフの位置に自動で
デコード表示が現れる(CHECKSUM OK=緑、RUNNING状態)。
機種名とホスト接続先(DmxUsbProIF、USB CDC/Serial経由)。
DMX送受信レート(Hz)。右上ドットは緑=送出中/シアン=受信有効/灰=停止。
RXカードのdropはUSB送信バッファが埋まって捨てたフレーム数(下記トラブルシューティング参照)。
受信した先頭8chを棒グラフ化。緑(0-84)/黄(85-169)/赤(170-255)で強さを色分け。
ch11-13(10進 分:秒.センチ秒)を大きく、 ch14-15(2進ミリ秒)・Scene番号・10進2進の差分・ch19チェックサム判定を表示。 これがループバック試験の核心表示。
タイムテーブル再生の内部状態(WAITING TRIGGER→
RUNNING→DONE)。ch1-8/TIMECODE TEST欄が「実際にDMX線に出た値」、
こちらが「M5が再生しているつもりの内部状態」— 両者が一致していれば正しく動いている証拠になる。
| ch | 内容 | 備考 |
|---|---|---|
| 1 | マジックバイト 0xA5 | 試験データかどうかの判定用。これが無ければ通常DMX/黒みと判断 |
| 2 | マジックバイト 0x5A | 同上 |
| 3 | 基準値 255 | Grand Master相当。255でなければ以降の値は信用不可 |
| 4 | 基準値 128 | 同上 |
| 5 | 基準値 16 | 同上 |
| 11 | 経過時間・分(10進) | ch11-13で「分:秒.センチ秒」 |
| 12 | 経過時間・秒(10進) | |
| 13 | 経過時間・1/100秒(10進) | |
| 14 | 経過ミリ秒 u16 LE・下位byte | 10進(ch11-13)とは独立した別系統の時刻表現 |
| 15 | 経過ミリ秒 u16 LE・上位byte | ch14+ch15×256 = 経過ms |
| 16 | Scene/フレーム番号 u16 LE・下位byte | 0起点 |
| 17 | Scene/フレーム番号 u16 LE・上位byte | |
| 19 | チェックサム | = ch11〜18の総和 & 0xFF。不一致 = 受信データが化けている(補間中/破損) |
| 6 | 固定値 1(推定: フォーマットversion) | 仕様書に明記なし、実データからの推測 |
| 7-8 | フレーム間隔ms u16 LE(推定) | 25ms版試験データで実測25と一致 |
| 9-10 | 総エントリ数 u16 LE(推定) | 401フレーム版で実測401と一致 |
ch1-5・11-17・19が正式仕様(実機で100%一致検証済み)。ch6-10は独自の推測で未確定 — 判定にはch19チェックサムだけで足りる。
USB-CDC(115200baud)は519byteのフレームを送るのに約45ms必要だが、DMX受信は約40Hz(25ms間隔)で
更新される。帯域が足りず送信バッファが埋まった分は正しく間引かれる(データ破損ではない)。
RX行のdrop数がこれに対応する。常時NGでなければ正常。
10進(ch11-13)と2進(ch14-15)の値が本来のフレームでも数ms程度食い違うことがある
(生成側 LjTimecodeMap.RenderAt のサンプリング特性、調査中)。
ch19チェックサムがOKなら受信自体は正しいので、この差分は参考値として見る。
ループバック配線の未接続・断線が最有力。次にRX(Label8)有効化忘れ、アップロードの
COMMIT失敗(手順2の警告参照)を疑う。TXカードのHzが動いているのにRXカードが
offのままなら配線を確認する。
間引きではなく実障害の可能性。DMXケーブル・コネクタの接触不良、 あるいはM5本体のTX/RX回路(半田・コネクタ)を疑う。他の折り返し試験機と 差し替えて切り分ける。