IJFW開発中!
みなさん「IchigoJam」をお持ちですか?
IchigoJamは、テレビとキーボードを繋げばBASICプログラミングができる1チップのボードです。こどもパソコンということですが、昔懐かしMSX世代のおじさん達にも大人気です。
こどもパソコン IchigoJam
http://ichigojam.net/
その登場から早くも2年が経とうとしていますが、現在も頻繁にファームウェアが更新されています。ファームウェアは新しいバージョンでしかできないことがあったりするので、なるべく更新したいところですね。
ファームウェアの更新方法は多くのサイトで紹介されていますが、電子工作初心者でもより簡単に更新できるようにしよう、というコンセプトから、現在IJFW(IchigoJam Firmware Writer)というボードの開発を進めています。IchigoJamのピンソケットに上から挿す形のボードで、だいたい形になってきたので今回紹介します。
IJFWの主な機能は次の通りです。メインはファームウェア更新ですが、それ以外にも便利な機能を実装しています。
- ファームウェアの自動更新
ファームウェアのファイル(binファイル)を置いたメモリカード(MMCおよび互換カード)をIJFWに挿し、電源を入れると、自動的にファームウェアの書き換えを行います。書き込み後ファイルは消去されます。なおLFN(ロングファイルネーム)には対応していないので、ファームウェアのファイル名を「jam.bin」に変更する必要があります。
- メモリカードへBASICプログラムのセーブ・ロード
IchigoJamからのSAVE/LOADコマンドで、メモリカードへのセーブ/ロードができます。I2C-EEPROMのエミュレーションをしているので、同じ要領(プログラム番号は100?227)で扱えます。セーブされたデータはそれぞれ「IJ100.BAS」のような番号別の1つのファイルになります。生のデータをそのまま記録したバイナリファイルになります。(PCでは扱えない特殊な文字があるのでテキストファイルにはしていません)
- メモリカードへデータの書き込み・読み出し
ある一つのファイルに対して読み書きするモードと、ひたすらデータを追記していくモードがあります。IchigoJamからはI2Cデバイスに見えるのでI2CW/I2CRコマンドを使用します。一つのファイルに対して読み書きするモードは例えばFlashAirとのデータのやり取りに、データを追記してくモードはセンサーログを取り続けるような用途に使用出来ます。
まだ基板の方が完成していないので、プロトタイプのユニバーサル基板になりますが、このような外観になります。
コントローラーとして、IchigoJamと同じマイコンLPC1114FN28を使い、これでファイルシステムの処理も行っています。電源についてはピンソケット経由でIchigoJam側から供給するので別途の電源は不要です。
右側には、秋月電子のUSBシリアル変換のボードが付いていますが、正式版ではオプション扱いにする予定で取り付けるランドのみ用意しています。USBシリアル変換ボードは必須ではありませんが、このボードを取り付けると、たろサ氏が公開しているIJKBが使えてさらに便利になります。
とりあえず、コントローラーのプログラムのみ先行して公開しています。LPC1114FN28ということでmbed環境で作成しました。エェェェェンベッド!!
IJFW_firmware / oks486 (mbed)
https://developer.mbed.org/users/oks486/code/IJFW_firmware/
現時点ではプログラムからハードウェアが起こせる人向けです。
あと、プログラムの各モジュールはある程度の独立性を確保していますので、例えば「FatfsIJFW」のファイル一式をそのまま持ってこれば、同じLPC1114FN28上でメモリカード用のファイルシステムが実現出来ます。LFN非対応かつ最低限の機能しか入れていないので、SDFileSystemライブラリを使うよりFlashROMの消費量は格段に少なくなります。
プログラムの詳細については、また後日解説します。