AVRDude and usblib0.dll

Go To Last Post
14 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi All...

I'm having problems with AVRDude. Its fine on my Windows computer, but when I send it to other people to use (to upload new HEX files to their boards) I have people telling me it works on this machine, but not on that machine. The complaint from AVRDude is that it can not find usblib0.dll, and this is true even if we try sticking that dll in the same directory (and making sure the current directory is in the path).

The issue does not seem to relate to 32bit vs 64 bit, or even what version of Windows, although I can not say for sure exactly what does cause it. These are non-development machines that don't have Jungo drivers.

Some searching seemed to say this was a bug the has been corrected, but even the latest version of avrdude has the issue.

Is there a known issue or a workaround?

Thanks...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My recollection is that Studio requires a special USB driver called "Jungo". Could it be that this did not get installed? At least on XP, Jungo will show up in the ControlPanels>>Hardware, I think it is, as a separate item in addition to COM & LPT hardware group.

If I remember correctly, after the installer installs Studio, there is a separate install for Jungo.

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks Jim, the Jungo drivers, I believe, create a virtual COM port from a USB port. We have installed the FTDI drivers, which do that for the FTDI chip on the target board. It has worked on computers without these Jungo drivers.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

skyjumper,

Do you have WinAVR on your machine?

I googled "avrdude missing libusb0.dll" and there were numerous hits.

One that said "I've solved it by installing WinAVR. It comes with libusb0.dll"

Also in your first post you called it "usblib0.dll" when it is "libusb0.dll".

"I may make you feel but I can't make you think" - Jethro Tull - Thick As A Brick

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well if you only have one DLL no matter what architecture PC (x86 or x64), you will have a problem with Vista x64 and Windows 7 x64, since neither will load any kernel driver (and that is what libusb is) not signed or compiled for the correct architecture.You cannot compile a kernel driver targetting AnyCPU, a 64 bits machine needs a 64 bits driver, and a 32 bits machine a 32 bits driver, because the 32 bits emulation layer is not loaded at kernel level.

The best solution would be to include a link to a direct download of the latest libusb driver installation.

(Unless I am mistaken and libusb0.dll in this case is just a badly chosen class library name that conflicts with the well known libusb)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

larryvc wrote:
skyjumper,

Do you have WinAVR on your machine?

I googled "avrdude missing libusb0.dll" and there were numerous hits.

One that said "I've solved it by installing WinAVR. It comes with libusb0.dll"

Also in your first post you called it "usblib0.dll" when it is "libusb0.dll".

Well it works fine on my machine, but I need to be able to distribute it and have it work on machines that don't have WinAVR.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

hugoboss wrote:
The best solution would be to include a link to a direct download of the latest libusb driver installation.

So that's the same driver as libusb0.dll???

Maybe 64bit vs 32 bit is the issue. Its hard to test because my machine works :-(

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You might try a separate standalone avrdude GUI like this one:

http://sourceforge.net/projects/...

The AVRdude GUI included in WinAVR is an integral part of WinAVR, there are likely other dependency issues that will show up when/if you fix libusb.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Maybe 64bit vs 32 bit is the issue. Its hard to test because my machine works :-(

I always keep a bunch of VMs handy with different versions of Windows installed so I can debug properly when programming for Windows. They saved me countless headaches over the years. Have a look at https://www.virtualbox.org/ .

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

hugoboss wrote:
You might try a separate standalone avrdude GUI like this one:

http://sourceforge.net/projects/...

The AVRdude GUI included in WinAVR is an integral part of WinAVR, there are likely other dependency issues that will show up when/if you fix libusb.

But doesn't the GUI just invoke AVRDude?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, it is just a GUI front end for avrdude.

"I may make you feel but I can't make you think" - Jethro Tull - Thick As A Brick

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

skyjumper,

Go here:

http://sourceforge.net/apps/trac...

and follow the instructions under Device Driver Installation. This will install your board with the libusb-win32 driver and will give you the correct version of libusb0.dll and libusb0.sys for the Windows OS that you are using, 32-bit or 64-bit. It will have to installed on all the client machines. Not a perfect solution but it should work.

You should test it on one client machine first of course.

Good Luck.

"I may make you feel but I can't make you think" - Jethro Tull - Thick As A Brick

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

Last Edited: Sat. May 12, 2012 - 10:07 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

skyjumper,

Did you ever resolve this issue?

"I may make you feel but I can't make you think" - Jethro Tull - Thick As A Brick

"void transmigratus(void) {transmigratus();} // recursio infinitus" - larryvc

"It's much more practical to rely on the processing powers of the real debugger, i.e. the one between the keyboard and chair." - JW wek3

"When you arise in the morning think of what a privilege it is to be alive: to breathe, to think, to enjoy, to love." -  Marcus Aurelius

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Not really. It seems the 16 bit dll works on all machines, but I'm not sure.