• General
  • Arduino IDE Failure to Upload / Disconnect on Upload

Hello, I am running into a fresh problem. I am trying to upload some code that works on my other qNimbles. Somehow, I am failing to upload the code to a single qNimble. I have four connected thru a USB hub. Here has been my debugging method without fruit:

  • Upload code to correct COM port. The code compiles, and then as soon as upload starts, I get:
    No device found on COM26
    Failed uploading: uploading error: exit status 1
    I then here the "ding" of connection from my Windows machine that the COM port has been re-established.
  • I then tried power-cycling the device, my machine, Arduino, anything that had power cycling abilities. None of these helped, in any order.
  • I tried booting into the bootloader. When I do this, the device disappears from all COM ports on my device, so I cannot do anything with it.
  • I tried power cycling while in bootloader and nothing again happens.

All attempts at uploading end in a disconnect from my machine.

  • Edited

I'm not sure what's going on. That fact that you see USB problems when in the bootloader and the application makes it unlikely that this is a software or bootloader version issue, but just to be thorough, can you confirm what bootloader version you have all the Quarto's plugged into the USB hub, including the device that is being problematic.

One thought: There was a bug about a year ago where the Quarto's weren't always reporting unique serial numbers over USB, which can cause some issues. Could you look at the USB serial number and make sure all 4 devices are unique? In Windows, you can get that from device manager, select the COM port and under details, Device instance Path, it will show something like 'USB/VID_1781&PID...' and after MI_XX will be the serial number. Or use USBDeview. In Linux, lsusb -v -d 1781:0941. If this is the problem, upgrading the bootloader to 0.7.x should fix it.

I'm also suspicious that this is at least in part related to the USB hub. If the problem isn't the serial number, can you check if the Quarto programs properly when connected directly into the computer (no USB Hub connected at all)? If so, what about when using the hub, but only have this problematic Quarto connected to the hub? Any chance you could try a different USB hub and see if that makes a difference? Alternatively, could you try this hub and these Quartos but with a different computer (maybe the issue is the USB driver on your computer).

Let me know what you find and hopefully we can narrow down what's going on.

  • Is there an easy way to find out what version the bootloader is?
  • USB serials below. I believe the COMs are getting unique IDs (denoted 00 and 02 for respective pairs).
  • On the USB hub: I have been uploading thru this USB hub on many occasions. Unfortunately access to the qNimbles is through a chassis that I designed, so getting the straight USB from source is very tedious (but not impossible). I reckon I might have to open it up...
  • I can try with a different machine. Unfortunately, the machine it is connected to is not networked, and setting up Arduino for qNimbles off-network is tedious and time consuming in general, but I might have to in order to solve this.

    RyanM I imagine that the bootloader might be old - I can rip it off of another qNimble in the same chassis. Even if the bootloader is old, my inability to upload to it would probably make it hard to update.

    • Edited

    I'm confused on the USB list you are showing. I see 9 lines that mention a USB Serial device that has the Quarto's VID (1781) and PID (0941). There should only be 2 USB serial devices per physical Quarto, so I'm unclear on why there are 9 devices listed. Also, it looks like 3 pairs of Quartos with working proper ports and the COM9 by itself -- does it have a matching pair with the same 15e715 ID, but it shows isn't in that screen shot? And the two greyed listings look like different Quarto's at not pair -- could that be the case? Or are those devices not currently connected and the connected Quarto's have green dot and seems to be working at the USB / OS level.

    Also, I might be wrong about reading the serial number from the instance ID. It looks like you are using USBDeview -- can you look for the line showing the Quarto as a USB Composite Device. That should show the serial number directly in that column:

    I might try selecting the Quarto's in the USBDeview and right clicking them and select 'uninstall selected devices'. This should force Windows to uninstall the drivers and when you replug in the Quarto, it'll re-setup the USB drivers. That might clear it up if somehow its not using the right driver.

    I'm assuming you can't control power to the Quartos independently, but if you can, try just powering one at a time to see how they show up, etc. We could try to crash them and hard-lock the USB and then unplug / replug the USB hub to effectively isolate the Quarto's, but let's try to get more information before that. I'd be very curious how another computer sees the Quartos and if it has the same problem or not. That computer doesn't need to have the Arduino IDE installed or anything. Just seeing if all the com ports show up right and maybe connecting via a terminal problem would be useful.

    For the bootloader version, you can run:

    Serial.printf("Bootloader is: %s\n",getBootloaderRev());

    to print to the serial port the bootloader version. For the device that's giving you problems, if you know the serial number, you can let me know and I can look up what bootloader it had when it shipped out (assuming it hasn't been upgraded).

    Let me know what you find.