|
Hacking The CTC POV Fan
|
|
Hacking The Cenzic POV Fan こんな BOLG を見て、同様のノベルティーグッツがガラクタ箱に眠っていることを思い出した。
CTC が Rackable システムの宣伝用に作ったノベルティーグッツです。Rackable と言えば2009/5 に SGI を買収し、社名ブランドを SGI にしてしまった会社ですね。まぁそんなことはさておき、Hacking The Cenzic POV Fan を読み進めるとコネクタに I2C のラインが出ているので、こいつをシリアルで書き変えろと書いてあります。フォーマットはビットパターンになっいてるらしい。 ■まずは分解
ん、Cenzic の物と部品の配置が違う! EEPROM は 24C02C だけど、コネクタのピン配置を調べるとこれも違うみたい。どうやら別物っぽいです。コネクタの配置は画像の手前から、Vcc, GND, 不明, SDA, SCL でした。真ん中はマスクチップにつながっており電源を供給した状態で HI 出力、役割はわかりません。 ■ダンプ
I2C であれば Arduino のライブラリでちょろちょろかなぁって楽観するも、やってみるといろいろはまり・・・まず、SCL、SDA は扇風機基板でプルアップされているので特に考慮することはない。Arduino の Wire ライブラリを使うと何故か ROM へのアクセスが安定しない。オシロでみると LOW レベルが 1V 付近に留まっている。AVR 側の入力インピーダンスが高いように見える。 仕方がないので、普通に PIO 操作して通信用のファームを書いて吸い出すことに。で、こんなデータが出てきました。 E2 20 52 41 43 4B 41 42 4C 45 20 26 20 43 54 43 ビットパターンが入っているにしては短いなぁと思いつつ、ビット列を見るためのプログラムを Ruby でささっと作り表示してみる。 000 00 e2 11100010 んが、Cenzic と全然違う。どうやら、CTC の扇風機はアスキーコードで文字を指定、さらに、表示パターンも定義しているようです。表示パターンは数種類あり、数秒間文字を表示(=2)、点滅(=5)、回転方向にワイプインし回転しワイプアウト(=7)、中心からワイプインし回転しワイプアウト(=10)のパターンが確認できました。 文字列の先頭にある1バイト目の上位4ビットは文字列の長さを表現、ただし指定する数字は、文字列の長さ - 1 になっています。例えば、10文字ある場合は9を定義する。下位4ビットは表示パターンのコードを指定する。 この組み合わせをパックにして並べることで次々と文字が現れます。終端は 0x00 っぽい。 ■書き換えてみる 試しにこんなパターンで行くと、 " HI JACK!" 上記のルールに従ってデータを作ると、以下の30バイトになります。 82 20 48 49 20 4a 41 43 4b 21 45 20 48 41 43 4b
できた! 奇麗じゃないけど Arduino のソースはこちら |
Latest update at 2009/10/17 |