Installing NetDCU as virtual COM Port on the PC (USB)

  • How to communicate with the NetDCU (PicoMOD or PicoCOM as well) as a virtual COM port from
    your desktop PC over USB?


    You can do that with the Windows CE Serial USB Function Driver (called serialusbfn.dll).


    #1 Installing the Windows CE component:



    #2 Installing the desktop PC component (Windows XP):


    You need the installation *.inf file and the usbser.sys file located together in the same directory. When you connect the NetDCU for the first time (with the modified registry from above) to your development pc you will be asked to install a driver. Select the concernig directory where the *.inf file and the usbser.sys is located. After the installation you will see the NetDCU as a virtual COM port in the device manager of your development pc (Figure 1).


    The *.inf file content:


    #3 Communicate with NDCUCFG.EXE via the virtual COM port.


    #3.1 Setup NDCUCFG.EXE to start on COM port of the USBSER_Class (HKLM\System\NDCUCFG => set value "Port" to "COM9:")
    #3.2 Reboot the NetDCU.
    #3.3 Setup PC Connection from Control Panel => PC Connection: See Figure 2. Press OK.
    #3.4 Connect your PC to the USB device port using a USB cable. You will see NetDCU as COM port in your device manager (Figure 1).
    #3.5 Open DCUTerm.exe (Terminalprogram) and open respective COM port.
    #3.6 Start NDCUCFG.EXE on the NetDCU (from commandline) like that: "ndcucfg x".


    DKuhne.

  • Hello,
    WCE 500 does not support USBSER_Class. We upgrade the drivers - please use attached drivers and register settings.

    Files

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • I hope you can answer my a simple question:
    Why do we have to "install" the virtual serial port on the desktop pc? I think you don't have to install a driver for USB-Sticks or are they already included in the desktops-Windows?

  • USB is a really universal connection system. You can virtually connect anything to everything. You will need a driver for each and every connection that you want to build. Some of the drivers are in fact already included in windows. This is true for the standard mass storage media like USB sticks and USB hard disks. However if you have some special device there (e.g. encrypted media), then you might need to install special USB stick drivers even on windows and the standard ones don't work anymore.


    The serial connection over USB is not a standard connection and therefore no driver is included with windows. This means you have to install a driver if you want to use such a connection.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • I try to use the USB Port of our PicoMOD6 as a virtual serial port.


    I have "installed" the serial port and when I look in the device manager, I find the virtual COM port. I also have the serial port on our PicoMOD6. I can open the serial port on the PicoMOD but as soon as I try to open the port from the PC, I get the following Exception:


    "Das Zeitlimit für die Semaphore wurde erreicht".


    We need to use this COM Port functionality so the problem is very urgent...

  • Hello,
    thereby an extended sample which shows how to install virtual COM port on a CE6 device and connect with XP or W7 host. Read attached install.txt for details.
    usbser.sys and usbser.inf for XP and W7 also includeed into the attachment.

    Files

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello,
    I want to establish a virtual COM connection to PicoCOMA5 (Win CE6). I use the latest VirtualCOMPort.zip that has been posted here (1st march 2013).
    The driver on the host (Win7 - 32 bit) seems to work correctly, as it is shown in the device manager. I've adapted the settings in the registry according the description.
    But when I want to connect to the device, I get the same error as Festus (posted on 4th may 2011): error 121 "The semaphore timeout period has expired.". Sometimes I retrieve error 31 "A device attached to the system is not functioning.".
    What could I do?

  • Hello,


    on A5 boards COM9: seems to be occupied by an other module (ndcucfg -> CreateFile COM9: failed). So please use COM7:. Nevertheless Error 121 persists, but it is not an real error because the VPC is working after confirm the massage box. Does the "error" sill occur in your own applcation or only by using DCUTerm?

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello,


    thanks for this inforamtion.


    Quote

    The error message 121 is still existing,...

    Also in your own application? I assumed it is a bug from DCUTerm.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • The communication via Tera Term works fine and stable (as I've posted on 20th of March).


    But we can't establish the connection with further programs, e.g. Atmel Flip or Flachmann & Heggelbacher Docklight. As these are not our programs, I don't have sources and can't modify the COM detection.


    When I use DCUTerm, I see the errors 121 and 31 (see my post 7th of March). Thus I guess, maybe it could be the same reason.


    I suppose, that it's an error in the driver. Finding a solution for that is very urgent for us.

  • Hello,


    Quote

    When I use DCUTerm, I see the errors 121 and 31 (see my post 7th of March). Thus I guess, maybe it could be the same reason

    You are right. We invastigate and see that these errors *not* related to any termimal program. We found a bug in the driver and resolved it. The new driver will be included in further images (here we talk about FSVybrid > V1.6).

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Hello,


    we use the Virtual COM for several purposes on PicoCOMA5 (WCE 6.0 R3) and it's working fine.
    But I have the problem, that Windows automatically installs a wrong driver (called "Palm Treo Modem") when the PicoCOMA5 is connected for the first time to a PC.
    Then I have to unistall the "Palm Treo Modem" and manually install the correct driver (usbser). This is ok for us, but not for our customers.
    Is there any solution? Could I adapt the registry of PicoCOMA5 to prevent installing "Palm Treo Modem"?

  • Hello,


    strange because vendor id and product id of this device are complete different to PicoCOMs default. Or do you use/install palm moden driver with same IDs before? Assume you have no own vendor id which you can put into PicoCOMs registry?


    Quote

    But I have the problem, that Windows automatically installs a wrong driver (called "Palm Treo Modem") when the PicoCOMA5 is connected for the first time to a PC.

    Means usbser.sys and usbser.inf are available but you have to install them manually? Can you compare it with the *.inf of the palm treo moden?

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • We have never used Palm Treo Modem before.


    I've compared the VendorID and ProductID between PicoCOMA5 registry (HKEY_LM\Drivers\USB\FunctionDrivers\FSUSBSER_Class) and the .inf file of usbser and Palm Treo Modem:

    PicoCOMA5 registry usbser .inf Treo Modem .inf
    VID 0x045E (1118) 0x045E (1118) 0x045E (1118)
    PID 0x0079 (121) 0x0079 (121) 0x0079 (121)


    VID and PID are all the same. That's maybe why Palm Treo Modem is installed automatically. Our company doesn't have a VID. Could we take the VID and PID of F&S? Which values?


    Yes, usbser.sys and usbser.inf are available. But if I connect a PicoCOMA5 to a PC for the first time, then automatically Palm Treo Modem is installed (when the PC is connected to internet).

  • ; Copyright (c) Palm Inc. All rights reserved.
    ;
    ; Treo Modem Link Setup
    ; =================================================
    ;




    [Version]
    LayoutFile=layout.inf
    Signature=$CHICAGO$
    Class=Modem
    Provider=%PROVIDER%
    CLASSGUID={4D36E96D-E325-11CE-BFC1-08002BE10318}
    DriverVer=12/18/2006,2.1.0000.0
    CatalogFile=PalmTreoModem.cat


    [DestinationDirs]
    UsbModemFiles=12


    [Manufacturer]
    %MANUFACTURER_PALM%=Palm_DeviceList,NTx86,NTamd64


    [ControlFlags]
    ExcludeFromSelect=*


    [Palm_DeviceList.NTx86]
    %PALM_DEVICES_0001% = Palm_DeviceList.Install, USB\VID_0BB4&PID_00CF ; <- 700w
    %PALM_DEVICES_0002% = Palm_DeviceList.Install, USB\VID_045E&PID_0079 ; <- 750w
    %PALM_RESERVED_DEVICES_0100% = Palm_DeviceList.Install, USB\VID_0830&&PID_0100
    %PALM_RESERVED_DEVICES_0101% = Palm_DeviceList.Install, USB\VID_0830&&PID_0101
    %PALM_RESERVED_DEVICES_0102% = Palm_DeviceList.Install, USB\VID_0830&&PID_0102
    %PALM_RESERVED_DEVICES_0103% = Palm_DeviceList.Install, USB\VID_0830&&PID_0103
    %PALM_RESERVED_DEVICES_0104% = Palm_DeviceList.Install, USB\VID_0830&&PID_0104
    %PALM_RESERVED_DEVICES_0105% = Palm_DeviceList.Install, USB\VID_0830&&PID_0105
    %PALM_RESERVED_DEVICES_0106% = Palm_DeviceList.Install, USB\VID_0830&&PID_0106
    %PALM_RESERVED_DEVICES_0107% = Palm_DeviceList.Install, USB\VID_0830&&PID_0107
    %PALM_RESERVED_DEVICES_0108% = Palm_DeviceList.Install, USB\VID_0830&&PID_0108
    %PALM_RESERVED_DEVICES_0109% = Palm_DeviceList.Install, USB\VID_0830&&PID_0109
    %PALM_RESERVED_DEVICES_0110% = Palm_DeviceList.Install, USB\VID_0830&&PID_0110


    [Palm_DeviceList.NTamd64]
    %PALM_DEVICES_0001% = Palm_DeviceList.Install, USB\VID_0BB4&PID_00CF ; <- 700w
    %PALM_DEVICES_0002% = Palm_DeviceList.Install, USB\VID_045E&PID_0079 ; <- 750w
    %PALM_RESERVED_DEVICES_0100% = Palm_DeviceList.Install, USB\VID_0830&&PID_0100
    %PALM_RESERVED_DEVICES_0101% = Palm_DeviceList.Install, USB\VID_0830&&PID_0101
    %PALM_RESERVED_DEVICES_0102% = Palm_DeviceList.Install, USB\VID_0830&&PID_0102
    %PALM_RESERVED_DEVICES_0103% = Palm_DeviceList.Install, USB\VID_0830&&PID_0103
    %PALM_RESERVED_DEVICES_0104% = Palm_DeviceList.Install, USB\VID_0830&&PID_0104
    %PALM_RESERVED_DEVICES_0105% = Palm_DeviceList.Install, USB\VID_0830&&PID_0105
    %PALM_RESERVED_DEVICES_0106% = Palm_DeviceList.Install, USB\VID_0830&&PID_0106
    %PALM_RESERVED_DEVICES_0107% = Palm_DeviceList.Install, USB\VID_0830&&PID_0107
    %PALM_RESERVED_DEVICES_0108% = Palm_DeviceList.Install, USB\VID_0830&&PID_0108
    %PALM_RESERVED_DEVICES_0109% = Palm_DeviceList.Install, USB\VID_0830&&PID_0109
    %PALM_RESERVED_DEVICES_0110% = Palm_DeviceList.Install, USB\VID_0830&&PID_0110



    [Palm_DeviceList]
    %PALM_DEVICES_0001% = Palm_DeviceList.Install, USB\VID_0BB4&PID_00CF ; <- 700w
    %PALM_DEVICES_0002% = Palm_DeviceList.Install, USB\VID_045E&PID_0079 ; <- 750w
    %PALM_RESERVED_DEVICES_0100% = Palm_DeviceList.Install, USB\VID_0830&&PID_0100
    %PALM_RESERVED_DEVICES_0101% = Palm_DeviceList.Install, USB\VID_0830&&PID_0101
    %PALM_RESERVED_DEVICES_0102% = Palm_DeviceList.Install, USB\VID_0830&&PID_0102
    %PALM_RESERVED_DEVICES_0103% = Palm_DeviceList.Install, USB\VID_0830&&PID_0103
    %PALM_RESERVED_DEVICES_0104% = Palm_DeviceList.Install, USB\VID_0830&&PID_0104
    %PALM_RESERVED_DEVICES_0105% = Palm_DeviceList.Install, USB\VID_0830&&PID_0105
    %PALM_RESERVED_DEVICES_0106% = Palm_DeviceList.Install, USB\VID_0830&&PID_0106
    %PALM_RESERVED_DEVICES_0107% = Palm_DeviceList.Install, USB\VID_0830&&PID_0107
    %PALM_RESERVED_DEVICES_0108% = Palm_DeviceList.Install, USB\VID_0830&&PID_0108
    %PALM_RESERVED_DEVICES_0109% = Palm_DeviceList.Install, USB\VID_0830&&PID_0109
    %PALM_RESERVED_DEVICES_0110% = Palm_DeviceList.Install, USB\VID_0830&&PID_0110



    [Palm_DeviceList.Install.NT]
    include=mdmcpq.inf
    CopyFiles = FakeModemCopyFileSection
    AddReg = All, MfgAddReg, Palm_DeviceList.Install.AddReg, EXTERNAL


    [Palm_DeviceList.Install.NT.Services]
    include=mdmcpq.inf
    AddService=usbser, 0x00000000, LowerFilter_Service_Inst


    [Palm_DeviceList.Install.NT.HW]
    include-mdmcpq.inf
    AddReg=LowerFilterAddReg



    ;
    ; Explicitly states the usbser.sys should not be taken from the CD/Disk
    ;
    [SourceDisksNames]
    ;
    ; no media
    ;


    [SourceDisksFiles]
    ;
    ; no files
    ;



    [All]
    HKR,,FriendlyDriver,0,Unimodem.vxd
    HKR,,DevLoader,0,*vcomm
    HKR,,ConfigDialog,0,modemui.dll
    HKR,,EnumPropPages,0,modemui.dll,EnumPropPages
    HKR,,PortSubClass,1,02
    HKR, Init, 1,, "AT&FE0&D2&C1V1S0=0<cr>"
    HKR, Responses, "<cr><lf>OK<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>ERROR<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00


    [Palm_DeviceList.Install.AddReg]
    HKR,, Properties, 1, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,C2,01,00, 00,00,00,00
    HKLM,SYSTEM\CurrentControlSet\Services\Tcpip\Parameters,"TcpWindowSize",0x00010001,0xFFFE



    [EXTERNAL]
    HKR,, DeviceType, 1, 01


    [MfgAddReg]
    HKR,, InactivityScale, 1, 3c,00,00,00
    HKR, Init, 1,, "AT<cr>"
    HKR, Init, 2,, "AT&F<cr>"
    HKR, Init, 3,, "ATE0V1&D2&C1S0=0<cr>"
    HKR, Monitor, 1,, "ATS0=0<cr>"
    HKR, Monitor, 2,, "None"
    HKR, Answer, 1,, "ATA<cr>"
    HKR, Hangup, 1,, "ATH<cr>"
    HKR,, Reset,, "ATZ<cr>"
    HKR, Settings, Prefix,, "AT"
    HKR, Settings, Terminator,, "<cr>"
    HKR, Settings, DialPrefix,, "D"
    HKR, Settings, DialSuffix,0, ";"
    HKR, Settings, Pulse,, "P"
    HKR, Settings, Tone,, "T"


    HKR, Responses, "0<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00 ; OK
    HKR, Responses, "2<cr><lf>", 1, 08, 00, 00,00,00,00, 00,00,00,00 ; RING
    HKR, Responses, "3<cr><lf>", 1, 04, 00, 00,00,00,00, 00,00,00,00 ; NO CARRIER
    HKR, Responses, "4<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00 ; ERROR
    HKR, Responses, "6<cr><lf>", 1, 05, 00, 00,00,00,00, 00,00,00,00 ; NO DIALTONE
    HKR, Responses, "7<cr><lf>", 1, 06, 00, 00,00,00,00, 00,00,00,00 ; BUSY
    HKR, Responses, "8<cr><lf>", 1, 07, 00, 00,00,00,00, 00,00,00,00 ; NO ANSWER
    HKR, Responses, "<cr>", 1, 01, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<lf>", 1, 01, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>OK<cr><lf>", 1, 00, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>RING<cr><lf>", 1, 08, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>NO CARRIER<cr><lf>", 1, 04, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>ERROR<cr><lf>", 1, 03, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>NO DIALTONE<cr><lf>", 1, 05, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>BUSY<cr><lf>", 1, 06, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>NO ANSWER<cr><lf>", 1, 07, 00, 00,00,00,00, 00,00,00,00
    HKR, Responses, "<cr><lf>CONNECT<cr><lf>", 1, 02, 00, 00,00,00,00, 00,00,00,00



    [Strings]



    ; Non-localized section
    PROVIDER = "Palm"


    MANUFACTURER_PALM = "Palm"
    PALM_DEVICES_0001 = "Palm Treo Modem"
    PALM_DEVICES_0002 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0100 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0101 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0102 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0103 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0104 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0105 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0106 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0107 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0108 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0109 = "Palm Treo Modem"
    PALM_RESERVED_DEVICES_0110 = "Palm Treo Modem"
    USBFilterString = "USB Modem Driver"


    ;
    ; add other strings here
    ;

  • Hello,

    Quote

    Could we take the VID and PID of F&S? Which values?

    No, we are not registerd. Because this makes no sense for us. Enduser have to do this, we only a part of a complex device.

    Quote

    I've compared the VendorID and ProductID between PicoCOMA5 registry VID and PID are all the same.

    Ok:(, they also use the "default", but i can not recommend you to use an other ID except your own:).

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.