Windows Mobile: Install FTDI_SER serial to USB adapter

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: 312, size: 30.77 KB)

Here is the source code of the modded VCP test tool: DOWNLOAD:Modded VCP test tool - (Hits: 204, 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

admin posted at 2009-10-22 2,105 views | Category: Programming

5 Responses Leave a comment

  1. #1Jean Bernier @ 2010-4-12 15:30

    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 @ 2010-4-13 06:26

    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. #2Tim Gorman @ 2010-4-29 21:46

    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 @ 2010-5-4 18:55

    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. #3Berry Bogdanski @ 2010-5-8 01:36

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

Leave a Reply

(Ctrl + Enter)