What really causes "Unidentified USB Device" error
From: Michael Schwab (michael.schwab_at_cobecv.com)
Date: 05/23/04
- Next message: xwcmx: "How to use Windows Media player version 7 type library"
- Previous message: Steve Maillet \(eMVP\): "Re: Win CE .NET 4.2 Platform development tools ..."
- Next in thread: Steve Maillet \(eMVP\): "Re: What really causes "Unidentified USB Device" error"
- Reply: Steve Maillet \(eMVP\): "Re: What really causes "Unidentified USB Device" error"
- Reply: Stephen: "RE: What really causes "Unidentified USB Device" error"
- Messages sorted by: [ date ] [ thread ]
Date: Sun, 23 May 2004 11:52:39 -0600
We replaced the external RS-232 port on our device (CE 4.2 system with
Advantech PCM5820 Geode x86 processor) with a USB port, because we believed
that serial printers were going out and USB printers would be the
plug-n-play wave of the future. Apparently, "future" is the optimum word,
because we're not having much luck in the present finding a small USB
printer that works with CE.
4 out of 6 USB printers we've tried to plug in to our system cause the
message "Unidentified USB Device" to pop up, and I wondered why. After
extensive debugging of the source code under:
C:\WINCE420\PUBLIC\COMMON\OAK\DRIVERS\USB\CLASS\PRINTER
(i.e. usbprn.c and lpt.c), I've found that what's called the "IEEE-1284
Device ID string" fetched from some devices by usbprn::GetDeviceID did not
contain a string that would satisfy lpt::RegisterPrinterSettings. In
particular, RegisterPrinterSettings is looking for a string that starts with
DESCRIPTION: or DES: or MODEL: and ends with a semicolon. It wants to use
this string to create a key under HKLM\Printers.
So, it's happy with the HP and Dymo printers (partial strings listed here):
MFG:hp;MDL:dj450;CMD:MLC,PCL,PML,DESKJET,DW-PCL,DYN;CLS:PRINTER;DES:hp
dj450;...
MFG:DYMO;CMD: ;MDL:LabelWriter 330 Turbo;CLASS:PRINTER;DESCRIPTION:DYMO
LabelWriter 330 Turbo;...
and "hp dj450" or "DYMO LabelWriter 330 Turbo" automagically appear in the
registry and printer list.
But it's not happy with the Samsung, Brother, or Pentax printers:
MFG:SAMSUNG;CMD:ESC,STAR;MDL:SRP-270;CLS:PRINTER;W
MFG:Brother;CMD:PT-CBP;MDL:MW-100;CLS:PRINTER;ER
MFG:PENTAX;CMD:ESC/P;MDL:PocketJet2;CLS:PRINTER;
So, Microsoft, why do you believe that this DESCRIPTION:/DES:/MDL: field is
a required part of the USB printer class standard, when so many other
manufacturers apparently do not? And I'm only talking Microsoft WinCE here
because when I plug these printers into Microsoft Windows XP the pop-up that
appears shows (with the Brother for example) MW-100, and then later
"BrotherMW-100". so it's obviously picking up the MDL: and then MFG:MDL:
fields. Perhaps one side of Microsoft doesn't know what the other side is
doing? :-)
Everybody apparently agrees that the MFG: and MDL: fields are required, so
I've been able to get around the "Unidentified USB Device" problem by
modifying lpt::RegisterPrinterSettings to also accept MDL: as a valid
description field.
Of course, after that you still need a driver that knows how to talk the
language of that particular printer. Since pcl.dll is built in, and that's
the default CE assigns to printers that are not already in the registry, the
HP DeskJet 450 (and most HP printers, I suspect) work automatically. But
the other printers here don't speak PCL, so that they don't work even if
identified correctly. It would be nice if all printers supported PCL, then
we wouldn't need special driver software for each one, as we do now even
when running on Windows XP.
So far, Pentax is the only manufacturer that has supplied us with a CE x86
driver that works with their PocketJets (they've been very helpful and I
highly recommend them). Brother and Samsung have not been cooperative, and
I haven't tried Dymo yet.
But needing a special driver for each type of USB printer someone might plug
in certainly defeats the purpose of having a universal plug-n-play standard,
doesn't it?
Michael Schwab
- Next message: xwcmx: "How to use Windows Media player version 7 type library"
- Previous message: Steve Maillet \(eMVP\): "Re: Win CE .NET 4.2 Platform development tools ..."
- Next in thread: Steve Maillet \(eMVP\): "Re: What really causes "Unidentified USB Device" error"
- Reply: Steve Maillet \(eMVP\): "Re: What really causes "Unidentified USB Device" error"
- Reply: Stephen: "RE: What really causes "Unidentified USB Device" error"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
|