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

Have you tried this?

Thanks Mr. Blinky, I did try the Blink example and got the same results. After reset Arduboy is detected, green light flashes, boots into Space Cab, and upload fails.

Do you have an Android phone? I usually reflash my Arduboy with my phone and so far never had any issues doing so. Even for the known to have issues.

Using Arduboy Mate app on Google store, you can plug in your Arduboy to your phone with a OTG cable, then have any .hex file in your phone of a small sketch. Turn on your Arduboy while plugged in your phone and try to upload a sketch. Chances are it will say that it failed, let the Arduboy plugged in and press the reset button on your Arduboy, yellow light should start blinking in the Arduboy and the sketch your tried to upload earlier will be uploaded. If even that method doesn’t work, I fear it’s more a hardware failure.

I used that same technique for flashing a game after Space Cab many times and it never failed me.

Thanks, I can likely borrow a friend’s android and try your suggestion.

Any success?

By the way it does seem like something else is amiss here. If you aren’t able to solve it be sure to use the contact page.

I’m tracking down something down in Arduino that might be causing this.

I’ve looked into this pretty deeply, there is really no reason this shouldnt work. As best as I can tell there is something on the users system that is causing a problem with the bootloader being enumerated when the Arduboy resets.

But, then why does it happen on multiple computers?

@polymoth I’d love it if you could send this Arduboy for me for testing…

It is strange that the port is the same after the reset. I would say it is the typical bootloader corruption (Bring your Arduboy back from the dead (burn bootloader))

I disagree. When the Arduino IDE tries to start bootloader mode and the program changes the magic key value then the program will just reset / restart and same COM port will pop up again.

:face_with_monocle: same comport for a different usb id? mmm… I am not sure

@polymoth, can you run http://www.nirsoft.net/utils/usb_log_view.html and try to upload again, posting the results here?

The program (sketch) doesn’t change the USB VIDPID on power-on or reset. it only changes when you successfully enter the bootloader mode. which it doesnt.

The most obvious: the magic key value is over written and prevents entering bootloader mode.

I think the solution lies in pressing the Arduboys reset button. When you press the small reset button Arduboy enters bootloader for about 8 seconds and then exits to run the game again.

To verify that youe arduboy can enter bootloader mode, open device manager on Windows and when you press the reset button you will see an ‘Arduino Leonardo bootloader’ COM port appear under ports. and dissapear after about 8 seconds.

When you have confirmed this. Start Arduino IDE and make sure you have the verbose option for upload enabled under preference and press the upload button. When you see the com ports logging press the reset button on Arduboy. If it still doesnt upload, try a few more times.

You can press the tiny reset button with a sim tool, toothpick, refillable pencil tip or other thin but non sharp object.

2 Likes

Oh sorry I didnt saw that it was a Mac! you are right.

1 Like

I always get a different COM port, are you sure?

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