IchigoJam BASIC に関する Q&A


ここでは IchigoJam BASIC(IchigoJam 付属ファームウェア)に関連する Q&A をまとめています。

このページでの ファームウェア や バージョン はすべて IchigoJam BASIC に関しての事となります。

IchigoJam BASIC に限らないファームウェアの Q&A は IchigoJam/IchigoJam 全般の Q&A にあります。


IchigoJam BASIC を新しいバージョンにするために新しい IchigoJam を購入する必要がありますか?

いいえ。 IchigoJam BASIC のファームウェアは更新可能です。

新しいバージョンを使用するために、必ずしも新しい IchigoJam を購入する必要はありません。

 

USB-シリアルモジュールとジャンパワイヤを用いてパソコン経由で更新を行います。

次のページで USB-シリアルモジュールと更新方法を紹介しています。

 

周辺機器/パソコンと接続

 

完成品・ハーフキットを除く IchigoJam は CPU を外して交換する事が可能です。

これを用いて空の CPU にファームウェアを入れる事で交換して複数のファームウェアを使用可能です。

 

この方法で IchigoLatte も使用できますし、PanCake も更新可能です。

 

ファームウェアの更新が困難な場合は PCN でバージョンアップサービスを行っています。

 

PRODUCTS | PCN -「IchigoJam バージョンアップサービス」があります。

 

東京・秋葉原 の Assemblage(2016年4月より PCN 母艦店になりました)でも行っています。
更新したい IchigoJam と費用 150 円を持って行って下さい。

 

PCN フラッグシップ秋葉原 BY ASSEMBLAGE | PCN

 

また、ファームウェア入りの CPU を扱っています。IC ソケットを付けていて、CPU を外せる場合はご利用いただけます。

 

IchigoJam BASIC ファームウェア入り CPU | ショップのふうせん - 運営者によるネットショップ。最新版を扱っています。


ファームウェアなどのファイルはどこで公開されていますか?

正式版の IchigoJam ファームウェアは、公式サイト 内 ファームウェア でいくつかのバージョンが公開されています。

これは製品の IchigoJam に含まれるファームウェアも同等です。

 

ファームウェア | IchigoJam (公式サイト)

 

これ以外に開発案が Facebook グループ IchigoJam-FAN で公開される場合があります。

開発者 福野 さんが直接公開しています。新しもの好きはここを確認して下さい。

ただし、不具合が発生する可能性が高く、ファームウェアを短期間で更新できる場合前提です。


IchigoJam-FAN 内 | Facebook グループ


ファームウェアは最新版にしておくのが良いですか?

基本的に最新版の方がコマンドが増えていて使い勝手が良く、処理速度も速くなっています。

通常は公式サイトで公開されている正式版の最新版にして下さい。

数ヶ月に一度ファームウェアを更新するようになります。

Facebook では開発版も公開されていますが、この場合は数日で更新される場合もあります。


ファームウェアの更新履歴はありますか?

福野さんがファームウェアを公開した時の内容と実際に使用した確認内容、利用者からの情報などを元に

運営者が独自に履歴をまとめています。

当初は イチゴジャム レシピ トップページ に記載していましたが、長くなってきたため、

現在は IchigoJam BASIC コマンド一覧 に バージョン履歴 のファイルを含めてあります。

 

IchigoJam-BASIC/バージョン履歴.txt | GitHub

 

IchigoJam PC は別途開発されているため、別ファイルにしてあります。

 

IchigoJam-BASIC/バージョン履歴 IchigoJam PC.txt | GitHub


ファームウェアのソースは公開されていますか?

一切公開されていません。ライセンス購入しても提供される事はありません。

 

ファームウェアは LPC1114 に直接入れるバイナリーのみ一般公開され、

「転載禁止・個人利用のみ可」と明示されています。


新しい IchigoJam・互換機 を入手しましたが、従来のプログラムは動作しますか?

IchigoJam T、IchigoJam U、 IchigoJam 初代プリント基板、
ai.Jam などの aitendo 発売互換機、IchigoJam EX はパーツの構成が異なりますが、
同等のファームウェアが入っています。そのため BASIC はそのまま使用可能です。

 

