Can't upload, tried Flashlight and Reset [Solved]

So you’re saying that when you turn off and on your Arduboy it get’s assigned a new COM port? I doubt that (unless you’re on an old OS or your OS is broken :D) You’d run out of COM ports quite fast then.

You do get a new COM port assigned when you connect it to a different USB port or USB hub

No, it is only 2 different devices per arduboy. The same COM port every time, but not the same COM in normal “serial” vs “loading”.

But, this is on Windows.

Yeah I know that. My reply was to @bateske. You have the bootloader port and the program/sketch port (if the program/sketch hasn’t removed USB support)

Not if you connect it to a different USB port on Windows

1 Like

Thank you Arduboy community!

In short I was able to successfully upload Hello World sketch to my unit. After several combinations of clicking upload timing and clicking reset button timing it worked using Arduino IDE on OS X. I tried all of the timing combinations on both OS X and Windows 10.

As far as I can tell the successful combination was clicking upload, waiting one full second, then clicking reset. Waiting longer than the one second, or clicking reset anytime before clicking upload resulted in failed upload. This is true for flashlight mode also.

For further testing I was able to use the Arduboy Uploader by @eried in Windows 10 and successfully loaded ‘castle boy’ and ‘tiny bike’.

I’ll post follow up comments with the previous failed logs if it helps anyone else trying to troubleshoot.

4 Likes

Windows 10 trouble shooting attempts:

Device manager in Windows 10 lists my Arduboy in its various states:

  • usb port 1: arduboy during 8 second resent window listed as “COM 6”
  • usb port 1:arduboy while found listed as “COM 5”
  • usb port 2: arduboy during 8 second reset window listed as “COM 4”
  • usb port 2: arduboy while found listed as “COM 3”

INFO BELOW COPIED FROM LOGVIEW APP:

==================================================
Event Type        : Unplug
Event Time        : 6/11/2019 12:19:38 PM
Device Name       : Port_#0001.Hub_#0001
Description       : USB Composite Device
Device Type       : Unknown
Drive Letter      : 
Serial Number     : 
Vendor ID         : 2341
Product ID        : 8036
Vendor Name       : 
Product Name      : 
Firmware Revision : 1.00
USB Class         : 00
USB SubClass      : 00
USB Protocol      : 00
==================================================

==================================================
Event Type        : Unplug
Event Time        : 6/11/2019 12:19:38 PM
Device Name       : 0000.0014.0000.001.000.000.000.000.000
Description       : USB Serial Device
Device Type       : Communication
Drive Letter      : COM5
Serial Number     : 
Vendor ID         : 2341
Product ID        : 8036
Vendor Name       : 
Product Name      : 
Firmware Revision : 1.00
USB Class         : 02
USB SubClass      : 02
USB Protocol      : 01
==================================================

==================================================
Event Type        : Plug
Event Time        : 6/11/2019 12:19:40 PM
Device Name       : Port_#0001.Hub_#0001
Description       : USB Serial Device
Device Type       : Communication
Drive Letter      : COM6
Serial Number     : 
Vendor ID         : 2341
Product ID        : 0036
Vendor Name       : 
Product Name      : 
Firmware Revision : 0.01
USB Class         : 02
USB SubClass      : 02
USB Protocol      : 01
==================================================

==================================================
Event Type        : Unplug
Event Time        : 6/11/2019 12:19:48 PM
Device Name       : Port_#0001.Hub_#0001
Description       : USB Serial Device
Device Type       : Communication
Drive Letter      : COM6
Serial Number     : 
Vendor ID         : 2341
Product ID        : 0036
Vendor Name       : 
Product Name      : 
Firmware Revision : 0.01
USB Class         : 02
USB SubClass      : 02
USB Protocol      : 01
==================================================

==================================================
Event Type        : Plug
Event Time        : 6/11/2019 12:19:48 PM
Device Name       : Port_#0001.Hub_#0001
Description       : USB Composite Device
Device Type       : Unknown
Drive Letter      : 
Serial Number     : 
Vendor ID         : 2341
Product ID        : 8036
Vendor Name       : 
Product Name      : 
Firmware Revision : 1.00
USB Class         : 00
USB SubClass      : 00
USB Protocol      : 00
==================================================

==================================================
Event Type        : Plug
Event Time        : 6/11/2019 12:19:48 PM
Device Name       : 0000.0014.0000.001.000.000.000.000.000
Description       : USB Serial Device
Device Type       : Communication
Drive Letter      : COM5
Serial Number     : 
Vendor ID         : 2341
Product ID        : 8036
Vendor Name       : 
Product Name      : 
Firmware Revision : 1.00
USB Class         : 02
USB SubClass      : 02
USB Protocol      : 01
==================================================

INFO LISTED BELOW FROM VERBOSE SKETCH UPLOAD:

Arduino: 1.8.9 (Windows Store 1.8.21.0) (Windows 10), Board: "Arduino Leonardo"

