Could not access USB device 0403:6010


ablic

Recommended Posts

I received my kickstarter Papilio DUO but I am unable to get the load circuit button to function with it. Initially after SW/driver install I did see two COM ports added and I tried pointing the DesignLab v1.0.1 at them but it would come up with this error "Could not access USB device 0403:6010". So I switched to trying to program the AVR. I was able to program that once but I have been unable to program it again and now the second COM port does not appear when I plug in the device. I can see the code is running on the AVR though through the serial monitor and the blinky light. I tried re-ording the existing COM port to COM1 but that did not seem to help.
 

The remaining COM device shows up as Papilio DUO FPGA Serial Port (COM1) on Papilio DUO FPGA Serial Converter B.

 

I can see the unloaded COM port drivers if I do show hidden devices Papilio DUO AVR Serial Port (COM35) & Papilio DUO AVR Bootloader (COM37) 

 

I can still see the both USB devices Papilio DUO FPGA Serial Converter A & B

 

This is what I get when I try the upload to the AVR instead of the load circuit.

Executing  C:\DesignLab-1.0.1/hardware/tools/zpu/bin/zpu-elf-size C:\Users\Jim\AppData\Local\Temp\build7464026767393194216.tmp/Papilio_DUO_QuickStart.cpp.elfBinary sketch size: 8,040 bytes (of a 8,388,608 byte maximum) - 6,776 bytes ROM, 2,560 bytes memory, 0% usedBoard: Unknown board @ 96000000 Hz (0xa4051300)Board mismatch!!!.Board is:      0xa4051300 'Unknown board'Sketch is for: 0xb4051300 'Unknown board'
This is what I get when I do load circuit
Programming to SPI FlashCould not access USB device 0403:6010.Unknown Papilio BoardCould not access USB device 0403:6010.
I made sure Load VCP is set for in the driver Papilio DUO FPGA Serial Converter B.
 
I tried uninstalling everything and reinstalling.
 
It feels like the A & B are mixed up given that the board reported is 0xa and not 0xb.
 

Any suggestions?

Link to comment
Share on other sites

Ok, hmmm this is a strange one. Can you try another USB port? One without a hub? If you have another computer to try that would be great. The boards are tested at the factory, but maybe this one worked long enough to pass testing but is not right... We will be happy to replace it for you. If you could try the other USB port and another computer that would be great. Otherwise send us an email at support@gadgetfactory.net and we will get you a replacement.

Jack

Link to comment
Share on other sites

After a bunch more troubleshooting I got it working. Removing the two butterfly labs asic bitcoin miners from the machine appears to allow it to work. Probably messing with the DesignLab search for the correct USB device to use to program the FPGA. USB hubs and direct connections to the USB port on the PC did not affect the behavior. I also noticed the Papilio drivers want to hijack a minispartan6 when I attach it and call it a Papilio FPGA Serial Converter A & B, not sure if that will cause trouble yet. I think we need to be able to specify the actual USB device for FGPA programming as well as the COM port used for AVR access in the DesignLab program. The xc3sprog might be useful to check out.

 

from xc3sprog with each device connected

minispartan6

JTAG loc.:   0  IDCODE: 0x24004093  Desc:                       XC6SLX25 Rev: C
IR length:  6
 
Papilio DUO
JTAG loc.:   0  IDCODE: 0x24001093  Desc:                        XC6SLX9 Rev: C
 IR length:  6
 
 
Link to comment
Share on other sites

I'm facing a similar problem. The DUO worked exactly as expected up until I tried to load a new sketch onto the AVR, and since then it no longer creates the 'Papilio DUO AVR Serial Port' virtual COM port - instead, I get USB PnP errors.

 

