0

I'm running a Velleman VMA103, which is advertised as a clone of the Leonardo. Both use the 32u4 chip, and the pinout is exactly the same. However, when I plug it in, the drivers do something weird.

For about 5 seconds after pressing reset, the Arduino IDE will recognize the Leonardo on COM9, and the Windows device manager will show "Arduino Leonardo bootloader" then, the COM9 device will disappear and a device will be shown in the Other Devices tab as a LININO ONE, with no drivers installed. How is this possible?

I've reinstalled the IDE, no help there.

Immediately after a reset

After 5 seconds

  • How is this possible? The quick answer is "Windows". Obviously the plug-and-play manager is playing you a trick. If you really want to dig into this start by checking the USB signatures. The bootloader might be presenting an "illegal" signature which is owned by another company. – Mikael Patel Oct 10 '17 at 11:42
  • USB is a complex protocol. There is a USB device and vendor ID used to tell the difference between a USB printer and USB camera. Perhaps the clone is not setup correctly. Connect the clone to a Linux computer and type "lsusb". Or, you may have multiple drivers installed on your Windows machine all fighting to be used by the USB device. You didn't say what Windows you are using - so search for how to deal with this on the internet. – st2000 Oct 10 '17 at 11:45
  • Test it with another computer. If that is the same problem, then you should burn new firmware into it (the official Arduino Leonardo firmware). That should get rid of all the nonsense. Do you have a programmer or a Arduino Uno board that can be used as a programmer ? Once that is connected properly then you can use the Arduino IDE to burn new firmware. – Jot Oct 10 '17 at 12:41
0

USB associates a driver, and thus what it calls a device, with the VID and PID that the device announces. Arduino PIDs are in a horrible mess, and there are many different devices that use the same PID. On top of that you have other makers also using the same VID/PID pairs and providing their own re-named Arduino driver files for their devices.

And then of course you have the problem that it is down to the firmware ("sketch") installed on the Leonardo that determines what VID and PID is shown to the computer.

So you have a set of possible scenarios - the main two being:

  1. You have a driver installed that identifies the VID/PID pair of the Leonardo as something else
  2. You have firmware installed in the Leonardo that gives the wrong VID/PID pair for your drivers

Check 2 first by installing the Blink example into the Leonardo (you can still upload firmware since it goes to bootloader mode at first as you have seen). If it changes the shown driver then you had some broken firmware installed. If it doesn't then you may be running a patched installation of the Arduino AVR core that gives a different default VID/PID pair, or you may just have the wrong board selected in the menu.

If you still have trouble then uninstall whatever driver is associated with the detected device and reinstall the official Arduino drivers that come with the IDE.

You can also delete the IDE and its associated downloaded packages and reinstall the latest version to ensure that you don't have strange patches and settings in there corrupting things.

  • A Leonardo sketch can change the Leonardo's VIP/PID values? I didn't know that. Regardless, perhaps it would improve the answer if you made it clear that this is possible only on some Arduinos. I'm thinking the old Arduino Uno's had an FTDI chip with fixed VIP/PID values. – st2000 Oct 10 '17 at 12:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.