[トラブル]スケッチ転送開始直後にシリアルポートが消える


(koteitan) #1

マルチポストになりますが、Rossさんに日本語セクションにも書いてみてはと言ってもらえたので書いてみます。
スケッチ転送開始直後にシリアルポートが消えるという問題で書き換えができなくて悩んでおります。

詳細↓
Serial port disappears when the transfer is started
動画 ↓

オプションの詳細ログをみたところ、

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

のところで止まってしまっているようです。
programmer を壊してしまったのかも。。
なにか復旧の手立てはありませんでしょうか。


Bring your Arduboy back from the dead (burn bootloader)
Serial port disappears when the transfer is started
#2

うーん、申し訳ないです。Arduboy 1.0はまだ手元に届いていない為、devkitでのお話しをします。
こちらの手元でも同じ状態になるエラーログを見つけました。
team a.r.gさんのDo-Nutsで再現しています。

環境:
windows 10 home(32bit) + devkit + arduino 1.6.9

1.まず、リセットができるか確認をお願いします。(ガクガクしてすみません・・・)

Arduino Leonardo (COM5)→物理リセット→
Arduino Leonardo bootloader (COM6)→Arduino Leonardo (COM5)

Arduboy 1.0の場合だと配線が異なるので画面は移りません。たぶん真っ暗なままだと思います。
COM番号は違っても同じ結果になったでしょうか?

2.復帰方法

Arduboy ライブラリのHello Worldを読み込んでください。
最初に物理リセットをしない素のままで実行して、失敗させました。
たしかに同じエラーです。スケッチも書き込めません。

次に物理リセットを行って復帰させています。
これが結構シビアなタイミングだったりして説明に困る部分です・・・。

ログの中に「PORTS」 という言葉が出てきたらリセットを外します。
また、玄関のチャイムを押すようにON/OFF(ピン/ポーン)ということを素早くするのではなく、
以下のやり方をお勧めします。

・すでに物理リセットを掛けた状態にする。しっぱなしです。
・IDEの書き込みボタンを押す。
・「PORTS」というログが出てきたらリセットを離す。

※ 注意
実験中になぜかIDEでCOM1しか選べなくなってしまい、
Arduboyのポート(こちら側でいうCOM5)が指定できなくなりました。
もし同じ状態になった場合、パソコン自体を再起動させてみてください。
IDEの再起動だけではだめでした。


(koteitan) #3

ありがとうございます。
まだタイミング次第で直りそうですね。
危うくUSBシリアルケーブルを買いに出かけるところでした。

Arduboy 1.0 のリセットは背面のようなのでそこでやります。

Arduboy 1.0の場合だと配線が異なるので画面は移りません。たぶん真っ暗なままだと思います。
COM番号は違っても同じ結果になったでしょうか?

Arduino Leonardo bootloader (COMX) は現れませんでした。
直ちに Arduino Leonardo (COMX) が現れます。
ちなみにIDEのGet Board Info の返事は

BN: Arduino Leonardo
VID: 2341
PID: 8036
SN: Upload any sketch to obtain it

です。


リセットのタイミングを追い詰めたいです。

ログの中に「PORTS」 という言葉が出てきたらリセットを外します。

と書いてもらいましたが、撮って頂いた Youtube のbug report2 は少し違うように見えます。
1:04あたりをすごくシビアにコマ送りで見ると

  1. コンパイルのログが流れる、画面は表示されている
  2. ★リセットをGNDと短絡する(たぶんここで?)
  3. 「最大2,560バイトのRAMのうち」の行が表示される
  4. 画面が消える
  5. PORTS {COM1, } / {COM1, } => {} の行が表示される
  6. Found programmer が来て成功(私の場合これにならない)
  7. ★avrdude: devcode selected: 0x44 の行が流れてきたあたりでリセットとGNDを解放する(たぶん)

のように見えます。
この場合、リセットとGNDの短絡と解放のタイミングは★のように見えたのですが、
実際はどのタイミングが(1.~7.)がよさそうでしょうか?


