TOPへ戻る

注意事項

ここで扱っているものの改造、分解に関して、このHPの管理者は一切責任をおいません。
自己責任でお願いいたします。

HDMI Dummyアダプタ EDID 実験ボードを基板化しました



Ayano 部品配布

HDMIダミーコネクタまたは、HDMI 4K エミュレータ

STICK PCを液晶ディスプレイ無しで、ホストPCからリモートデスクトップ機能(VNC)を使って使う場合、画面が真っ暗に
なり使えません。
(※Termviewerを使うと使えるっぽいですが、私の環境ではMacからは×で、iPadからしか使えませんでした)
また、Macをヘッドレスで使う場合は、レスポンスをあげるために、HDMI ヘッドレス・ビデオアクセラレータや
ダミーHDMIアダプタが必要になります。

たぶん仕組みは簡単なのでしょうということで、作ってみました。

HDMIヘッドレス化への下準備

HDMIヘッドレス化というのは、HDMI端子にディスプレイに接続しないで使いましょうという方法です。
まず、ぐぐるとASCII.jpさんの記事【スティックPC「m-Stick」“ヘッドレス”化で、液晶ディスプレーを不要にする】にたどり着きます。
記事によると【HDMI端子に差さずに起動したm-Stickに対して、スマホ・タブレットからリモート接続すると、
真っ暗な状態の画面が表示されてしまう。】
だそうで、HDMI端子用のダミーアダプターというものが必要になります。

Mac miniでもヘッドレス化した時に必要になります。
HDMI Headless Video Accelerator
EDID: 一般的な問題の診断と解決の手引き
fit-Headless 4K

更に調べていくと、HDMIにはEDIDというEEPROMが存在して、そこに解像度などのデータが書き込まれています。
wiki Extended Display Identification Data
EEPROMを準備する
20090814 ウエスティングハウスL2410NMの滲み
BenQ 24インチワイド液晶モニタ G2400W のHDMI端子に泣かされた>>254こと◆AlzcN.COmM
VESA DDC(EDID)ってなんだ?
Editing the EDID


HDMIダミーアダプタの回路図を考える
回路は、STICK PCに接続できるようにする為に、以下のような仕様です。
・HDMIメスコネクタ(Macに取り付ける場合はオスが良いですね)
・EEP-ROMは簡単入手が出来る 24C02。
・ディスプレイのEDID情報が読み出せるように、EEP-ROMのアドレスが変更できるように。
・EEP-ROMの読み出し、書き込みはArduinoを使う。
・アダプタ形式にする。


クリックすると画像が大きくなります

まずは、実験回路を組むために、材料はaitendoで購入。

HDMIダミープラグ(HDMI DUMMY PLUG)を自作してみました

部品番号

部品名

仕様

価格

URL

CN1

HDMIコネクタwith基板 [IFB-HDMI19AW01-F]

メス(StickPC用)

245円

URL

CN1

HDMIプラグwith基板 [HDA-M-CN01-2P]

オス(Mac用)

245円

URL

U1

2線シリアルEEPROM(5個入) [AT24C02C]

EEPROM

100円

URL

C1

0.1uF

パスコン

 

URL

R1,R2

47kΩ(インターネットの情報より)

抵抗

 

URL

R3

10kΩ(インターネットの情報より)

抵抗

 

URL

JP1,JP2

細ピンヘッダ(2.54mm/単列/60P) [PH254S-6X6-60P]

ピンヘッダ

 

URL

(JP2)

カラージャンパー(10個入り) [CJUMPER254-10P]

ジャンパー

 

URL



(Bluetoothモジュールは余計です(^^;)







途中で、EEP-ROMはSMTである必要が無かったなと、振り返りながらポリウレタン配線で回路を作りました。


HDMI DUMMY エミュレータスケッチ

■コマンド一覧

コマンドは以下の5種類を用意しました。

コマンド

説明

備考

*IDN? スケッチのバージョンを表示します。  
EPR? EEP-ROMからデータを読み込みます。  
DUMP? 読み込んだデータを再表示します。  
EPW? 読み込んだデータをEEP-ROMに書き込みます。  
CHK? チェックサムを再計算します。  
MEM 指定したアドレスにデータをセットします。  

■使い方
Arduino IDE にスケッチを読み込ませます。


Arduino とパソコンをUSBで接続します。また、HDMIダミーアダプタも接続します。




スケッチを書き込みます。

ツールのシリアルモニタを選択します。

ボーレートは9600bpsに設定します。
HDMI 24C02 Writer/Reader Ver0.2が表示されます。(2行表示されるのは?です)

EPR?コマンドを送ると、EEP-ROMからデータを読み込みます。
※このコマンドを使うときに、ディスプレイとHDMIダミーアダプタを接続し、EEP-ROM基板のJP2を+5Vに設定すると、
ディスプレイ側のEDID情報を読み込みます。


MEMコマンドでメモリ内容を変更します。
構文チェックを入れてないので 【MEM nnnn:d1 d2 ... d15 d16】nは4桁のアドレス、dnはデータを設定します。
下記例は0x0060からデータを設定しています。


chk?コマンドでチェックサムを再計算して、dump?コマンドで編集中のデータを表示します。


epwコマンドで編集中のデータをEEP-ROMに書き込みながらベリファイを行います。



HDMI DUMMY エミュレータを使ってみる

HDMIダミーアダプタをDG-STK3に接続します。



Teamviewerで、DG-STK3に接続します。


こんな感じに、勝手に作ったEDID情報を元にディスプレイに選択された名前、各種解像度が選択できるように
なります。


HDMI DUMMY基板のアートワーク

基板のアートワークは、eagle を使いました。(※練習で作ったので基板は作りませんw)

まずは、基板の大きさを決めて、部品をレイアウト


はんだ面側にGNDのみのパターンを引く。


部品面・はんだ面ともに、Autorouter(自動配線)でパターンを引く。


はんだ面にベタGNDパターンを作って完成。


eagle upに出力してみました。それっぽい!




2016/02/03 1版