M5Stack CoreS3 + WiFi配信対応 DMX512モニターを作った
はじめに
舞台照明で使われるDMX512信号をリアルタイムでモニタリングし、スマートフォンやPCにWiFi配信できるツールを M5Stack CoreS3 で作りました。
現場での照明チェック、卓のch確認、複数人での同時監視に役立ちます。
特徴
- リアルタイムDMXモニタリング: 512ch全データを40Hz以上で受信
- WiFi配信: APモードで最大4台同時接続、WebSocket配信
- バッテリー駆動: 充電しながら使用可能
- 2種類のI/F対応: ISO RS485 Unit / DMX-BASE
機種・インターフェース構成
対応機種
| デバイス | 特徴 |
|---|---|
| M5Stack CoreS3 | ESP32-S3、タッチ対応2インチLCD、バッテリー内蔵 |
| M5Stack Core2 | ESP32、タッチ対応(本記事では割愛) |
対応 RS485 インターフェース
1. ISO RS485 Unit(推奨)
| 項目 | 仕様 |
|---|---|
| 型番 | 隔離されたRS-485/422トランシーバー (CA-IS3092W) |
| 接続 | Port A(Grove) |
| 絶縁 | 電気的絶縁あり(ノイズ耐性高) |
| ピン | RX=GPIO1, TX=GPIO2 |
2. DMX-BASE(スタッキング型)
| 項目 | 仕様 |
|---|---|
| 型番 | DMX-512 Base |
| 接続 | 底面スタッキング |
| 特徴 | XLR 5pin コネクタ搭載 |
| ピン | RX=GPIO10, TX=GPIO7, EN=GPIO6 |
接続比較
| I/F | メリット | デメリット |
|---|---|---|
| ISO RS485 | コンパクト、絶縁あり、安価 | XLR変換が必要 |
| DMX-BASE | XLR直結、見た目プロ仕様 | 本体が大きくなる |
制作過程
1. 開発環境
- IDE: PlatformIO (VSCode)
- フレームワーク: Arduino
-
主要ライブラリ:
- M5Unified / M5GFX(ディスプレイ制御)
- esp_dmx(DMX512受信)
- ESPAsyncWebServer / WebSockets(WiFi配信)
2. 開発の流れ
1. DMX受信基本動作確認
↓
2. LCD表示レイアウト設計
↓
3. WiFi APモード + WebServer実装
↓
4. WebSocket リアルタイム配信追加
↓
5. バッテリー表示・接続状態表示追加
↓
6. 複数I/F対応(ISO RS485 / DMX-BASE)
3. 苦労したポイント
- DMX受信の安定化: esp_dmxライブラリのピン設定でハマった
- WebSocket 30fps配信: JSON生成の最適化が必要だった
- バッテリー表示: 更新タイミングの調整
画面説明
LCD画面(本体)
┌─────────────────────────────────────────────────────────────┐
│ 001-060 DMX-mon 30 100% 004:255 │
├─────────────────────────────────────────────────────────────┤
│ 01 02 03 04 05 06 07 08 09 10 │
│ 000 000 000 255 000 000 000 000 000 255 │
│ ▮ ▮ ▮ █ ▮ ▮ ▮ ▮ ▮ █ │
├─────────────────────────────────────────────────────────────┤
│ 001 ████████████████████████████████████ 512 │
├─────────────────────────────────────────────────────────────┤
│ 40/40Hz WiFi:1 WS:20Hz 25/12/16 09:09 │
└─────────────────────────────────────────────────────────────┘
ヘッダー説明
| 表示 | 意味 |
|---|---|
001-060 |
表示中のch範囲(タッチでページ切替) |
DMX-mon 30 |
WiFi SSID名 |
100% |
バッテリー(緑>50%、黄21-50%、赤≤20%) |
004:255 |
最後に変化したch:値(0以外) |
フッター説明
| 表示 | 意味 |
|---|---|
40/40Hz |
LCD更新Hz / DMXパケットHz |
WiFi:1 |
WiFi接続クライアント数 |
WS:20Hz |
WebSocket送信Hz |
25/12/16 09:09 |
ビルド日時 |
Web UI(スマホ)
接続方法
- スマホ/PCのWiFi設定を開く
-
DMX-mon30(またはDMX-BASE26など) に接続 - パスワード:
dmx12345 - ブラウザで
http://192.168.4.1を開く
Web UI の機能
- ◀▶ ボタン: ページ切替
- ページボタン: 直接ジャンプ(061-120 など)
- リアルタイム更新: WebSocketで約20-30fps
ビルド環境一覧
| 環境名 | SSID | I/F | Port |
|---|---|---|---|
m5stack-cores3-iso485-wifi |
DMX-mon30 | ISO RS485 | COM30 |
m5stack-cores3-iso485-wifi-48 |
DMX-mon48 | ISO RS485 | COM48 |
m5stack-cores3-dmx-base-wifi |
DMX-BASE26 | DMX-BASE | COM26 |
m5stack-cores3-dmx-base-wifi-49 |
DMX-BASE49 | DMX-BASE | COM49 |
ビルド・アップロード
# ISO RS485版(COM30)
pio run -e m5stack-cores3-iso485-wifi --target upload
# DMX-BASE版(COM26)
pio run -e m5stack-cores3-dmx-base-wifi --target upload
配線図
ISO RS485 Unit 接続
M5Stack CoreS3 Port A (Grove)
├── GPIO1 (RX) ← RS485 RO
├── GPIO2 (TX) → RS485 DI
├── 5V → VCC
└── GND → GND
ISO RS485 Unit 端子台
├── A (+)
├── B (-)
└── GND
DMX XLR 5pin
├── Pin 1: GND
├── Pin 2: Data- (B)
├── Pin 3: Data+ (A)
├── Pin 4: NC
└── Pin 5: NC
[📷 配線写真]
DMX-BASE スタック接続
M5Stack CoreS3
└── DMX-BASE(底面スタック)
└── XLR 5pin コネクタ(そのまま接続可)
[📷 スタック写真]
使用場面
[📷 現場で使用中の写真]
- 照明卓のch確認
- DMX信号のデバッグ
- 複数スタッフでの同時監視
- 照明機材の動作確認
まとめ
M5Stack CoreS3 を使って、DMX512モニター + WiFi配信を実現しました。
- バッテリー駆動でポータブル
- WiFiで複数台同時接続
- 2種類のRS485 I/F対応
現場でのDMXチェックに便利なツールになりました。
参考リンク
更新履歴
| 日付 | 内容 |
|---|---|
| 2025/12/16 | 初版作成 |






