littleBitsのArduinoモジュールがおかしくなった時のリセット方法をlittleBits社に質問して無事解決したメモ

littleBitsのArduinoモジュールがおかしくなった時のリセット方法をlittleBits社に質問して無事解決したメモです。

症状

最近結構ハードにlittleBits Arduinoモジュールを使ってまして100ミリ秒くらいでArduinoとPCがやり取りをするような動作を試していました。応答がなくなり、さらにオーバーフローしたのか、再度Arduino IDEで上書きしようにもUSBに挿してもまったく認識しなくなってしまいました。

まず正常な例。USBを挿した状態で電源を入れるとランプがついて認識します。

しかし、今回の症状に見舞われたlittelBits Arduinoモジュールはこんなふうに USBを挿して電源を入れても反応しない。

これも。

Arduino IDEでも本来ポートが反応しているはずが、ポートがいません。

littlebits-arduino-reset_1

もちろん無理に書き込んでみてもポートがないと怒られる。

littlebits-arduino-reset_2

こまった。

Arduinoにはそんなときリセット方法があるがlittleBits Arduino モジュールにはリセット端子やボタンがない。

たまたまArduino UNOでバグらせたことがあってArduinoにはそんなときリセット方法があるのですが、littleBits Arduino モジュールにはリセット端子やボタンがない。

littleBits ArduinoモジュールはLeonardoをベースにしたもののようですが、本来のLeonardoであれば以下のように

Arduino – ArduinoBoardLeonardo

リセットを行う端子があります。写真の下部のところに、IOREF / RESET / 3.3V / 5V という配置でありますね。目で見て分かるならやるんだけど!

littlebits-arduino-reset_3

しかしlittleBits Arduinoモジュールには明確にリセット端子やボタンがない。

littlebits-arduino-reset_4

フォーラムでも似たようなトラブルがありそうだけど、どうも正しい操作方法にたどり着かない。

ということで、littleBits本家のサポートに聞いてみる

ということで、littleBits本家のサポートに聞いてみることにしました。

以下から質問できます。

littleBits customer service

こんなふうに書きました。

littlebits-arduino-reset_5

書き出しは以下のように。

ああ、iOSのアプリ開発でリジェクトされたときにこういうのやったなぁ・・・。

littlebits-arduino-reset_6

何度か基本的な症状のヒアリングや仕様OSなど丁寧にやり取りさせていただいて、本命のリセット方法を伺えました。

littlebits-arduino-reset_7

1) Short the pins in the attached picture (i.e. directly connect them to each other):
2) Connect the USB to the Arduino and turn the power on to the Arduino.
3) Press ‘upload’ in the Arduino IDE with a code that is known to not cause issues.
4) When the status bar changes from “compiling sketch” to “uploading…” remove whatever you are using to short the two pins.
5) Your sketch should now successfully upload.

ということで、図表の指定のピンをつなげるとリセットできるとのことで、やってみます。

リセット自体の手順は以下を参考にしました。

Arduino でなんだか起動しなくなった時の解決 – Qiita

1.Arduino ソフトウェアを起動します
2.適当なサンプルプログラムを読み込んで書き込みボタンを押します。書き込んでいます。。。みたいなのが出るまで待機。
3.書き込もうとしている最中に、リセットボタンを押します。
4.Arduino は、数秒だけの認識している間にプログラムを書き込んでくれます。

リセット

まずUSBをArduino IDEを使うPCに繋いて電源を入れます。

littlebits-arduino-reset_8

リセットさせるコードは通電すればなんでも良いですが、私はテストワイヤーを使いました。

littlebits-arduino-reset_9

Arduino IDEを起動します。案の定、ポートは認識されていません。

littlebits-arduino-reset_10

新規作成でシンプルなloopを用意しておきます。Blinkサンプルでも良いですが、littleBitsのArduinoモジュールのBlinkサンプルで変なハマり方をしたものの解決した話にあるようにポートは13でなく5なので注意しましょう。

これで準備が整いました。書き込みを開始します。

littlebits-arduino-reset_11

この間に、リセットさせます!

littlebits-arduino-reset_12

えいや!

littlebits-arduino-reset_13

すぐ離します。

littlebits-arduino-reset_14

別の角度から見てみます。a2の右のピンとd10からみて左のピンを挿しています。

littlebits-arduino-reset_15

このようにリセットすると、なんとUSBのポートが一定時間10秒程度?認識するので、無事書き込みが終了します!

littlebits-arduino-reset_16

コレで一回リセットされてシンプルなループが書き込まれるので、ポートも認識されるようになります。

littlebits-arduino-reset_17

こちらでリセット完了です。

おわりに

これで、おかしなコード書いてArduinoを暴走させても、安心してリセットできますね!

今回はリセット方法を教えてもらったlittleBitsサポートの方に「これは素晴らしいナレッジだから是非ブログに書かせて!」と伝えたら、すぐに快諾いただきました。

I thank for this work of the littleBits customer support very much. Thank you.

それでは、よきLittleBits Lifeを!