IchigoJam U は発売開始当時のファームウェアが IchigoJam BASIC 1.0.1 となります。

(発売数日間だけ IchigoJam BASIC 1.0.0 で提供されていました)

IchigoJam BASIC 0.9.7 以前向けのプログラムは画面サイズなどの違いで、

そのままでは正常に動作しない事がある事にご注意下さい。

 

IchigoJam T は発売開始当時のファームウェアが IchigoJam BASIC 1.2.1 となります。

IchigoJam BASIC 1.0 以降を使用していた場合、多く修正は発生しません。

PCN 販売では jig.jp の公開に応じて順次更新されています。

販売店では仕入れ段階のバージョンから更新されておらず、古い可能性があります。

 

aitendo で発売されている ai.Jam などの IchigoJam 互換機も同様に考えていただいて構いません。

ファームウェアは IchigoJam BASIC 1.0.1 からとなっています。このファームウェアは更新されていない可能性があります。

 

IchigoJam EX は公開当初の段階でファームウェアの IchigoJam BASIC 1.0.1 と IchigoJam BASIC 0.9.7 を選択できます。

CPU なしも可能です。2017年5月以降 クガデン販売分は 0.9.7〜1.2.0 の選択肢になっています。

aitendo 販売分は 1.0.1 固定です。


以前の IchigoJam プリント基板を所有していますが、ファームウェアを更新して使用できますか?

はい。2014年〜2015年 PCN で販売されていた IchigoJam 初代プリント基板は

現在主流となっている IchigoJam U と数パーツ少ないだけです。

最新のファームウェアへ更新して使用する事ができます。

 

IchigoJam BASIC は 1.1 より外部クリスタルを自動判別するようになったため、

後に 外部クリスタル を入手して付けた場合、

特に特別な作業を行わずに使用するようになります。

また、外した場合でも動作しなくなる心配が要らなくなりました。

(1.0.1 以前は専用のファームウェアへ更新する必要がありました)

 

2016年6月 現在も一部の IchigoJam 販売店では在庫がありますが、

PCN ではすでになくなっているため、なくなった場合は入荷される事はありません。

 

なお、これらは IchigoJam U や IchigoJam 互換機 も同様です。


LPC1114 が搭載されているボードにファームウェアを入れて IchigoJam BASIC が動作しますか?

IchigoJam BASIC については、実際ボードにファームウェアを入れ、シリアル接続で動作が行えた報告を何件か確認しています。

 

しかし、どのボードでも動作する事を保証するものではありません。

ボードによっては LPC1114 の端子が全て出力されていないため、

IchigoJam の全入出力を行えない可能性がありますので、ご注意下さい。


電源を入れたのですが IchigoJam の LED ランプが付いていません。

IchigoJam 初代プリント基板、IchigoJam U、IchigoJam T および ブレッドボード など

LED が 1 つしか付いていない IchigoJam では LED ランプが付いていない状態で正常です。

LED コマンドで点灯・消灯できます。LED 1、LED 0 としてみて下さい。

 

ai.Jam・ai.shuttle.jam および IchigoJam EX などの IchigoJam 互換機は基板に 2 つ以上の LED が付いているものがあり、

こちらは電源連動の LED になっていて、電源を入れると LED が点灯します。


ファームウェアの更新を行ってから、電源を入れても動作しません。IchigoJam の LED ランプが付いています。

xtal の付いたファームウェアを更新しているのに、クリスタル(水晶発振子)を付けていない、または誤って付けている場合に

LED ランプが点灯したままになり、起動しない事が分かっています。

クリスタルを付けて使用し、複数台 IchigoJam を所有している場合はこのケースにご注意下さい。

まれにクリスタルが壊れている場合も LED ランプが点灯します。または画面が乱れる事があります。

 

IchigoJam T・IchigoJam U や ai.Jam など aitendo 互換機の多く、IchigoJam EX は

クリスタルが基板に付いているため、この問題は通常発生する事はありません。

また、ファームウェア 1.0.2 (正式版 1.1.1)より、クリスタルの有無を自動判別するようになったため、このような問題は通常発生しません。

 

LPC1114 のファームウェア書き込みを正常に終わらせながら起動に失敗するケースは少ないようで、
多くの場合は ISP モードに入っていなかったり、端子を誤っていた、
FlashMagic などとは別にターミナルソフトも起動されていたなど、

