Arduino MKR ZERO 不安定(その後解決)
Arduino ZERO は今のところ質が悪い。もしかして IDE が 1.6.19 と古いせいかもしれないと思い現時点の最新版(1.8.13) を再インストール中。
手元の Arduino の M0+(SAM D21 のARM) の MKR WAN 1300 はちょっとしたものをインストールすると Windows 側が USB Serial を見失ってしまう。何が悪いのだろうか不明。
で Linux で調査。
[365770.323788] usb 1-1: new full-speed USB device number 94 using xhci_hcd [365770.451841] usb 1-1: Device not responding to setup address. [365770.659846] usb 1-1: Device not responding to setup address. [365770.867757] usb 1-1: device not accepting address 94, error -71 [365771.592365] e1000e: eno1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None [365844.004103] usb 1-1: new full-speed USB device number 96 using xhci_hcd [365844.153594] usb 1-1: New USB device found, idVendor=2341, idProduct=0053, bcdDevice= 2.00 [365844.153600] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [365844.153605] usb 1-1: Product: Arduino MKRWAN1300 [365844.153608] usb 1-1: Manufacturer: Arduino LLC [365844.169216] cdc_acm 1-1:1.0: ttyACM0: USB ACM device [365844.170194] usbcore: registered new interface driver cdc_acm [365844.170195] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters [365852.320888] usb 1-1: USB disconnect, device number 96
一旦、ACM デバイスとして認識された直後に USB disconnect している。理由は不明(USB のパケットをモニターする必要があるでしょう)。full speed だし。
これ、たぶん、バグだよね。bootloader が 2341 0053 で ACM として USB を動かした後に、アプリをロードして動かす。ところが、そのアプリがハング?(動作実績ありなのに)して、その後、USB シリアルを disconnect している。bootloader がアプリが終了した時に、そのまま書き込みモードにしてくれればいいのに。bootloader の作りに問題があるのでしょう(予測でしかないが)。
ちょっとした回避方法があり、電源を入れた直後に RST ボタンを2連打(早押し!!)すると、黄色い LED がゆっくり点滅して bootload モードになるみたい。RST ボタンといってもソフト的なものみたいで、電源投入直後にはたぶん GPIO 。その後、割り込みで RST ボタンにしているのでしょう。なので、この技は本当に電源投入直後にしか聞かないみたい。その上、ときどき、また暴走する。これもバグだよね、、、きっと。
これだと、なかなか ARM の環境には行けないね。Atmel も評判落としちゃうね。
後日談。バグでも何でもありませんでした。MKR のボードの裏には RESET のパッドがあります。これがウレタン?のクッションに刺していると GND に繋がって頻繁にリセットがかかる、、、というものでした。ウレタンから外したら安定するようになりましたとさ。