Wince Device Driver - windows-ce

I am trying to connect my POS Terminal(WinCE Secure Multi-Application Operating System,200 MHz ARM 920T 32 bit CPU) to my windows 7 PC. The issue is i am getting a device driver software issue and the device is not been recognized. I didn't got any installation CD or software with the product.I couldn't find a suitable driver for the same in the web and would need to install the CAB files through WMDC into the device so that i can automate the product testing. Can someone please advice in fixing this driver issue and direct me on how to establish the connection. Any help is highly appreciated.
Thanks,
John

This can be a complex task. First, the connection type (serial, USB, Ethernet, other) is important. I'm going to assume USB, as that feels like what you're probably talking about (you should edit and clarify though).
For USB to work, you need drivers on both ends - the device and the PC - and they need to cooperate. For Windows CE devices and USB, the common way (though not only option) is to use ActiveSync. There is an out-of-the-box client application driver for Windows CE (repllog.exe) - though it requires the OEM actually plumbs it through to the transport driver. For the desktop (Vista and later) you would use Windows Mobile Device Center (WMDC).
You might simply be able to install WMDC and you're off and running, but it's always possible that the OEM disabled that, since you might not want someone to connect a PC to a POS system and subvert the normal operation. Have you asked the device OEM?

Related

Windows CE HP iPAQ - USB Stick

Hi all Windows CE developer,
is there an option that a Windows CE device (HP iPAQ) acts as a "normal" USB-drive if it will connected to PC. In this case I have an linux (embedded) device and I have to copy some files from iPAQ every few seconds.
I can not change or recompile any CE Firmware from this devices. The best would be a program to get the USB-drive possibility.
I tryed an CE-ftp server but it did not work because of the "RNDIS" stuff - TCP/IP is missing.
The ActiveSync did not work with linux. I only could get an usb-ethernet connection with RNDIS but without the communication library it makes no sense. "Synce" did not work as well some derivates.
thanks
regards
ferdl

Controlling a driverless USB Audio Device

I have a USB audio device (Scarlett Focusrite 18i6) which does not require a driver, so I assume it uses the USB HID Audio Class standard.
It works on everything from Windows and Mac to Linux and iOS.
But on Mac and Windows, it has a control application which can for instance enable and disable direct monitoring.
How would I go about reverse-engineering how this is done, so that I can reproduce it on platforms where the control application does not exist?
I'm thinking of booting up Windows in a VMWare session and then logging the USB communication (somehow?) while using the control application, but it does sound tedious considering the amount of data and my very limited understanding of USB.
Any other suggestions?
You could try running the control application using Wine instead of reverse engineering it. However, if it's accessing USB devices then there is a good chance it might be using an API not supported by Wine.
To reverse engineer it, you should find a way to look at the USB traffic between the computer and the device. Total Phase has some hardware USB protocol analyzers, but you might be able to find a good software solution for free.

Use a Linux Computer as a USB Coupler

I am on debian and:
I have a USB controller hooked up to a USB port on my PC (Device 1).
I have a male to male USB cord hooked up to another port on the PC that connects to Device 2. (it is a "bridging" usb cord, and has the chip for it)
I want to make them connect to each other as if they were one cord, so neither device knows that there is a computer in the middle.
This would be called a 'Coupler', except that I am using a PC as a coupler.
Here is a (really bad) diagram I made:
What I have done:
I have been able to connect the two devices independently of each other and sniff the results for when they fail to connect. The devices don't send a large volume of data back and forth.
Maybe there is some kind of command tool that I could use, for example (psudocode):
$ couple-usb-ports PORT1 PORT2
You're trying to reinvent the wheel here.
You might consider looking at this link instead.
http://dan3lmi.blogspot.com/2012/10/sniffing-usb-traffic-different.html
Specifically this.
Windows: You cannot directly capture raw USB traffic on Windows with Wireshark/WinPcap, but it is possible to capture and debug USB traffic on a virtual Windows machine under Oracle Virtual Box.
You cannot use a simple PC as transparent USB sniffer without extra (expensive) hardware. An USB bus has always one host (and one or more devices), and the PC can only be the host. This is a hardware limitation.
But you can capture USB data in a Windows machine using Wireshark and USBPcap, eliminating the need for the middle box in most cases.
As this post is tagged Linux, I suppose the controller PC is a Linux machine. Instead of connecting USB ports with a male-male connector, which is all kinds of bad (you are connecting the 5V lines of both machine with each other!), just run Wireshark in the controller PC.
There might be a little work to be done previously, as you have to enable Wireshark for USB monitoring (Particularly in Debian, this is disabled by default), and you might have to install a small driver to enable the monitoring. Have a look at this page for more information.
Once you get it working, Wireshark is an excellent tool for this!