The PC is running Windows 7. I have installed DesignLab 1.0.1 and the XILINX ISE WebPack. For convenience I connected the FPGA USB cable directly to the PC, and the AVR USB cable via a USB hub. The power selector jumper is in the FPGA position. Initially the on-board LED blinked as expected. When I disconnected it, plugged in the LED/buttons wing and reconnected, the onboard LED still blinked as before and the LEDs on the wing also blinked. When the DUO was running, I found Papilio DUO AVR Serial Port (COM9) and Papilio DUO FPGA Serial Port (COM12) present.

 

Then I opened the Papilio_DUO_Quickstart sketch in DesignLab, selected Papilio DUO - AVR - USB as the board type and the AVR's virtual COM port (COM9) as the serial port, and uploaded the sketch.

 

After the upload had completed, I still has COM12 but COM9 had disappeared. Each time I reset the AVR I found that a 'Papilio DUO AVR Bootloader (COM9)' port appeared for a few seconds, then that disappeared and an unknown Device appeared. A Windows Error Reporting event appeared in the Windows Application Log at this time:

 

Log Name:      Application
Source:        Windows Error Reporting
Date:          08/02/2015 15:29:44
Event ID:      1001
Task Category: None
Level:         Information
Keywords:      Classic
User:          N/A
Computer:      E620
Description:
Fault bucket 388111150, type 5
Event Name: PnPDeviceProblemCode
Response: Not available
Cab Id: 0

Problem signature:
P1: x64
P2: USB\UNKNOWN
P3: {36fc9e60-c465-11cf-8056-444553540000}
P4: 0000002B
P5: unknown
P6: unknown
P7: unknown
P8:
P9:
P10:

Attached files:
C:\Users\Peter\AppData\Local\Temp\DMI86DD.tmp.log.xml
C:\Windows\inf\usb.inf

These files may be available here:
C:\Users\Peter\AppData\Local\Microsoft\Windows\WER\ReportArchive\NonCritical_x64_8dd2a6bea57836935d86a299b4735d5c6f632592_12cec237

Analysis symbol:
Rechecking for solution: 0
Report Id: 4544e066-afa7-11e4-88a0-d067e50fbc77
Report Status: 0
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Windows Error Reporting" />
    <EventID Qualifiers="0">1001</EventID>
    <Level>4</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2015-02-08T15:29:44.000000000Z" />
    <EventRecordID>45936</EventRecordID>
    <Channel>Application</Channel>
    <Computer>E620</Computer>
    <Security />
  </System>
  <EventData>
    <Data>388111150</Data>
    <Data>5</Data>
    <Data>PnPDeviceProblemCode</Data>
    <Data>Not available</Data>
    <Data>0</Data>
    <Data>x64</Data>
    <Data>USB\UNKNOWN</Data>
    <Data>{36fc9e60-c465-11cf-8056-444553540000}</Data>
    <Data>0000002B</Data>
    <Data>unknown</Data>
    <Data>unknown</Data>
    <Data>unknown</Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
    </Data>
    <Data>
C:\Users\Peter\AppData\Local\Temp\DMI86DD.tmp.log.xml
C:\Windows\inf\usb.inf</Data>
    <Data>C:\Users\Peter\AppData\Local\Microsoft\Windows\WER\ReportArchive\NonCritical_x64_8dd2a6bea57836935d86a299b4735d5c6f632592_12cec237</Data>
    <Data>
    </Data>
    <Data>0</Data>
    <Data>4544e066-afa7-11e4-88a0-d067e50fbc77</Data>
    <Data>0</Data>
  </EventData>
</Event>

 

I also see three UserPnP events in the System event log. This is the last one:

 