#4

Arduino Leonardo bootloader (COMX) は現れませんでした。
直ちに Arduino Leonardo (COMX) が現れます。

ここでのポイントは物理リセットが効いているかどうかです。
デバイスマネージャのリストから消えて、すぐにまたリストに復帰されるか。

koteitanさんのArduboyは”直ちに”という言葉が入っていましたので
リセットは効いています。リストが更新されないなら心配でした。

どうもマシンによって挙動が違うみたいです。

メイン(windows 10 pro 32bit)で使っている方は、
動画のようにリストから消える、復帰するは同じものの、
Leonardo、bootloaderという言葉は出てきませんでした。

USB シリアル デバイス (COM10)→物理リセット→
USB シリアル デバイス (COM9)→USB シリアル デバイス (COM10)

1.はクリアしたので問題の2.です。。

撮って頂いた Youtube のbug report2 は少し違うように見えます。

すみません。文章と違います。参考例としては最悪でした。

2.★リセットをGNDと短絡する(たぶんここで?)

はい。そのとおりです。正面の丸いピンは
VCC, RST, MISO, MOSI, CLK, GNDと順番にあって、
RST(左から2番目)とGND(右から1番目)を繋げただけです。

実際はどのタイミングが(1.~7.)がよさそうでしょうか?

2.で着けて(リセットして)、7.まで行っているように見えますけど・・・5.です。

繋がっているように見えて、微妙に押し込む力が足りてないと思います。。
でないとスケッチを書き込む動作が成功しないからです。

うーん、ちょっと動画から離れてもらっていいでしょうか。。
2つ情報をください。

”物理リセットをかけた状態のまま”スケッチを書き込むボタンを押した場合、ログが下記と同じですか?

最大28,672バイトのフラッシュメモリのうち、スケッチが10,522バイト(36%)を使っています。
最大2,560バイトのRAMのうち、グローバル変数が1,253バイト(48%)を使っていて、ローカル変数で1,307バイト使うことができます。
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
指定されたポートには、ボードが接続されていません。正しいポートを選んである事を確認してください。もしも正しいポートを選んである場合には、書き込みを開始した直後にボードのリセットボタンを押してみてください。

次に、上記のテスト環境をもう一度行って、
PORTSが出ているタイミングでリセットを解除してもらっていいですか。
どのようなログ、挙動になったでしょうか?

この2つの確認がほしいです。


(koteitan) #5

@akkera102 さん、ありがとうございます。

”物理リセットをかけた状態のまま”スケッチを書き込むボタンを押した場合、ログが下記と同じですか?

はい。同じです。

    PORTS {} / {} => {}

が繰り返されます。

次に、上記のテスト環境をもう一度行って、
PORTSが出ているタイミングでリセットを解除してもらっていいですか。
どのようなログ、挙動になったでしょうか?

はい。

    PORTS {} / {} => {}

が繰り返しているときにリセット–GND間を解放したら下記になります。
これが一番進んでいる気がします。
Issue カテゴリに投稿したものと同様です。

最大28,672バイトのフラッシュメモリのうち、スケッチが9,256バイト(32%)を使っています。
最大2,560バイトのRAMのうち、グローバル変数が1,225バイト(47%)を使っていて、ローカル変数で1,335バイト使うことができます。
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM3, } => {COM3, }
Found upload port: COM3
E:\program\Arduino\hardware\tools\avr/bin/avrdude -CE:\program\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM3 -b57600 -D -Uflash:w:C:\Users\fletcher\AppData\Local\Temp\build622a37fead4ee654a1b9a5613f737b3a.tmp/HelloWorld.ino.hex:i 

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
     Copyright (c) 2007-2009 Joerg Wunsch

     System wide configuration file is "E:\program\Arduino\hardware\tools\avr/etc/avrdude.conf"

     Using Port                    : COM3
     Using Programmer              : avr109
     Overriding Baud Rate          : 57600
     AVR Part                      : ATmega32U4
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :

                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

     Programmer Type : butterfly
     Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding
