Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LEDネームプレート書き込みプロトコルとMac用ソフト

3,594 views

Published on

USBで内容を書き込めるネームプレートサイズのLED電光掲示板(N1248R/G/B/W)に、Mac用の書き込みソフトがなかったのでいろいろ書き込みプロトコルを調べてMac用ソフトを作ったメモ

Published in: Software
  • Be the first to comment

  • Be the first to like this

LEDネームプレート書き込みプロトコルとMac用ソフト

  1. 1. LEDネームプレート N1248R/G/B/W 書き込みプロトコルとMac用ソフト @rnatori 2014.12.4
  2. 2. LEDネームプレート • ちっこくてかわいい • 3000円くらい • USB接続で充電/文章を書き 込み • 8つの文字列(チャンネル) を連続または単独で表示 • Mac版書き込みソフトがない
  3. 3. 参考資料 • Hacking a PL2303 LED Badge in Mac OS (Code Mania attendee badge) • 紹介されているC#のコード(送信内容の解説付き)と Pythonのコードを参考にした。 • Led Mini Board communication Agreement • 上記C#のコードと一緒に置いてある、メーカーのもの らしき文書。英語がブロークンで分かりづらいが、青字 で入れてあるのが直したもののようだ。
  4. 4. シリアル通信 • ボーレート:38400 • パリティとか:8-N-1(データビット8ビット、パリティ無し、ス トップビット1) • PL2303ドライバ • 内部的にUSB-シリアル変換チップを介しているらしく、そのド ライバ • ORSSerialPort • Cocoaからお手軽にシリアルポートを扱うなんか。MIT License。
  5. 5. データはパケットの連続で送信 … データ パケット 終止パケット
  6. 6. データパケット 0x02 0x31 16ビット アドレス64バイトペイロード 8ビット チェック サム • 内蔵EEPROMのアドレスと内容を直接指定する • 先頭は常に0x02、0x31で始まる • 0x02以外の部分のチェックサムを末尾につける
  7. 7. 終止パケット 0x02 0x33 8ビット フラグ 8ビット チェック サム • 文字列データ、フォントなどをパケットの連続で送 信した後に送信 • 8ビットフラグで8つの文字列のうち有効なものを 指定する
  8. 8. EEPROM中身とアドレス 0x0000-0x05ff ASCIIフォント(8x12ド ット)1.5Kbyte 0x0600-0x0dff 256バイト文字列データ x8 2Kbyte 0x0e00-0x3fff 一時的フォント(12x12 ドット)12.5Kbyte
  9. 9. 文字列データ 8ビット スピード250バイト文字列 • スピード:1~5(0x31~0x35) • ファイル名:(0x31~0x38?) • 表示法:A~E(0x41~0x45) • チェックサムは無くても動いてる 8ビット チェック サム 8ビット 名前 8ビット 表示法 256バイト 2バイト 空白
  10. 10. 日本語を表示する • 一時的フォントにビットマップを書き 込む • 各文字は0x80 0xXXのように、0x80 の後にビットマップのインデックスを 指定する
  11. 11. 一時的フォントビットマップ 1バイト目2バイト目 一行12ピクセ ルを2バイトで 表し、合計24 バイトで一文 字
  12. 12. できたもの • 勝手版Mac用書 き込みソフト • PL2303ドライ バが必要
  13. 13. その他 • 付属ソフトでは8つの文字列ファイルのうち、最後の 二つを画像(48x12ピクセル)専用としているが、 これは単に12x12のビットマップフォントとして送 信され、他と違いはないらしい • 付属ソフトでは非ASCII文字列中に複数回登場する文 字も別のビットマップフォントにしている • ASCIIフォントやアニメーションするアイコンの部分 も変えられるはずだがやってみてはいない

×