Log Name:      System
Source:        Microsoft-Windows-UserPnp
Date:          08/02/2015 15:34:56
Event ID:      20001
Task Category: (7005)
Level:         Information
Keywords:      
User:          SYSTEM
Computer:      E620
Description:
Driver Management concluded the process to install driver FileRepository\papilioduo_usb_driver.inf_amd64_neutral_3a30c79973337c29\papilioduo_usb_driver.inf for Device Instance ID USB\VID_1D50&PID_60A4\6&2B8B280A&0&3 with the following status: 0x0.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Microsoft-Windows-UserPnp" Guid="{96F4A050-7E31-453C-88BE-9634F4E02139}" />
    <EventID>20001</EventID>
    <Version>0</Version>
    <Level>4</Level>
    <Task>7005</Task>
    <Opcode>0</Opcode>
    <Keywords>0x8000000000000000</Keywords>
    <TimeCreated SystemTime="2015-02-08T15:34:56.813577500Z" />
    <EventRecordID>1383165</EventRecordID>
    <Correlation />
    <Execution ProcessID="6816" ThreadID="5988" />
    <Channel>System</Channel>
    <Computer>E620</Computer>
    <Security UserID="S-1-5-18" />
  </System>
  <UserData>
    <InstallDeviceID xmlns:auto-ns2="http://schemas.microsoft.com/win/2004/08/events" xmlns="http://manifests.microsoft.com/win/2004/08/windows/userpnp">
      <DriverName>FileRepository\papilioduo_usb_driver.inf_amd64_neutral_3a30c79973337c29\papilioduo_usb_driver.inf</DriverName>
      <DriverVersion>5.1.2600.0</DriverVersion>
      <DriverProvider>Gadget Factory (www.gadgetfactory.net)</DriverProvider>
      <DeviceInstanceID>USB\VID_1D50&PID_60A4\6&2B8B280A&0&3</DeviceInstanceID>
      <SetupClass>{4D36E978-E325-11CE-BFC1-08002BE10318}</SetupClass>
      <RebootOption>false</RebootOption>
      <UpgradeDevice>false</UpgradeDevice>
      <IsDriverOEM>true</IsDriverOEM>
      <InstallStatus>0x0</InstallStatus>
      <DriverDescription>Papilio DUO AVR Bootloader</DriverDescription>
    </InstallDeviceID>
  </UserData>
</Event>

I'm guessing that the USB handling of the AVR virtual serial port is done in the sketch running on the AVR, and for some reason the sketch that I have uploaded no longer matches the corresponding USB device driver on the PC. Does that make sense? Any idea how to recover from it? At the moment I can't even select the DUO AVR COM port to upload a new sketch, because the bootloader port doesn't stick around for long enough to select it.

Link to comment
Share on other sites

I've made a little progress. I reset the AVR and was able to select the Papilio DUO AVR Bootloader (COM11) port in DesignLab. Then I uploaded a copy of the Blink sketch which had Serial.begin(9600) added to setup(). Now when I reboot the AVR I see 'Papilio DUO AVR Bootloader (COM11)' appear for a few seconds, then that disappears and Papilio DUO AVR Serial Port (COM13)' appears. If I open COM13 I see output from the sketch. This sort-of works but is pretty inconvenient because the COM port number is changing - it a bit of faffing around to run the bootloader and then quickly select that port in the IDE in order to be able to upload a sketch, and then change to a different COM port to see the sketch output. Is this changing of the port number how it is supposed to work?

Link to comment
Share on other sites

The Papilio DUO AVR Serial Port device has not made a reappearance since the initial install of the drivers, after downloading the first sketch I did not see it again. Since this HW is based on the Arduino Leo it has similar behavior with respect to the bootloader. I have not needed to do any COM port switching after I got things working above. I just point the DesignLab at the Papilio DUO FPGA Serial Port and then hit the upload button. I believe it does some behind the scene stuff to reset the board and get the bootloader which it then connects to and send the elf file down. I did not see the Papilio DUO AVR Bootloader device appear during this process. It must use the existing Papilio DUO FPGA Serial Port or the Papilio DUO FPGA Serial Converter A & B devices to perform the operation.

 

Found smallfs directory