マイコンボードに書き込もうとしましたが、エラーが発生しました。
このページを参考にしてください。
http://www.arduino.cc/en/Guide/Troubleshooting#upload

programmer is not responding で躓いています。


(koteitan) #6

Arduboy でなくて Arduino Leonardo の例ですが、
IRKitのブートローダーを破壊したので直した というのを見つけました。
28672 byte 以上のプログラムを転送すると bootloader 領域を突き抜けるらしいです。
私は確かに直前に容量の大きなファームウェアを書いた覚えがあります。
Arduboy の bootloader の配置はまだ知りませんが、似た現象が起こっているとかでしょうか。
奥の手のUSBシリアル変換ボードを買ってきました。。がまだ発動しません。もうちょっと考えます:)


#7

情報ありがとうございます。ちょっと困った事態で途方にくれています。。

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

ただ問題だけはだいぶ絞り込めました。
ブートローダ実行中でも、スケッチが書き込めないことがわかりました。

たまたまパソコンの特殊環境、もしくはケーブルが断線ぎりぎりだったというなら
苦労はしないのですけど・・・最初の1回目の書き込みならともかく、ほとんどないと思います。

僕としてもブートローダーを破壊してしまったのではないかと考えています。
このあたりは知識が全くなく・・・有益なことが言えないです。すみません。

次の休みの時に、大きなスケッチを書いて破壊してみようと思います。
復帰もしないといけないのでちょっと機材も仕入れないとダメっぽいですし。

現時点でいえることはArduboy単体での復帰は難しそうです。


#8

教えていただいたリンク先。

プログラムが28672byteを超えたため、Arduino互換機であるIRKitのブートローダー領域を上書きした。Arduinoはブートローダーと実行プログラムが同じプログラムメモリ上に共存しているのだ。

普通のArduino IDEを使っていれば書き込み前にサイズチェックして、こういう事にはならないのだが、inoだと考慮てくれないらしい。

おそロシア。。

Arduinoのピン13 → IRKitのSCK
ピン12 → MISO
ピン11 → MOSI
ピン10 → RESET
GND → GND
VCC → 5V

1.0でピンが露出しているといいのですが。。
(devkitの場合すべてあります)


(koteitan) #9

ありがとうございます。
半田付け始めました。。
実況はtwitterにて。。


#10

5V、3.3Vどちらでも動きます。

twitterやってないのでこちらで書き込みました(^^;

訂正:3.3Vにしてください。


#11

twitterの写真見ました。素人な発言で申し訳ないのですけど・・・
ICSP側のピンで正しいかどうか心配だったりします。

リンク先はD13-D10側でした。間違っていたらすみません。

訂正:間違っていました(汗。LEONARDOはICSP側が正解です。


(koteitan) #12

ありがとうございます:)
その通り、間違っています:)
D13-D10が正しいかったです。


(koteitan) #13

まだ bootloader の書き込みに成功していませんが、経過を。
Arduino Leonardoを買ってきて Writer を作って、 Arduboy に bootloader を書く作戦にしました。

機材、回路、IDE設定は下記の通りです。

  • Writer = Seeeduino (Arduino Leonardo Compatible, LED点灯制御にて動作確認済み)

  • Writer Firmware = ArduinoISP

  • #define RESET 10

  • Target = Arduboy

  • schematic:

  • Writer.USB – PC

  • Writer.D07 – LED

  • Writer.D08 – LED

  • Writer.D09 – LED

  • Writer.D10 – Arduboy.RST (from comment of ArduinoISP)

  • Writer.D11 – Arduboy.MOSI (from comment of ArduinoISP)

  • Writer.D12 – Arduboy.MISO (from comment of ArduinoISP)

  • Writer.D13 – Arduboy.SCK (from comment of ArduinoISP)

  • Writer.5V – Arduboy.VCC

  • Writer.GND – Arduboy.GND

  • Arduboy.RST – 0.1uF – Arduboy.GND (from arduino forum)

  • Arduboy.Battery – attached or removed (tried both)

  • Arduboy.USB – PC or open (tried both)

  • Arduino IDE version 1.6.9

  • Tools > Board = Arduboy

  • Tools > Port = COM3 (Arduino Leonardo)

  • Tools > Programmer = “Arduino as ISP (Leonardo)” (original added)

  • programmers.txt:

    arduinoispleo.name=Arduino as ISP (Leonardo)
    arduinoispleo.communication=serial
    arduinoispleo.protocol=arduino
    arduinoispleo.speed=9600 or 19200 (tried both)
    arduinoispleo.program.protocol=arduino
    arduinoispleo.program.speed=9600 or 19200 (tried both)
    arduinoispleo.program.tool=avrdude
    arduinoispleo.program.extra_params=-P{serial.port} -b{program.speed}