初歩的な問題で失敗している事が多いです。


上部分がおかしく表示され、全体的に下にずれます。

PanCake・IchigoJam を1画面で表示できる状態にし、

PanCake 側のビデオ出力端子に接続を行った際、

一部環境で IchigoJam の表示が
この状態になる事を運営者が確認しています。

PanCake の表示は正常です。

 

IchigoJam 側のビデオ出力端子だと正常に表示されますので、

IchigoJam 側へ接続してご利用下さい。

 

この状態は PanCake 以外にも

ビデオ信号をジャンパワイヤで伸ばした場合など、

ビデオ信号が弱くなると、

経由する抵抗などの影響によって発生するとの事です。


画面が左右に振れます。

IchigoJam の同期と機器との相性によって
ブレが発生する場合があります。

他にも接続できる環境があれば試してみて下さい。

ビデオなどを用いていたら、
それを経由して接続する方法もあります。

 

運営者が試したところでは、
Easycap という名前の安値ビデオキャプチャで
数ドット分大きく左右に振れていましたが、

クリスタル を付ける事で改善する事ができています。

(クリスタルについては 周辺機器 を参照して下さい)

ただし、この製品はいくつかの業者が作成していて、
いくつか種類があり、中の回路構成が全く異なる場合があります。

更にビューアーを表示させる環境によって変化もあるため、全てで発生するとは限りません。

 

また、USB キーボードに PS/2 の変換コネクタを付けている場合、

キーボードに付属しているコネクタでない場合に

ブレが発生している報告を受けています。

基本的に付属している変換コネクタでないと正常に動作しません。

 

下の「チラツキ」とも関係があるかもしれません。


キーボードのランプが点灯しません。

NumLock・Caps Lock・Scroll Lock のランプは通常消灯の状態です。
IchigoJam の電源を入れた時に一時だけ点灯する状態になれば正常に動作しています。

キーボードが正常に使えるかどうかは実際に入力して確認して下さい。


US 配列のキーボードを接続しましたが、JIS 配列になっています。

IchigoJam が届いた時は JIS 配列になっている状況です。

ファームウェアの更新で US 対応版にする事ができます。IchigoJam BASIC 0.8.9 から対応です。

ichigojam-x.x.x.zip ファイルを解凍した中の us を含むファイルが US 配列版です。

 

IchigoJam Get Starter Kit では US 配列のキーボードが付属するため、

US キーボード版のファームウェアを入れてあります。

また海外向け販売も場合も US キーボード版になっています。


最近公開されているプログラムで先頭にプログラム名が入っているのは理由があるのですか?

IchigoJam BASIC 1.0.0 より

IchigoJam 本体 および EEPROM 内の

プログラムを一覧するコマンド FILES が使えます。

この FILES はプログラムの先頭を表示する仕組みです。

先頭行が 10 として 10 '(プログラム名) とする事で

 '(プログラム名) 部分が FILES で表示されます。

 

この仕様により、IchigoJam BASIC 1.0.0 以降向けで
公開されている IchigoJam のプログラムには

先頭行は '(プログラム名) とするのは常識となりつつあります。

 

ちなみに プログラム一覧・ローダー は FILES 採用前から公開しているプログラムで、

同じように先頭行を表示する仕様にしてあります。これが FILES の仕様に影響を与えているようです。


ファームウェア 1.0 以降で同じキャラクターが2個所に存在します。

IchigoJam BASIC 0.9.7 以前では CHR$(31) 以前にあったキャラクターのうち、

いくつかのキャラクターは IchigoJam BASIC 0.9.8(正式版 IchigoJam BASIC 1.0.0)以降

重なって存在しているところがあります。

これは PRINT CHR$ では 31 までのところにコントロールコードを採用するよう変更したため、

PRINT CHR$ ではもう一方のコードで出力させる必要が発生しているためです。

ここにキャラクターが残っている部分も 5〜31 は後に PRINT CHR$ で表示できなくなる可能性があります。

POKE では 31 以前でキャラクターを表示する事ができます。

 

IchigoJam BASIC 1.2 では 31 以前のキャラクターが変更されました。