C:\DesignLab-1.0.1/hardware/tools/zpu/bin/mksmallfs C:\Users\Jim\AppData\Local\Temp\build6958693169871536834.tmp/smallfs.dat C:\DesignLab-1.0.1\examples\SHIELD_Computing_Shield\examples\Computing_Shield_Verification/smallfs 
SmallFS: Packed 2 files sucessfully
Computing_Shield_Verification.ino: In function `void loop()':
Computing_Shield_Verification.ino:201: warning: comparison between signed and unsigned integer expressions
C:\DesignLab-1.0.1\hardware\papilio\zpu\cores\zpuino2\zstdio.c:358: warning: '__stdio_init' defined but not used
C:\DesignLab-1.0.1\hardware\papilio\zpu\cores\zpuino2\DeviceRegistry.cpp: In static member function `static int ZPUino::DeviceRegistry::getPPSPin(int, int, int)':
C:\DesignLab-1.0.1\hardware\papilio\zpu\cores\zpuino2\DeviceRegistry.cpp:54: warning: converting of negative value `-0x000000001' to `unsigned int'
C:\DesignLab-1.0.1\hardware\papilio\zpu\cores\zpuino2\DeviceRegistry.cpp:64: warning: unused variable 'pin'
Executing  C:\DesignLab-1.0.1/hardware/tools/zpu/bin/zpu-elf-size C:\Users\Jim\AppData\Local\Temp\build6958693169871536834.tmp/Computing_Shield_Verification.cpp.elf
Binary sketch size: 27,036 bytes (of a 8,388,608 byte maximum) - 24,200 bytes ROM, 4,104 bytes memory, 0% used
Upload param is -e "{build.path}/smallfs.dat"
SmallFS filesystem found, appending extra data file to FLASH
Board: Unknown board @ 96000000 Hz (0xb4051300)
Programming completed successfully in 45.87 seconds.
Link to comment
Share on other sites

 

After a bunch more troubleshooting I got it working. Removing the two butterfly labs asic bitcoin miners from the machine appears to allow it to work. Probably messing with the DesignLab search for the correct USB device to use to program the FPGA. USB hubs and direct connections to the USB port on the PC did not affect the behavior. I also noticed the Papilio drivers want to hijack a minispartan6 when I attach it and call it a Papilio FPGA Serial Converter A & B, not sure if that will cause trouble yet. I think we need to be able to specify the actual USB device for FGPA programming as well as the COM port used for AVR access in the DesignLab program. The xc3sprog might be useful to check out.

 

from xc3sprog with each device connected

minispartan6

JTAG loc.:   0  IDCODE: 0x24004093  Desc:                       XC6SLX25 Rev: C
IR length:  6
 
Papilio DUO
JTAG loc.:   0  IDCODE: 0x24001093  Desc:                        XC6SLX9 Rev: C
 IR length:  6
 
 

 

 

Thank you for this very helpful information, I did not anticipate this being a problem. I will look into changing DesignLab so it specifies the Manufacturer string to better identify the DUO.

 

Thanks,

Jack.

Link to comment
Share on other sites

The Papilio DUO AVR Serial Port device has not made a reappearance since the initial install of the drivers, after downloading the first sketch I did not see it again.

 

From what I've seen, that Papilio DUO AVR Serial Port is only created when the sketch calls Serial.begin(). One of the symptoms when I uploaded the Papilio DUO Quick Start sketch was that the AVR Serial Port no longer appeared, but when I uploaded a simple sketch that just opened the serial port and blinked an LED, I saw the Papilio DUO AVR Serial Port again at the point that Serial.begin() is called. The main problem outstanding in my installation now is that the COM port numbers don't make sense. Having deleted the USB devices, I have now got into a state where the Papilio DUO AVR Serial Port comes up as COM11, and the AVR Bootloader and FPGA Serial Port both come up as COM12. I guess the USB drivers are meant to match up the AVR Bootloader and AVR Serial Port so they end up with the same port number, but in my case that isn't working.

 

I also find that from time to time some of the Papilio USB devices show up as "USB Serial Device" or "USB I/O Device", and once they both showed up as "HID-compliant mouse". I this code in the Quick_Start sketch which suggested this might be a known issue:

  //Delay for 5 seconds to prevent detection as a Micorsoft Serial BallPoint serial mouse.  delay(5000);
