検索IchigoJamへのプログラム転送を高速化する(TeraTerm)~お詫び~この記事はTeraTerm側の送信バッファの動作の違いによる効果を、IchigoJamの受信バッファの違いによる効果であると勘違いして記載していました。実験の内容や結果に相違はありませんが、私の勘違いによって誤解を与えるような表現がありました。TeraTerm限定であることを赤文字にて追記し、一部の表現を取り消し線で取り消しました。Facebookへの投稿メッセージ(https://www.facebook.com/groups/ichigojam/permalink/848499335289821/)については、はじめからTeraTerm限定の話のような書き方になっていましたが、投稿時の私に、そのような意図はなく、当ブログを読んで、実験をしてくださった皆様にご迷惑をおかけしました。引き続き、有用な情報が提供できるよう、努力いたしますので、何卒、よろしくお願いいたします。亘TeraTermを使ってシリアル接続したIchigoJamへのプログラム転送時間を約半分にすることが出来ましたので、その方法について説明します。※すべてのプログラム転送が早まるとは限りません。※IchigoJamのファームウェアは1.2.1以降が必要です。※TeraTermを使った場合の実験結果です。250ミリ秒/行に設定する結論から書くと、TeraTermの「設定」メニュー内の「シリアルポート」ウィンドウを開き、以下のように設定します。これで、(おそらく)通常の転送時間の半分で転送することが出来ると思います。原理IchigoJamのファームウェア1.2.1以降ではシリアルの受信バッファが128バイトに拡大されました。このバッファを活用することで処理時間を短縮させるのが目的です。IchigoJamでは1文字の受信を行うのに約18msの処理時間が必要です。このため従来は18ms以上の送信遅延を設定していました。一方で、IchigoJamのプログラムの1行の最大文字数は200文字です。プログラムの1行の半分をバッファで処理することが出来るはずです。そこで、ここでは、送信遅延を半分の9msに設定し、1行ごとに250msの遅延を設定することにしました。1行の文字数が分かっているのであれば、1行ごとの250msの遅延についても、より短くすることが出来るでしょう。この検証の後に、IchigoJam側が1/60秒ごとに1文字づつしか受信バッファの取り込みを行っていない可能性が高まっています。この場合、本検証による効果はTeraTermのみに限定されたものとなります。以下は、貴重な参考情報です。MicJackで、1度に100文字送った場合、行遅延で1600msが必要。1文字あたり16msを要する。以下のようなデータをTeraTermから転送して検証しました。始めにnewコマンドでプログラムを消去し、次にIchigoJam側の画面のカーソル位置を最下行に移動させます。cltコマンドでタイマーをリセットし、1行あたり200文字のダミープログラムを5行分、入力し、最後に経過時間を表示します。'12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567?tick()実行結果1文字の送信遅延を、従来の18msにしたときと、9msにしたときの実行結果を比較しました。その結果、転送時間を約半分に短縮することが出来ました。実行後にはプログラムをPCに再転送し、相違がないことをdiffして確認済みです。%前述のとおり、TeraTermの場合は、1行の文字数に合わせて行遅延設定を変更しても良いでしょう。msとすれば、上手くゆきそうです(これは未検証です)。検証済みの方法も含めて、問題点があるかもしれません。自己責任で活用してください。(3)紹介ボクにもわかる電子工作bokunimo.netとの連携ブログです。関する情報などを掲載しています。(7)リンクは自由ですが、掲載情報についての責任は負いません。