memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

成功:Digisparkのアップロードタイムアウト時間を短くした

今朝からDigisparkでいろいろやってました。

普通のArduinoとは異なり書き込み失敗することもよくあり、そのたびにタイムアウトまで1分待たされるのが面倒でした。

以下の対策をしてみようとしたものの。。。効果はなく。

memorandums.hatenablog.com

いろいろと調べてみた結果、Arduino IDEの「マイコンに書き込む」ボタンを押すと、以下の場所にある2つのプロセス(launcherとmicronucleus)が起動されることがわかりました。

~/Library/Arduino15/packages/digistump/tools/micronucleus/2.0a4

launcherはArduino IDEが起動するらしく、そのパラメタは以下のファイルのtimeoutを書き換えることで変更できました。でも、launcherはバイナリ転送プログラム?(micronucleus)を起動するコマンドらしく、launcherのtimeoutを変えてもタイムアウト時間は一向に変わりませんでした。

~/Arduino15/packages/digistump/hardware/avr/1.6.7/platform.txt

digistumpのgithubのリポジトリもみてみたのですが、それらしいコードがない。。。よくわかりませんが、ソースコードがどうしても見つけられません。

色々と試行錯誤した結果、もう、バイナリをいじるしかないなぁ。。。と。

0xEDというバイナリエディタをダウンロードして、①にtimeoutといれ、②の「36 30」を「31 20」にします。要はtimeoutを60から1にする感じです。

f:id:ke_takahashi:20181020184618p:plain

念のために、launchar本体をいじる前に、launchar.orgにコピーして原本を残して修正しましょう。

バイナリのサイズを見ているようで、timeoutを1にしただけでは1バイト短くなるためArduino IDEで書き込みボタンを押したときにエラーがでました。なのでとりあえず空白(0x20)を入れたらめでたく動いたわけです。

まぁ、こんなことやっていいのか、そもそもソースコードが入手できればこんなことしなくていいでしょうけど。

とりあえず。