Link to comment
Share on other sites

PeterH,

 

I think your problem is a little bit different, the way the Leonardo sketch loading process works is a little strange. When you load a sketch it will cause the AVR chip to restart to the bootloader, which will be on a different com port. It will then upload the sketch and restart back to the original com port. If you plug your board into a different com port on your usb hub then this often causes the drivers to install again and will change the com port numbers for the bootloader and the running sketch. If you keep plugged into the same USB port you should only see two different com ports show up.

 

It also looks like at some point your bootloader was not working correctly, if things start behaving strange then I suggest you restore the bootloader by following this tutorial here.

 

 

You will also want to take a look at the full tutorial for the AVR side of the DUO here.

 

Jack.

Link to comment
Share on other sites

 

From what I've seen, that Papilio DUO AVR Serial Port is only created when the sketch calls Serial.begin(). One of the symptoms when I uploaded the Papilio DUO Quick Start sketch was that the AVR Serial Port no longer appeared, but when I uploaded a simple sketch that just opened the serial port and blinked an LED, I saw the Papilio DUO AVR Serial Port again at the point that Serial.begin() is called. The main problem outstanding in my installation now is that the COM port numbers don't make sense. Having deleted the USB devices, I have now got into a state where the Papilio DUO AVR Serial Port comes up as COM11, and the AVR Bootloader and FPGA Serial Port both come up as COM12. I guess the USB drivers are meant to match up the AVR Bootloader and AVR Serial Port so they end up with the same port number, but in my case that isn't working.

 

I also find that from time to time some of the Papilio USB devices show up as "USB Serial Device" or "USB I/O Device", and once they both showed up as "HID-compliant mouse". I this code in the Quick_Start sketch which suggested this might be a known issue:

  //Delay for 5 seconds to prevent detection as a Micorsoft Serial BallPoint serial mouse.  delay(5000);

 

 

Please try to restore the bootloader to see if that makes any difference. It also does sound like something didn't go right with your driver install or there is a conflict with another driver. There is a setting in the FPGA driver that should be disabled with the Papilio DUO drivers that should prevent the DUO from being detected as a serial mouse. The "Serial Enumerator" setting needs to be unchecked otherwise the FTDI driver will allow the Microsoft Serial Mouse driver to watch the serial port for data when it is plugged in. If there is data in the first couple of seconds it will think it is a serial mouse and all kinds of bad stuff happens. Please check the properties to see if that is checked.

 

post-29509-0-44706500-1423418741_thumb.p

Link to comment
Share on other sites

My PC runs Windows 7. The Advanced Properties don't show all those options - just  an option to enable FIFO buffers, a couple of sliders to set the buffer size, and a drop-down to select the port number.

 

I can't figure out whether the problem is on the PC side or the AVR side but there seems to be a mismatch somewhere. When I upload a simple Blink sketch, it all seems to work OK (I see the AVR Bootloader port appear when the device boots, and then that disappears and the AVR Serial Port port appears) with the only snag being that the Bootloader and Serial Port port numbers aren't the same. This doesn't seem to be a big issue because I can select the Serial Port in the IDE and sketches upload OK, but I suspect that's not how it was intended to work.

 

However, when I upload the Papilio_DUO_Quick_Start sketch, when the bootloader times out and the Bootloader port disappears, instead of seeing the AVR Serial Port, I get a PnP error and an Unknown Device. This means I don't have a port available to select in the IDE. In order to upload a sketch next time, I need to reset the AVR to run the bootloader, quickly select the corresponding COM port, start the upload and then reset the AVR again to re-start the bootloader to actually perform the upload. It's a nuisance.

 

I haven't tried using the FPGA as ISP approach yet. In this situation where the AVR COM ports seem to be misbehaving, would the ISP approach be a better bet?

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.