
任意の文字を表示させる命令は、運用会社の設定で無効にされていた。プラハの公共交通から引き取ったフリップドット式の表示器を動かそうとしたAntonín Král氏は、そこで一度手を止めている。2021年のことだ。
買ったのは退役したBUSE BS 210.Cで、公開資料はない。製造元のBUSE Blanskoに資料を求めても返事はなかった。まず背面カバーの錠を開ける鍵を自分で設計し、3Dプリントするところから始めている。
中を開けると、通信はドイツのバス車載機器向けの規格IBISだった。中身は1200ボー、7ビット、偶数パリティ、ストップビット2の単純なシリアル通信だが、バスの車載電源に合わせて信号線が24Vで動く。パソコンのシリアル端子に直結できない。最初は手元にあったMOSFET2個と抵抗の分圧で変換回路を組んだ。波形は褒められたものではなかったが、行先番号を順に送って実在の路線を見つける程度には動いた。
ところが、任意の文字を印字するaA命令に表示器は反応しない。製造元が配る設定ソフトで命令ごとに有効と無効を切り替えられる仕組みがあり、運用会社がaAを切っていた。Král氏は、誤った表示が出ないようにしたその判断は正しいと書いている。ここで計画は棚上げになった。
2026年に再開した。理由は2つ。保守用の命令の解説を見つけたことと、表示器を柵に取り付けて通行人に一言を届けるという子どもたちの発案だ。まず変換回路を74HC14のシュミットトリガー付きインバーターで組み直した。波形が安定し、製造元の書き込みソフトも動くようになった。
設定を書き換えてaAを有効にすると印字はできた。ただし書式を指定できず、常に大きな文字で出る。書式用の専用言語は、表示器に保存する内容を作るためのもので、IBISの命令には使えなかった。
そこでKrál氏は基板の処理装置に向かった。東芝の16bitマイコンTMP96C141BFで、ファームウェアの入ったEEPROMはソケットで挿さっている。元のプログラムを吸い出し、当時のコンパイラーとリンカーを探し出して、命令を1つだけ持つファームウェアを書いた。その命令は「ビットマップを描く」だけだ。文字をビットマップに変換する処理は、送り出す側のPythonスクリプトに任せる。
最後にESP32をつないだ。MQTTで文字やビットマップを受け取り、シリアルで表示器へ送る。同時に、いま送ったビットマップを送り返す仕組みも入れた。Webの画面が「そう表示されているはず」ではなく、表示器の実際の状態を映すためだ。自作の制御基板に載せ替える案も検討したが、元の基板の作りが良く、捨てるのは惜しいと考えて残した。
変換回路の回路図、IBISの命令表、鍵の3Dデータ、ファームウェアとスクリプトは、いずれも公開されている。表示器はいま柵の上にあり、通りすがりの人へ言葉を映している。