How to use USB GPRS Modem on ARM - Windows CE 6.0?

I've been involved with a project where I have to install and use a USB GPRS modem on an ARM board (RSC-W910) with Windows CE 6.0 installed.
The modem is the Sierra Wireless product GL6110 (GL61x0) and I need to use it only for data, making HttpWebRequests (TCP) send/receive XML data. Prefered development tool is C# and .Net Framework 3.5.
When the modem is connected via USB to the board, the error message that appears is saying "Unidentified USB Device" which I believe its normal.
Siera Wireless(SW) provides a driver for ARM920, but it failed to install using 'wceload.exe'. The error was "Setup Failed" that I could see on the small LCD screen attached to the board. To install the driver I connect to the board via Telenet and CAB file is stored on SD card.
Am I right to think that the failure to install the driver could be related to the fact that the Win CE image has RAM-based Registry?
If SW does not provide a driver for the modem, could this mean that I have to develop my own driver? or is there a generic driver that I can use instead?
Will I have to create a new Win CE image for the board to support the modem, or is it possible to use code within the C# application to access it?
Any help will be very much appreciated!
Thanks,
Nick
There's no generic driver, no. Sierra modems generally have CE support (I'm not checked this model, but it's likely to work). What you need is:
A Driver DLL, build for ARM and for CE 6.0 or 7.0 (the CE 5.0 driver model differs, so a CE 5.0 driver probably won't work)
The registry entries the device.exe looks for when the device is enumerated
These sometime come in a CAB, sometimes not. Generally I prefer it when they don't but either will work.
If the CAB file fails to install, it's probably because it's marked for some other platform. I'd use something like WinZip or WinRAR to pull it apart, rename the DLL and extract the necessary reg entries (depends on the CAB format how easy/hard this will be).
Generally, though, you need to copy the driver DLL to the \Windows Folder, then apply the registry entries. Then when the device is plugged in, it will read the registry, which will point it to the DLL, which is then loaded. "Unidentified USB device" typically means the registry entries were not found.
This can all be done without rolling a new OS image, though sometimes a new image is simpler than doing the necessary copying at startup, especially if the device is plugged in at boot.

Connecting USB printer on Windows CE device

I have connected the USB printer for windows xp and windows 7 without printer driver, It connects properly, by using the win32 API we can open port and communicate with it.
Que- Now I wanted to connect USB printer to Win CE device, Win CE device gives error of install the Printer driver.
How I can handle the this to connect the printer and to communicate with it.
How windows dll will work on win CE.?
If the printer's usb support is a simple printer class, Microsoft's parallel cable replacement driver should work fine 'usbprn.dll'. This driver will instantiate a stream driver 'LPT1:' or 'LPTn:' which you can open with CreateFile() and use WriteFile() to send data to the printer.
You can get access to the simulated parallel states (paperout, etc) via simple IOCTL calls.
Some label printers (Zebra/Cognitive/etc) have their own proprietary control languages which you will need to get technical documentation for.
For other printers you have PCL or reverse engineer using open-source code.
Which specific printer are you trying to get working?
You cannot use the desktop driver in CE - you need a driver built specifically for CE.
First, try adding the USB PCL Printer driver from the Platform Builder catalog to your CE OS image and see if that works. It works on a fair number of printers.
If it doesn't work, then see if the printer OEM has a Windows CE specific driver.
You have to get a portable printer for it to work.Windows ce
is very limited on programs and usb drivers.What I think is that
it isn't worth buying a portable printer for the devie.What I
say that you wipe out the hard drive and install Win.xp.

Resources