これで burn bootloader すると

E:\program\Arduino1.6.9\hardware\tools\avr/bin/avrdude -CE:\program\Arduino1.6.9\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -carduino -PCOM3 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xcb:m -Uhfuse:w:0xd8:m -Ulfuse:w:0xff:m 
avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
     Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
     Copyright (c) 2007-2009 Joerg Wunsch
     System wide configuration file is "E:\program\Arduino1.6.9\hardware\tools\avr/etc/avrdude.conf"
     Using Port                    : COM3
     Using Programmer              : arduino
     Overriding Baud Rate          : 9600 
     AVR Part                      : ATmega32U4
     Chip Erase delay              : 9000 us
     PAGEL                         : PD7
     BS2                           : PA0
     RESET disposition             : dedicated
     RETRY pulse                   : SCK
     serial program mode           : yes
     parallel program mode         : yes
     Timeout                       : 200
     StabDelay                     : 100
     CmdexeDelay                   : 25
     SyncLoops                     : 32
     ByteDelay                     : 0
     PollIndex                     : 3
     PollValue                     : 0x53
     Memory Detail                 :
                              Block Poll               Page                       Polled
       Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
       ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
       eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
       flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
       lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
       calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
       signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00
     Programmer Type : Arduino
     Description     : Arduino
     Hardware Version: 2
     Firmware Version: 1.18
     Topcard         : Unknown
     Vtarget         : 0.0 V
     Varef           : 0.0 V
     Oscillator      : Off
     SCK period      : 0.1 us
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.03s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x000000 (retrying)
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x000000
avrdude: Yikes!  Invalid device signature.
     Double check connections and try again, or use -F to override
     this check.
avrdude done.  Thank you.
Error while burning bootloader.

となりました。

avrdude: Device signature = 0x000000 (retrying)

signatureが0x000000なはずはないので、 Arduboy が認識されていないっぽいです。
Arduboyの方をどういう状態にして書き込みをすればいいのかよく分かりません。
特に下記。

  • Arduboy バッテリーは付けたままでいいのか
  • Arduboy のUSB端子はPCにつける必要があるのか
  • Arduboy の電源SWはON/OFFどちらか

今思えば AVR ISP mkII を買えば構成が簡単になったのに。。
週末まで日中で買い物できません。。


#14

AVR ISP mkII とArduino Uno を購入しました。
到着は今日の予定ですけど、明日あたりに何か報告できそうです。

(アドバイスはちょっと難しいのでコメントできませんでした。)


#15

まだブートローダを破壊した状態で書き込みをしていませんが、
正常なブートローダ時の書き込みは成功しました。

特に複雑な配線はしていないです。ケーブル(+ピンヘッダ)以外の部品を使っていません。


Windows10 pro(32bit) + Arduino IDE 1.6.9

Arduino UNO - devkit

pin13 - CLK
pin12 - MISO
pin11 - MOSI
pin10 - RESET
GND   - GND
3.3V  - VCC

devkitピンの順番(正面の写真)VCC, RST, MISO, MOSI, CLK, GND

・devkitのUSB接続は不要でした。ピンを繋げたら勝手にスケッチが起動します。
ただ、veritazzさんのコメントだと「do not forget to switch on your Arduboy」なので
1.0の場合は必要かもしれないです。
・3.3Vにしてください。5Vは以下のエラーを吐いてUNO~PC間の通信ができなくなりました。

