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

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.

Related

CDC class vid:pid to use for my STM32F3 based equipment

I am plannig to use usb connection to let PC communicate with my equipment based on STM32F373VC.
I tried the CDC class using the example in STM32CubeF3 V1.9.0 by removing the uart peripheral management.
PC detects a usb device with vid:pid 0483:5740. Linux automatically recognizes CDC class (STMicroelectronics STM32F407), loads the cdc_acm module, and the ttyACM0 VCP is created. I don't know about Windows, but reading the readme of the example it seems that a driver should be installed.
I have some questions:
Can I use VID:PID 0483:5740 for my product?
Does the various versions of Windows automatically recognize the device (and associate it with the CDC driver) or is it really necessary to install a driver?
If I can't use these VID:PID, can I ask ST for a PID assigned to me for small productions (as other silicon vendors do)?
Could ST assign me a PID that the various versions of Windows, Linux and Mac automatically recognize as CDCs without needing to install drivers or configure anything?
If not, do VID:PID pairs exist that are automatically recognized by the various versions of Windows, Linux and Mac as CDC class without needing to install drivers or configure and that I can legally use for my small production?
About drivers recognizing your device:
If your device is of class CDC, driver should be able to be loaded no matter what VID:PID is used (as long as selected VID:PID is not assigned to other device that has device specific driver). For Windows please refer to this document.
You should be able to test Linux CDC class driver by altering device descriptor in your device library code (which should be possible, if I correctly understand available ST documentation).
About having your own VID:PID:
There is some thread on github about this here. It should cover all possible options including the ones you asked about.

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

Wince Device Driver

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?

Windows CE 6.0 - USB Drivers at boot up time

I built a new Windows CE image and placed two USB drivers. One for the USB printer and the second for some special device with digital and analog I/O ports.
I have one problem that came out with the drivers while the operating system boots up.
Every time the image boots up it asks to enter the driver's name. (The message is "Unidentified USB Device" Enter the name of the USB device driver) Is there a workaround for this problem ? What does I have to put into a registry?
I did not check if the driver is working after that because of my second problem
with the SQL CE 3.5 in my application.
The similar problem is happening if I not add a driver for example the Audio subsystem.
The OS at boot up scans the devices and finds some new hardware asking to fill the name for the driver.
It is simple to correct the second situation. I only have to check the item in the catalog view and rebuild the image. On behind the ragistry is filled with correct parameters but what am I supposed to do with custom drivers ?
The "Unidentified Device" dialog happens when the USB node is queried and no macthing driver in the OS is found. Which device, specifically, is causing that? You mention both a printer and an I/O device - knowing which device is causing the error will help narrow it down.
When you "added the drivers" to the OS, did you just add the driver binaries, or did you also add the relevant registry entries in the drivers section? Those entries depend on the specific driver, so I can't tell you exactly which keys and values you need.

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