Windows Mobile: Install FTDI_SER serial to USB adapter

Print This Post Print This Post

Sometime you may need additional serial connectors for your windows mobile device. Here is the odyssey I had with a FTDI adapter:

How I installed a FTDI serial to USB adapter within ITC CN50 running Windows Mobile 6.1.

Although the USB to Serial adapters with FTDI chips can be installed with drivers from FTDI, these will not work out of the box with WM6.1.

Initial Test with CN50

First I copied the Armv4 driver files ftdi_ser.dll and FTDIPORT.INF to \Windows on the device.

Inserted a Micro USB/B to USB A host connector (Digikey H11576-ND)

micro-usb-adapter

Inserted the USB2SER adapter “US232R-10 – Premium USB – RS232 Serial Converter Cable

US232R-10

The device prompts for the driver name and I typed “ftdi_ser.dll” although it should not do so, as I copied the files previously. See also

Then I started to try to communicate using COM10 (verified with registry). But there was no communication possible. The VCP test application did not list any port to open, so I entered COM10: (or SER0 for patched driver) but without success.

I also tested without success using a Loopback adapter as described here http://www.airborn.com.au/serial/rs232.html:

loopback-rs232

Using the VCP PC drivers for WinXP the serial adapter worked fine, so the hardwware is not faulty.

I also tested on CN3 (WM6.1) at the dock connector without the micro-USB cable. But this did also not work.

Finally I tested on a WinCE5 device (CK61) and this worked OK. So I compared the registry of WinCE5 and WM6.1 after driver install and adapter connection. I found the following (red) keys are missing on the WM6.1 device and so I added them manually:

REGEDIT4

;[HKEY_LOCAL_MACHINE\Drivers\Active\48]
;"FullName"="SER0"
;"Hnd"=dword:005A1A80
;"Key"="Drivers\\USB\\ClientDrivers\\FTDI_DEVICE"
;"Name"="SER0:"

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\FTDI_DEVICE\FTE06D03]
"ConfigData"=hex(3):01,04,3f,3f,10,27,88,13,c4,09,e2,04,71,02,38,41,9c,80,4e,c0,34,00,1a,00,0d,00,06,40,03,80,00,00,d0,80
"DeviceContext"=dword:00000000
"InitialIndex"=dword:00000000
"LatencyTimer"=dword:00000010

[HKEY_LOCAL_MACHINE\Drivers\USB\ClientDrivers\FTDI_DEVICE]
"ConfigData"=hex(3):01,04,3f,3f,10,27,88,13,c4,09,e2,04,71,02,38,41,9c,80,4e,c0,34,00,1a,00,0d,00,06,40,03,80,00,00,d0,80
"DeviceArrayIndex"=dword:00000000
"Dll"="ftdi_ser.dll"
"Index"=dword:00000000
"InitialIndex"=dword:00000000
"LatencyTimer"=dword:00000010
"Prefix"="SER"
"Version"="1.1.0.2"

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\1027_24577\Default\Default\FTDI_DEVICE]
"DLL"="ftdi_ser.dll"

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\1027_24592\Default\Default\FTDI_DEVICE]
"DLL"="ftdi_ser.dll"

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\1027_24593\Default\Default\FTDI_DEVICE]
"DLL"="ftdi_ser.dll"

[HKEY_LOCAL_MACHINE\Drivers\USB\LoadClients\Default\Default\255\FTDI_DEVICE]
"DLL"="ftdi_ser.dll"

Using this registry changes and after reinserting the adapter, I was able to communicate using the patched driver, where all COM was replaced with SER. Maybe the original driver will work too, it uses COM10 as port, where the patched driver uses SER0.

VCP test tool

Although the VCP Test application is not the best in regards of error checking (you can enter whatever you want for port and it always makes you think it was able to open the port), I include it here only for completeness.

Original VCP test tool: http://www.ftdichip.com/Projects/CodeExamples/VC++/VCPTest_vcpp.zip