avrdude: ser_open(): can't set com-state for "\\.\COM3"

■ログ

C:\Program Files\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cstk500v1 -PCOM3 -b19200 -Uflash:w:C:\Program Files\Arduino\hardware\arduino\avr/bootloaders/caterina/Caterina-Leonardo.hex:i -Ulock:w:0x2F:m 

avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "C:\Program Files\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM3
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9587
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "C:\Program Files\Arduino\hardware\arduino\avr/bootloaders/caterina/Caterina-Leonardo.hex"
avrdude: writing flash (32730 bytes):

Writing | ################################################## | 100% 35.88s

avrdude: 32730 bytes of flash written
avrdude: verifying flash memory against C:\Program Files\Arduino\hardware\arduino\avr/bootloaders/caterina/Caterina-Leonardo.hex:
avrdude: load data flash data from input file C:\Program Files\Arduino\hardware\arduino\avr/bootloaders/caterina/Caterina-Leonardo.hex:
avrdude: input file C:\Program Files\Arduino\hardware\arduino\avr/bootloaders/caterina/Caterina-Leonardo.hex contains 32730 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 20.20s

avrdude: verifying ...
avrdude: 32730 bytes of flash verified
avrdude: reading input file "0x2F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x2F:
avrdude: load data lock data from input file 0x2F:
avrdude: input file 0x2F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.

参考リンク:
IRKitのブートローダーを破壊したので直した


Bootloaderを書き込む(AVRISP mkII+Atmel Studio 7)
#16
AVR Memory Usage
----------------
Device: atmega32u4

Program:   32496 bytes (99.2% Full)
(.text + .data + .bootloader)

Data:       1589 bytes (62.1% Full)
(.data + .bss + .noinit)

自作のmakefileを使って大きなスケッチを書き込んでみました。
結果、IDE上から認識しなくなってどうしようもない状態です。

上記の環境でブートローダを焼いて、HelloWorldのサンプルを書き込むと
元通りになることを確認しました。

あとはkoteitanさんのArduboyが復活することを祈るばかりです。。


(koteitan) #17

ありがとうございます!
再現もできて、直し方も確立されましたね。
一般的なワークアラウンドはこれでよさそうですね。
私も@akkera102 さんの例と比較して検討してみます。
やることが絞り込めて非常に助かります。

ひとつだけ質問で、
Bootloader書き換えの時にはArduboyの電池は外してやられていますか?


#18

devkitはボタン型電池(CR2016)が入っていますけど通電はしていないです。
左上のところがON/OFFスイッチ(白色)になっていて、OFFの状態でBootloaderの書き換えを行いました。

余談ですけどOFFのままUSBを刺すと、通電してゲーム(スケッチ)が遊べる状態になります。
1.0の場合は違うかもしれないです。


(koteitan) #19

ありがとうございます。

あとできればお使いのArduinoISPはどれかを教えてもらえますでしょうか。
入手経路によってモノがいろいろあってそれぞれ動作が異なることに気付きました
google code, www.arduino.cc, github に無数にありました


#20

Arduino IDE 1.6.9に入っているものを使いました。
UNOに書き込み中、特にエラー表示もありません。

[ファイル]→[スケッチの例]→[11.ArduinoISP]→[ArduinoISP]

ちなみに書き込み後、以下のように操作しただけです。

[ツール]→[ボード]→[Arduino Leonardo]
[ツール]→[書込装置]→[Arduino as ISP]
[ツール]→[ブートローダを書き込む]

注意:書込装置は「ArduinoISP」ではないです。
あと、

avrdude: Device signature = 0x000000 (retrying)

となるのはこちらも何回か確認している現象です。
UNO~Arduboy間の接続が甘かった時に起こりました。

端子(UNO側)と丸い金属片(Arduboy側)を押し付けているものの、
6本のどれかが甘かった時になりました。