使い勝手が向上、USキーボードとJPキーボードを交互に入れ替える1Kプログラムができました!
初期ファームウェアに入れておくことで、どちらのキーボードでも使い始めることができます。
EEPROMに退避しておくも良し、もう一度打ち込むも良し!(プログラムは末尾に)
こちら IchigoJam T、右下にある電源スイッチが、IchigoJam S と違います。
どうも途中で部品が変わってしまって耐久度が下がった様子の旧スイッチ
もし壊れてしまったり、動作に不安があったら、交換しましょう!
今回使うのは、こちら「★1回路2接点★スライドスイッチ(10個入) [SS12D07]」
IchigoJam S 同梱スイッチとたぶん同等品です。
(★1回路2接点★スライドスイッチ(10個入) [SS12D07-NL] ← これだとカットなしでOKかも)
ニッパーで表面から旧スイッチをカット。
裏面、はんだ吸い取り線ではんだをきれいに吸い取る。
温かい内に、残っている金属の芯をラジオペンチで引っこ抜く。
IchigoJam 初代、U、T には、スイッチの外装用の差込口はないので、ニッパーで切り取ります。
スイッチの足の幅は若干合いませんが、斜めから挿し込めば入ります。
一箇所はんだづけして、スイッチを表面から手で押さえながら、はんだごてで温め、向きをいい具合に調整。
残りの2ピンもはんだづけすれば完成!
強化スイッチは、カチッと切り替え、安心感あります。
自分で作ったものは、だいたい自分で直せる!
IchigoJamは、誕生当初からハードウェアの基本構成が変わっていないので、最新ファームウェアが適応可能です!
せっかくなら、強化したり、拡張したり、いろいろお楽しみください!
IchigoJam 1.4用、キーボード配置JP/US、切り替えプログラム全文。
1 'EXCHG KBD JP-US POKE#D00,174,35,240,181,197,176,3,145,219,1,27,120,14,51,27,2,2,147,114,182,6,34,232,35,17,0,27,136,53,32,152,71 POKE#D20,67,30,152,65,128,39,0,36,134,29,51,1,1,147,127,0,230,35,27,136,7,44,85,209,2,154,3,153,81,24,58,0 POKE#D40,4,168,152,71,232,35,50,0,27,136,49,0,50,32,152,71,1,155,4,169,226,24,234,35,27,136,18,2,29,0,51,32 POKE#D60,59,0,1,52,168,71,16,44,226,209,5,34,216,52,35,136,17,0,50,32,152,71,5,34,35,136,160,36,17,0,52,32 POKE#D80,152,71,1,155,228,1,27,2,1,147,1,155,23,74,4,168,153,24,230,35,128,34,9,25,27,136,82,0,152,71,232,37 POKE#DA0,5,34,43,136,17,0,50,32,152,71,234,35,27,136,34,0,31,0,128,35,4,169,91,0,51,32,184,71,192,35,1,52 POKE#DC0,255,52,219,1,156,66,224,209,43,136,50,0,49,0,50,32,152,71,43,136,50,0,49,0,52,32,152,71,98,182,2,152 POKE#DE0,69,176,240,189,33,0,80,49,9,2,168,231,0,176,255,255 'JP KBD MAP POKE#E00,1,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,113,49,32,32,32,122,115,97,119 POKE#E20,50,32,32,99,120,100,101,52,51,32,32,32,118,102,116,114,53,32,32,110,98,104,103,121,54,32,32,32,109,106,117,55 POKE#E40,56,32,32,44,107,105,111,48,57,32,32,46,47,108,59,112,45,32,32,92,58,32,64,94,32,32,32,32,10,91,32,93 POKE#E60,32,32,32,32,32,32,32,32,8,32,32,49,92,52,55,32,32,32,48,46,50,53,54,56,27,32,32,43,51,45,42,57 POKE#E80,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,81,33,32,32,32,90,83,65,87,34 POKE#EA0,32,32,67,88,68,69,36,35,32,32,32,86,70,84,82,37,32,32,78,66,72,71,89,38,32,32,32,77,74,85,39,40 POKE#EC0,32,32,60,75,73,79,48,41,32,32,62,63,76,43,80,61,32,32,95,42,32,96,126,32,32,32,32,10,123,32,125,32 POKE#EE0,32,32,32,32,32,32,32,8,32,32,49,124,52,55,32,32,32,48,46,50,53,54,56,27,32,32,43,51,45,42,57,0 'US KBD MAP POKE#F00,0,0,96,32,32,32,32,32,32,32,32,32,32,32,32,32,96,32,32,32,32,32,32,113,49,32,32,32,122,115,97,119 POKE#F20,50,32,32,99,120,100,101,52,51,32,32,32,118,102,116,114,53,32,32,110,98,104,103,121,54,32,32,32,109,106,117,55 POKE#F40,56,32,32,44,107,105,111,48,57,32,32,46,47,108,59,112,45,32,32,92,39,32,91,61,32,32,32,32,10,93,32,92 POKE#F60,32,32,32,32,32,32,32,32,8,32,32,49,32,52,55,32,32,32,48,46,50,53,54,56,32,32,32,43,51,45,42,57 POKE#F80,0,126,32,32,32,32,32,32,32,32,32,32,32,32,32,126,32,32,32,32,32,32,81,33,32,32,32,90,83,65,87,64 POKE#FA0,32,32,67,88,68,69,36,35,32,32,32,86,70,84,82,37,32,32,78,66,72,71,89,94,32,32,32,77,74,85,38,42 POKE#FC0,32,32,60,75,73,79,41,40,32,32,62,63,76,58,80,95,32,32,95,34,32,123,43,32,32,32,32,10,125,32,124,32 POKE#FE0,32,32,32,32,32,32,32,8,32,32,49,32,52,55,32,32,32,48,46,50,53,54,56,32,32,32,43,51,45,42,57,0 2 IF USR(#D00)=#F00 ?"US KEYBOARD" ELSE ?"JP KEYBOARD" 3 NEW
プログラム用のメモリ領域である、#C00-#FFFにキーマップデータと書き換え用のマシン語をPOKEで書き込んでいるので、そのまま本体やEEPROMにSAVEしておけば、いつでも呼び出して切り替えできます。
(C言語のソースはこちら、c4ij src on GitHub)
1.3など以前のバージョンでは、2行のUSR呼び出しでエラーになったり、マシン語部分でフリーズするだけで、壊れることは無いのでご安心ください。
ただ、キーマップやマシン語を打ち間違えて、1.4で動かした場合、OSが変なことになる可能性があるので注意です!
変なことになったら、ファームウェアを入れ直しましょう。
links
- PRODUCTS -IchigoJam- | PCN プログラミング クラブ ネットワーク
- IchigoJam の種類 - イチゴジャム レシピ