これは一部 PRINT CHR$ で表示できますが、基本的には POKE を使用します。


キーボード入力時にチラツキが発生します。

キーボード入力のタイミングで一時的に画面出力を停止する影響で発生しています。

バージョンアップで少しは改善されていますが、最新開発版でも完全になくなりません。
またこれはクリスタルの有無に関係なく生じますので、クリスタルを付けても改善しません。


表示の一部が画面からはみ出しています。

ブラウン管テレビに IchigoJam を表示させている場合に発生する事があります。
特に IchigoJam BASIC 0.9.4 以降で左が1文字位はみ出す事があるようです。

IchigoJam BASIC 0.9.3 以前は右側がはみ出している場合もあります。

 

IchigoJam BASIC 0.9.9 からはこの対策として表示数を減らして上下左右の余白を作っています。

そのため、IchigoJam BASIC 0.9.9 からはこのような問題の報告はありません。

正式版は IchigoJam BASIC 1.0.0 からとなります。


起動時から上書きモードで使用したいです。

IchigoJam BASIC  1.1 より PRINT CHR$(17) で挿入モードと上書きモードを切り替える事ができます。

これをプログラム番号 0 に入れておき、IchigoJam 本体のボタンを押しながら電源を入れる方法があります。


ターミナル・シリアル制御で LOCATE や CLS で記号が表示されるのですが、不具合ですか?

IchigoJam BASIC 1.1 より LOCATE・CLS・SCROLL は

IchigoJam からコントロールコードを送出する仕様になっています。

これは VT-100 などとは互換性のない IchigoJam 独自のコードです。

 

汎用のターミナルソフトを使用する代わりに IchigoJam 向けのソフトをご利用下さい。

こちらで対応されているモニタ機能を使用する事で、

IchigoJam のビデオ出力画面に近い表示をある程度再現する事ができます。

 

汎用のターミナルソフトを使用する場合、IchigoJam と何かシリアル信号で制御したい場合は
次のコードをプログラムの頭に加えて下さい。

 

IF VER()>11000 UART1

 

これで IchigoJam BASIC 1.1 以降でも IchigoJam BASIC 1.0 以前と同じようにテキストのみを出力するようになります。


行番号ではなく、ラベル付でプログラムを作成できませんか?

IchigoJam BASIC 1.2 beta 8(正式版 IchigoJam BASIC 1.2.0)よりラベルに対応しています。

 

また、斎藤史郎さん が Windows 向けの行番号付け・ラベル変換ツール Spoon を公開しています。

 

Spoon 検索結果 | SHIROのモバイル日記

 

Spoon はプログラムの変換しか行いません。
別途ターミナルソフトや転送プログラムを用いて IchigoJam へ転送して下さい。


プログラムを入れたところ「Out of memory」と表示されました

メモリの空き容量がなくなりました。

一つのプログラムで使用できる容量は 1K バイト(1022 バイト または 1024 バイト)です。

これは1行を30文字としておよそ34行=およそ1.3画面分、

1行を20文字としておよそ51行=およそ2画面分となります。

少し長いプログラムを作ると、すぐに容量がなくなります。

 

?FREE() とすると残りの空き容量を参照する事ができます。

 

省略表記にして、容量を節約する事ができます。

LOCATE→LC、PRINT→? などがよく使われます。

しかしこれで効果があるのは 1 命令で数バイトです。

 

プログラム中に LRUN (プログラム番号) を含める事ができるため、

(IchigoJam BASIC 1.0.0 より行番号も指定できます)

これを用いて、長いプログラムにする事は可能です。
IchigoJam BASIC 0.9.4 からは変数・配列を初期化しないため、

変数・配列の状態を別のプログラムへ引き継ぐ事ができるようになっています。

IchigoJam BASIC 0.9.3 以前にも対応したい場合は、変数の値を文字で表示させ、

引き継いだ先のプログラムで VPEEK・SCR で読み込む方法があります。


入力したプログラムは消えてしまうのですか?

IchigoJam 本体に保存できます。SAVE プログラム番号 で保存し、LOAD プログラム番号 で読み出せます。

