アストロシティミニをほったらかしてこんなことやってました。
こちらのblog
や、Twitterなどで広まって
もはや電子工作おっさんみんなが買っちゃったんじゃないかと思われる
「マジョカアイリス」
詳しい成り行きは各種まとめなんかを見てもらうことにして
みんな、この横長 64x480 液晶の特殊性と在庫過多による圧倒的値引きにひかれて買いあさってしまったようです。
ところで、この液晶を真面目に使おうとすると、フラットケーブルの処理やマイコンのプログラムなど、すでに電子工作の猛者と化しているレベルでないと
結構処理の難しい工作になってしまいます。
マジョカアイリス細長LCD、ESP32で完全に動作しました!!!
— PJ@放電屋 (@pcjpnet) 2021年1月5日
回転寿司🍣が出来るようになりました!!!#マジョカアイリスハック pic.twitter.com/IQ7COqeCDO
ここまでの工作、結構むずいです。
しかし、この「マジョカアイリス」、ロットによって本体基板上にmicroSDスロットが搭載されているモデルがあることがわかっています。
このSDカードの中に、おそらく画像や動画が入っているので、これを差し替えてしまえばとりあえず画像が表示できるではないか、というソフトウェア的な取り組みを行ってみました。
内蔵microSDカード、2Gのものと4Gのものが現在確認されています。
ハード側から行ってる人が結構いるのでソフト・ファームのほう行きます。
— ひろみつ(honeylab) (@bakueikozo) 2021年1月5日
引っこ抜いたmicroSDをddしてファイル化しておく
(ファイルシステムより前にブートローダとかがいるかもだから)
binwalkしてみる
JFIFヘッダが見えるけどどうかな…? pic.twitter.com/J8lHPWw9S6
中身を一通り確認しましたが、普通のFATフォーマットのパーティション内に、いくつかのフォルダ、データがあるのみです。
この中で、ルートフォルダにあるAB565.binというファイルが、このオモチャの操作中に表示される画像であることがわかりました。
rawpixelsで見たやつの中に実際に表示されてるやつが見当たらないなーと思って改めてGIMPで開いてみたらもっとたくさん入ってたわ。前半は細長用ので640pixel幅、後半はした液晶のやつのようだ。このファイル内に静止画は全部入ってるな。#マジョカアイリスハック https://t.co/vycMYlj2qO pic.twitter.com/RI321CafUc
— ひろみつ(honeylab) (@bakueikozo) 2021年1月7日
このファイルは16bitRAW画像データが連結された特殊な形式ですので、これを編集しやすくなるように分離し、再度結合できるようにするツールを作成し、ファイルを置き換えてみました。
娘が昨日からおなかを壊してて、それにちょっと前から怪しかったおむつかぶれを直撃してしまい、めっちゃおむつかぶれで一日中ギャンギャン対応してたので #マジョカアイリスハック の進捗が全然ありません。
— ひろみつ(honeylab) (@bakueikozo) 2021年1月7日
とりあえず静止画エクスポータができたのでこれを再コンパイルしてSDカードに書き込もう。 pic.twitter.com/9EoObPiGKG
ファイルをいくつか編集してSDカードを更新してみると…
寿司が流れた!
— ひろみつ(honeylab) (@bakueikozo) 2021年1月7日
これまでのハックは、内蔵の液晶に新しくマイコンを繋き、部品として利用したものですが、
こちらはSDカード内の画像を書き換えて、マジョカアイリスの機能を残したまま、特定の画面で寿司が流れるという点が違います(より酷い)
ということも一定以上の知識がないとわかりにくい pic.twitter.com/82tBIfXqbG
見事、待機時に表示されるアニメーションが変化しました。
液晶を単体で接続したときのように滑らかに動かすことはできませんが、
この工作、はんだ付け等難しい作業が必要ないため、オモチャハックの入り口としてはそこそこ難易度が低く、結果もわかりやすいのでいい教材かと思います。
この作業に必要なC#のプログラムのソースコードは公開しておきます。
SDカード内のAB565.binをばらしてペイントで編集して再度コンバートしてます
— ひろみつ(honeylab) (@bakueikozo) 2021年1月7日
コンバータのソースコードはこちら。
興味のある人は。
必要なら勝手に使って。https://t.co/RRLeMcbRJD pic.twitter.com/VWEZaBDIgD
microSDからコピーしたファイルを使って、このプログラムに読み込ませることでファイルが分離できます。
このソースコード、VisualStudioで作成したものですが、あえてプロジェクトファイルなどは置かず、単一のクラスだけ置いておきます。
そのため、まずはこれをコンパイルして、自分の環境で実行できるというのが最低限必要な力です。それ以下の方はサポートできません。
ここまで登ってきてください。
このソースコードを使って、すでに同様に差し替えに成功されている方もいるようです。
見事に動きました。ありがたや。
— さよなりω🍣西村良太🚑🐤ゆび提出👆🥐🌿💛 (@sayonari) 2021年1月7日
ハニラボさんとこのプログラム。#マジョカアイリスハック https://t.co/mzziuewm8m pic.twitter.com/MT1gDmGPp3
寿司流し、成功しました!
— Nochi (@shikarunochi) 2021年1月7日
ハードウェア改造なしで、待機画面の静止画データを入れ換えてます。 https://t.co/sQ15lvIH8v pic.twitter.com/hIJbeQyI6W
microSD内には、このほかにもアクション時に再生される動画や音声などが収められていますが、まだフォーマットに未確定の部分があるためその部分の差し替えはまだできません。私の興味が続けばその辺もできるようになるかもしれません。
マジョカアイリス AVISのヘッダ情報。
— ひろみつ(honeylab) (@bakueikozo) 2021年1月7日
空白は未解析だけどそのうちわかるだろう。
一応これだけの情報で動画ファイルを抽出可能。
逆変換は空白部分を確定させる必要があると思う。
こういうのは、自分だったらどういう情報を埋めるかな、って考えながら読むとなんとなくわかるようになるよ。 pic.twitter.com/1kJHDUeMw5
「NO HACK,NO LIFE~なんでも分解しちゃうぞ~」
— ひろみつ(honeylab) (@bakueikozo) 2021年1月7日
マジョカアイリスの分解は載ってませんが、スマモッチャー、レトロアーケード、ソフトバンクのフォトフレームなどを分解したり、解析手順などを書いた本をBOOTHで売ってます。
調子に乗って刷りすぎたので在庫がやばいです。https://t.co/ht5nGD29vp