FabGLを使うとESP32から直接D-Sub15に画面出力ができるため、SPI液晶を使うよりも高解像度のUIを、HDMIシールドを使うよりも安価に作成することが可能だ。
しかしVGA_256x384_60HzからSVGA_1280x768_50Hzまでの43種類の解像度/周波数しか選択することができない。
http://www.fabglib.org/fabglconf_8h.html
今回、PlanexのMom-7を使用するにあたり1024×600の解像度の情報をfabglconf.hのPreset Resolution Modelinesに追記した。
追記すべき数値の計算にあたり下記サイトが利用できることがわかった。
XFree86 Modeline
http://xtiming.sourceforge.net/cgi-bin/xtiming.pl
様々な周波数、doublescanの有無、HSyncとVSyncの組み合わせを試した結果、下記をfabglconf.hのPreset Resolution Modelinesに追記しいずれかを選択することで、少なくともサンプルスケッチの「ModilineStudio」では安定して画面出力が可能であるとわかった。
/** Modeline for 1024x600@70d resolution */
#define WSXGA_1024x600_70HzD "\"1024x600@70HzD\" 115.50 1024 1056 1272 1304 600 612 619 631 doublescan"
/** Modeline for 1024x600@70Hz resolution */
#define WSXGA_1024x600_70HzM "\"1024x600@70HzM\" 57.75 1024 1056 1272 1304 600 612 619 631 -HSync -VSync"
/** Modeline for 1024x600@70Hz resolution */
#define WSXGA_1024x600_70HzP "\"1024x600@70HzP\" 57.75 1024 1056 1272 1304 600 612 619 631 +HSync +VSync"
/** Modeline for 1024x600@70Hz resolution */
#define WSXGA_1024x600_70HzMP "\"1024x600@70HzMP\" 57.75 1024 1056 1272 1304 600 612 619 631 -HSync +VSync"
/** Modeline for 1024x600@75d resolution */
#define WSXGA_1024x600_75HzD "\"1024x600@70HzD\" 125.56 1024 1056 1288 1320 600 611 619 631 doublescan"
/** Modeline for 1024x600@75Hz resolution */
#define WSXGA_1024x600_75HzM "\"1024x600@70HzM\" 62.78 1024 1056 1288 1320 600 611 619 631 -HSync -VSync"
/** Modeline for 1024x600@75Hz resolution */
#define WSXGA_1024x600_75HzMP "\"1024x600@70HzMP\" 62.78 1024 1056 1288 1320 600 611 619 631 -HSync +VSync"
現在のところ経験則的に「イケる」とわかった程度の話で、ほかのサンプルスケッチだとどうなるのかわからないので、今後検証していきたいところ。