IchigoJam BASIC 0.9.9 までで 0〜2 の 3 プログラム、IchigoJam BASIC 1.0.0 から 0〜3 の 4 プログラム保存可能です。

 

より多くのプログラムを扱いたい場合は、パソコンとシリアル接続して転送し、パソコン側で管理します。

運営者は当初この方法で PROGRAM や IchigoJam-FAN で公開してしまう事で事実上保存している状態です。

 

また IchigoJam BASIC 0.9.3 より EEPROM に対応し、

1MB の EEPROM で IchigoJam BASIC 0.9.8 以前は 127 プログラム、

IchigoJam BASIC 0.9.9 より 128 プログラムの保存に対応しています。

 

上記の保存を行わずにリセットや電源断を行った場合、プログラムは消去されます。


プログラムを実行したところ、動きがおかしくなっています

公開されているバージョンと異なる場合は正常に動作しない事があります。

特に次の仕様変更による影響が大きいです。

  • IchigoJam BASIC 0.9.7(開発版 IchigoJam BASIC 0.9.4)より
    プログラム実行時の変数・配列を初期化しなくなりました。
    CLV をプログラムの先頭に加えてみて下さい。
  • IchigoJam BASIC 1.0.0〜1.0.1(開発版 IchigoJam BASIC 0.9.9)より
    画面サイズが 32×24 文字に変更されました。
    そのため、従来の 36×27 文字前提で作成されたプログラムは調整しないと正常に表示できません。
  • IchigoJam BASIC 1.2.0〜1.2.1 (開発版 Ichigojam BASIC 1.2 beta 8) より
    キャラクターが変更されました。(特に 2〜31)
    そのため、この部分のキャラクターを用いている場合は表示がおかしくなる場合があります。
  • ファームウェアの更新と共に処理が高速化しています。
    そのため、古いプログラムは WAIT を入れないと処理が速すぎる場合があります。

それ以外にもバグがあったバージョンや仕様が変更になっているコマンドがあります。

 

明らかに IchigoJam のバグと思われる動作が確認された場合、
Facebook が使える場合は Facebook グループ IchigoJam-FAN へ投稿し、バグ報告するのが良いでしょう。

 

IchigoJam-Fan | Facebook グループ

 

多くの利用者が見ているため、動作確認を行い、早期に状況把握を行う事ができます。

それは困難な場合は、公式サイトのお問い合わせよりご連絡を行って下さい。

ただし IchigoJam BASIC 0.9.8 以降は RC・beta として開発を進めた後、
良いところで正式版公開をする形となっていますので、

正式公開として反映されるのは数ヶ月要する場合があります。


PLAY や BEEP を使用しても音が出ません

IchigoJam のプリント基板にはスピーカーが存在しません。

そのため圧電サウンダ(スピーカー)の取り付けが必要です。

右写真のパーツがその圧電サウンダです。コマンド PLAY や BEEP で音を発します。

 

IchigoJam の GND と SOUND(EX2)の端子ソケットに差し込んでご利用下さい。

 

その他 周辺機器 | イチゴジャム レシピ

 

2015年3月以降に IchigoJam や互換機を購入している場合は

圧電サウンダが入っているか、基板に付いている事が多いです。
(ai.Jam など aitendo 発売の互換機は付いていない場合があります)


一部の音がおかしいです

PLAY で一部音程がおかしい問題があります。今のところこれは仕様となっています。

IchigoJam BASIC 1.0.0 beta 6 で一時的に改善されましたが、IchigoJam BASIC 1.0.0 beta 9 で元に戻されました。

その後 IchigoJam BASIC 1.2 beta 13 で音程を修正しています。正式版 IchigoJam BASIC 1.2.0 からとなります。

合わせて < > が逆になるなど仕様変更があります。


EEPROM への SAVE・LOAD・LRUN で固まります。

EEPROM 関連の断線や混線・ショートが考えられますので、よく見てみて下さい。

単に差し込み先の誤りでも発生します。

はじめて EEPROM を使用する場合は抵抗が原因である事も考えられます。

また、給電不足でも生じている場合があるようです。

 

数ヶ月使用した後、急に正常に動作しなくなり、それがしばらく続く場合は、ジャンパや半田部分の断線を疑って下さい。