Sketch uses 4130 bytes (14%) of program storage space. Maximum is 28672 bytes.
Global variables use 149 bytes (5%) of dynamic memory, leaving 2411 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port COM5
PORTS {COM5, } / {} => {}
PORTS {} / {COM5, } => {COM5, }
Found upload port: COM5
C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/bin/avrdude -CC:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM5 -b57600 -D -Uflash:w:C:\Users\ni\AppData\Local\Temp\arduino_build_299238/Blink.ino.hex:i 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files\WindowsApps\ArduinoLLC.ArduinoIDE_1.8.21.0_x86__mdqgnx93n4wtt\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM5
         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

avrdude: butterfly_recv(): programmer is not responding
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

OS X trouble shooting attempts:

INFO FROM SYSTEM PROFILER:

Arduino Leonardo:

  Product ID:	0x8036
  Vendor ID:	0x2341
  Version:	1.00
  Speed:	Up to 12 Mb/sec
  Manufacturer:	Arduino LLC
  Location ID:	0x14100000 / 6
  Current Available (mA):	500
  Current Required (mA):	500
  Extra Operating Current (mA):	0

INFO COPIED FROM FAILED SKETCH UPLOAD:

Arduino: 1.8.9 (Mac OS X), Board: "Arduino Leonardo"

Sketch uses 7000 bytes (24%) of program storage space. Maximum is 28672 bytes.
Global variables use 1216 bytes (47%) of dynamic memory, leaving 1344 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port /dev/cu.usbmodem14101
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } => {}
PORTS {/dev/cu.Bluetooth-Incoming-Port, /dev/tty.Bluetooth-Incoming-Port, } / {/dev/cu.Bluetooth-Incoming-Port, /dev/cu.usbmodem14101, /dev/tty.Bluetooth-Incoming-Port, /dev/tty.usbmodem14101, } => {/dev/cu.usbmodem14101, /dev/tty.usbmodem14101, }
Found upload port: /dev/cu.usbmodem14101
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -P/dev/cu.usbmodem14101 -b57600 -D -Uflash:w:/var/folders/6s/2q6f9hm122l_cdbx3q_nph9h0000gp/T/arduino_build_422701/HelloWorld.ino.hex:i 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/n/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbmodem14101
         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

avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = ""; type = 
    Software Version = .; Hardware Version = 0.
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.

avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader

avrdude done.  Thank you.

the selected serial port 
 does not exist or your board is not connected

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Thank you all again for your dedication to helping troubleshoot. If there is any way I can help by answering questions or providing info into my process please don’t hesitate to ask.

1 Like

This looks normal. Nice that you were able to load games :slight_smile:

The timing on the rest can be tricky, I guess Arduino themselves recommend holding down the reset button and then releasing it once Arduino says it is uploading, since actually Arduino is running a quick succession of attempts, and once the board finally resets then the upload will catch.

Just to confirm @polymoth the Arduboy works like normal again, you are able to flash other sketches now without the reset button?

@polymoth great you’ve managed to solve your upload problem.

You’ve reminded me that timing can be tricky because of varying OS-es and hardware

Thank you all for the follow-up.

Yes, I am able to upload normally, and without needing to use the reset or flashlight mode. I can successfully upload examples from IDE as well as upload games via Arduboy Uploader tool. All seems to be working well.

Timing does seem to have made the difference. For future troubleshooting in the community I’d suggest just keep tying uploading and resetting with varying timing. I definitely tried a dozen or more times in both OS-es.

This is such a helpful community!

3 Likes

I have to do the same thing sometimes. I’ll take the blame I mean, if anyone is unsatisfied with the device and needs to return it then let me know but actually this is a problem inherited from Arduino that I didn’t know about when I created the Arduboy.

In some ways I feel very lucky, because adding the reset button was a last minute thing. I wasn’t sure it was ever going to be needed.

Now, it has been more and more functional I wish you could press it like a normal button.

1 Like

*cough* :wink:

1 Like

Nice! Next time you make the console :wink:

4 Likes

…to be fair, the Kickstarter was already underway when I raised the point, and it almost certainly would not have been feasible to make such a major change to the design!

Makes you wonder though, weighing up how much an FTDI chip in every Arduboy would have added to the costs and timeline, vs. all of the user time / frustration / troubleshooting that have been swallowed up over time by the ‘bricking’ / trial-and-error-reset-timing issue caused by Arduino…

I thought there would be more benefit to having a native usb controller onboard.

1 Like

I refuse to use any FTDI parts in any of my designs as a matter of principle after the whole FTDI-gate fiasco. I’ve personally never had an issue flashing an Arduboy, but having taught an entry level college electronics lab I can tell you that even having a dedicated usb serial bridge isn’t fool proof and plenty of students had troubles with programming arduino unos and pro minis with onboard FTDI chips.

1 Like

Eeek - this is the first I had heard of FTDI-gate! :confounded:

(the Uno doesn’t use an FTDI though - doesn’t it use an ATmega8U2 / ATmega16U2?)

1 Like

The new unos use an atmega with native usb support, but the ones we used in lab must have been older models as they had FTDI chips.

1 Like

Likewise.

I’ll leave a link to the Hackaday article in case anyone else is interested:

(Hopefully people have sued FTDI for damages.)


If anyone wants to discuss this further, don’t reply to this comment,
make a new thread in the #discussion or #general:off-topic section.

1 Like