USB Printer not sending Endpoints

armcusb

I am working on ARM & based LPC2468 controller interfacing with USB printer.I have successfully configured a Printer and it is working Properly. Now i came across a new printer Manufactured by Wipro,when i connected it to my device it didn't work.After researching a lot i came to know that my earlier USB printers (TVS, EPSON) use to send their endpoints (in and out)numbers during the setup phase(i.e in endpoint descriptor)but Wipro's printer send 0x00
at the place on in and out endpoints. Is there any way by which i can know or assign endpoints(both in and out) to the Printer.

Best Answer

The following tests rely on connecting the printer to a Linux machine. Even if it's not Linux you are using on your ARM, this information is useful in identifying the protocol the printer is willing to use.

lsusb -v

should give you a list of all USB-connected devices. However, there is quite a variety of possibilities on how you actually have to drive your printer. Frequently, printers emulate 'old' printer interfaces: Serial port or Parallel port. If that is the case, your best bet is to check

dmesg

and see if the printer is listed in the events, and if it was recognized (and installed) as maybe ttyusbX or usblpX) or so. At this point, there should be information how Linux should be driving the devices (maybe HID or another protocol). If it's HID, then Linux will probably try to install its own driver. Could also be ACM (for serial emulation).

About the 0 endpoints: those are requisites by the USB norm. All USB peripherals must have an IN and OUT endpoint 0. During the setup, there should also appear at least one configuration (configuration 0). This is called the default configuration.