Patched Driver: DOWNLOAD:FTDI (CE ARM) patched driver - Replaced all COM by SER (Hits: 1776, size: 30.77 KB)

Same driver as cab with COM instead of SER: DOWNLOAD:FTDI driver install cab using the standard COM prefix and not SER - (Hits: 706, size: 64.01 kB)

Here is the source code of the modded VCP test tool: DOWNLOAD:Modded VCP test tool - (Hits: 1055, size: 105.86 KB)

Additional links

Link to Installation guides: http://www.ftdichip.com/Documents/InstallGuides.htm

The CE installation guide: http://www.ftdichip.com/Documents/InstallGuides/Windows_CE_Installation_Guide.pdf

Update 23. march 2011: Anyone looking for a two port solution? Try the drivers provided by Handera (SD50).

18 Comments

  1. Jean Bernier says:

    I have exactly the same problem with a Windows Mobile 6.1 on e PSION equipment named Workabout Pro.
    But no way to Run your VCP test tool…….the COM is always COM10!!!!!
    I replace de “COM” name in the INT file but the active driver is always COM10…..
    Can you help me?

    Salut!
    Jean

  2. admin says:

    Hello Jean

    the com port index is evalauated automatically and depends on the already used ports. If you can’t use this COM10, you may switch to a patched driver (available also with SER instead of COM). But this will only work for you, if you can use SER as prefix in your application.

    regards

    Josef

  3. Tim Gorman says:

    Hello Josef

    I followed your instructions using an Intermec CN50 & FTDI US232R-100. The post-installation registry had the keys you highlighted in red, but was missing the following:
    ;[HKEY_LOCAL_MACHINE\Drivers\Active\48]
    ;”FullName”=”SER0″
    ;”Hnd”=dword:005A1A80
    ;”Key”=”Drivers\\USB\\ClientDrivers\\FTDI_DEVICE”
    ;”Name”=”SER0:”

    I added these entries to the registry. When these entries are missing do I need to make any other adjustments to the registry? My C# .NET application is unable to open port SER0 using the modified driver, and unable to open COM10 having installed the original driver.

    Any help will be greatly appreciated.

    Thanks, Tim

  4. admin says:

    Hello Tim

    first try the VCP test tool. It will list the communications port that are linked to ftdi_ser.dll. If it does not find a port, there is still something wrong with your installation.

    regards

    Josef

  5. Berry Bogdanski says:

    Ta for taking the time on this, I was looking everywhere for something similar, but this is just as helpful.

  6. Scott says:

    Hi Jean,

    Do you have a copy of the patched driver that will still use COMx and not SERx?

    I’m a linux guy trying to get something working on Win Mobile. The patched driver above seems like its working for my FTDI usb-> serial adapter on my pda – but the app i need to use doesn’t look for SERx – just COMx.

    Ta!

  7. admin says:

    Hi Scott

    just load the patched driver and with a hex editor change the SER_ to COM_…

    ftdi_ser.dll: SER_Close, SER:Deinit, SER_IOControl, SER_Init, SER_Open, SER_Powerup, SER_Read, SER_Seek and SER_Write

    and then do the same within the inf file.

    BTW: WinCE CabManager runs fine within Wine on my Ubuntu.

    or use the newly attached file FTDI_driver_COM.cab

  8. Metal Roofing says:

    you can always tell the quality of USB cables by looking at the thickness of the cable. thicker usb cables have higher quality ,’,

  9. Lothar says:

    @ Josef,
    I’m happy to read this post, while having the same problem with this FTDI adapter. But in my unit I have to store the driver and additional inf file manually into a folder otherwise than \Windows cause \Windows will be overwritten on every reboot. So I would ask you for the .dll and .inf not packed into cab.
    Lothar

  10. Lothar says:

    Hi,
    I’m a newbee to WindCE (don’t have Windows Mobile unit) and having the same problem with this FTDI USB2SER adapter. My unit is Car Entertainment System with Radio, Audio-Player, built GPS Navigation running all apps on WinCE6.0.
    So first I need the dll and the inf file native, not packed in cab. Second I don’t understand why do you changed the prefix COM to SER in the patched driver ?
    Hoping to get an answer soon …
    Lothar

  11. admin says:

    Hello Lothar

    as you see, your comments will reach the board, but I have to approve all first time poster (due to avoid spammers).

    Please go to http://www.ftdichip.com/Drivers/VCP.htm and download the driver from there (DLL file). Then go on and use the documentation and the inf posted here and at ftdichip.com to change it to your needs.

    Although windows ce 6 may support another driver load dir, this depends on the decision of the OEM. There may be a syscache or other named dir in persistent storage area to provide additional drivers. Sorry, but you have to find it yourself (search the registry of the device).

    regards

    Josef

  12. Serge says:

    Device on WinCE 5 (arm926) + USB-to-2COM (2 COM ports).
    Approached the driver FTDI_driver_COM.cab from this page.
    There is only one COM port.
    What can I do?

  13. admin says:

    I dont know your device and the description here is a dump of what we got and changed to get it working.

    I also got a working solution with two serial ports and only need to use Handera’s driver for the CN50 Vehicle dock. Possibly you have success with that too.

    Next time you should provide more details. There is much background information missing. How many ports are already occupied, what does the registry show about active drivers etc, etc….

  14. Peter says:

    Anyone have experience getting ActiveSync 4.5 to run using the US232R-100 USB-to-RS232 adapter cable?

    Connecting a PC (XP) to a WinCE5.0 device, I can get ASCII data xfer using HyperTerminal(PC,RS232 port COM1)-to-CEterminalprogram(USB host port) when the FTDI driver registry setting “InitialIndex” is set to COM0 (default) or another unused COM port – have verified ports 0,6,7.
    Other FTDI registry settings are default. PC-side ActiveSync’s Connection Settings enable “Allow connections to … COM1″
    Have added registry settings and ftdi_ser.dll to the BSP image, so they survive a reboot.

    However, have not been able to open an ActiveSync connection. When the adapter cable is attached to the CE box, the blue LED on the cable flashes a couple times and a pop-up shows “USB Serial Status. Connecting to host”. The PC side continues to show “Not connected”.

    Per another discussion thread, tried to configure a “direct connection” using “Network and Dial-up Connections” wizard on CE, but it will not show COM0,6,7 or in the dropdown, only “COM4:” and “Serial Cable on COM1:”, which are defined by other drivers on the device.

    Have tried adding and changing other FTDI registry values per the FTDI readme file:

    1) “ActiveSyncSetting”,0×00010001,256128
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    2)Persistant unplug/replug bit -
    <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    Appreciate any info useful to this setup, or suggestions for alternatives, other adapters, etc.

    Thanks.
    Peter

  15. Eli says:

    Hi,
    I’m using an UC232R-10 FTDI USB-serial adapter, trying to work with it under WinCE7.
    I installed the VCP x86 WINCE6 driver from the FTDI website, and then I have followed what is written in the codeplex FTDI website .
    I can see all the appropriate keys in the registry of my panel pc with WinCE7 (the device is associated with COM0), but it does not work. With a Visual Basic application I try to open COM0 but the application stops. If I connect the RX and TX pin of the DB9 to an oscilloscope I only see 0V, while, even without transmitting, I should read a certain voltage (in fact I can see this voltage on the tx pin of the COM1).
    Any idea?
    Thank you

    eli

  16. josef says:

    Hello Eli

    best is you contact the vendor of your special CE7 device for support.

    regards

    Josef

  17. Omer says:

    Hi,
    I need external CF card reader and SD card reader for CN51 via 851-093-201 desktop power adapter.
    is it possible?
    I want to try Digikey H11576-ND and USB CF-SD card reader. any body tried this.

    Best regards

    Omer

  18. josef says:

    Hi

    the CN50 supports USB OTG and USB host and client. I did not test this, better you ask about experiences at the intermec developer community: community.intermec.com.

    regards

    Josef

Leave a Reply