EEPROM そのものが動作しなくなる報告は少ないですが、まれに EEPROM 側が原因で発生している事もあります。

 

ファームウェア側でタイムアウトするなどの対策が行われたため、新しいバージョンである程固まる事はなくなり、

代わりに数秒でエラー表示になるなどの動作に変化しています。


電源を入れてプログラムを実行するようにできますか?

IchigoJam 本体のボタンを押しながら電源を入れると、

番号 0 のプログラムを読み込み、実行する事ができます。(LRUN (0) を行います)

この代わりに GND と BTN をつなぐ方法もあります。

この機能は IchigoJam BASIC 0.7.3 までに採用されているため、
ほぼ全ての IchigoJam で動作可能です。

 

自動実行したいプログラムはプログラム番号 0 で保存しておいて下さい。

(SAVE 0 を実行します。単にSAVE でも良いです)

EEPROM は実行できないので、手動入力するか、

プログラム番号 0 のプログラムから LRUN で EEPROM を実行するようにします。

運営者はプログラム番号 100 に プログラム一覧・ローダー を入れて

プログラム番号 0 で必要な処理をしつつ、最後に LRUN 100 を実行しています。

 

ロボットなどに接続した状態で IchigoJam を設置し、

キーボードを接続せずにプログラムを実行する事が可能です。

 

IchigoJam BASIC 1.2 beta 13 (正式版 IchigoJam BASIC 1.2.0) からは、

SOUND 端子のプルダウンでも自動起動に対応しています。


IchigoJam 同士を接続して、プログラムを転送する事はできますか?

開発者の福野さんが実験を行い、次の方法で成功しています。

  1. 二方の IchigoJam で電源を入れ、BPS 300 を実行しておく(通信速度を 300bps にする)
  2. GND 同士、更に 転送元 TXD-転送先 RXD の2端子をジャンパワイヤで接続
  3. 転送元より LIST を行う。これでプログラムがシリアル転送され、転送先でプログラムが入力される

通信速度がはやいと、転送先がプログラムの1行を処理している間に次の行が転送されてしまい、

プログラムが欠けてしまうようです。

 

この接続状態で PRINT"RUN" とする事で、転送先の IchigoJam でプログラムを実行させる事もできます。


IchigoJam同士でプログラム転送する方法 インターネット技術第163委員会研究会(富山)| 福野泰介の一日一創


プログラム作成はどのバージョンから考慮すれば良いですか?

最近の 電子工作マガジン マイコンBASICマガジン コーナー で見られる IchigoJam BASIC のバージョンは 1.0.1 以降になっています。

そのため、これ以降に公開されたファームウェアを考慮するのがベストです。

  • IchigoJam BASIC 1.0.1 (2015年6月)
    IchigoJam BASIC 1.0.0 も PCN より一時出荷されています。ネット上では公開されていません。
    IchigoJam BASIC 1.0.1 でHELP が追加されている事が分かっています。
  • IchigoJam BASIC 1.1.1 (2015年12月)
  • IchigoJam BASIC 1.2.1 (2016年6月) または IchigoJam BASIC 1.2.0 (2016年4月)
    IchigoJam BASIC 1.2.1 と IchigoJam BASIC 1.2.0 はキーボード対応とローマ字対応の違いで、
    プログラムそのものの動作に違いはありません。

IchigoJam BASIC 1.2 ではキャラクターが変更されているため、これに伴う修正が発生する場合があります。

また、バージョンアップの度に処理速度が向上しています。WAIT 値の調整が必要かもしれません。

 

更に対応を増やすのであれば、IchigoJam BASIC 0.9.3 以降となります。
この頃から特に IchigoJam の利用者が増加しているようです。
IchigoJam BASIC 0.9.3 以降で製品に含まれたバージョンは次となります。

  • IchigoJam BASIC 0.9.3 (2015年1月)
  • IchigoJam BASIC 0.9.7 (2015年2月)

ただし IchigoJam BASIC 1.0.0(開発版では IchigoJam BASIC 0.9.9-RC)より画面サイズが変更されていて、

プログラム全体の修正を要する場合があります。

最近はこのバージョンで公開されているケースはほとんど見られなくなっている事もあり、

ここまで対応する必要もなくなっていると思われます。