Using CellCore with Windows Embedded CE 6.0

CE 6.0 ships with a number of new/updated features - this includes tools integration into Visual Studio 2005 (which provides updates to MFC, ATL, STL, WTL, compilers, C++ language conformance etc...) - kernel changes to support more than 32 processes and more than 32MB Virtual Memory per process.

Beyond the tools and kernel changes there are also some new and interesting technologies to work with, these include the new Windows Network Projector (more on this later), CellCore, and others.

CellCore is an interesting addition to CE 6.0, providing support for SMS messaging and internet connectivity for embedded devices over the cellular network - CE 6.0 ships with a sample RIL driver for Enfora devices, for the recent CE 6.0 Electronic Picture Frame launch demo I used an Enfora GSM/GPRS GSM1218 device connected to an ICOP eBox 2300 over a serial connection.

There are two steps needed to add CellCore/RIL driver support to your embedded operating system design - the first is to search the CE 6.0 catalog for "CellCore" (see image below).


You hae the option of adding just the features you need (such as SMS support) or all features (All Modules) - this adds the components at the API level but doesn't add the Enfora sample RIL driver - this is added through a custom environment variable "IMGENFORA=1" set through the OSDesign Properties dialog.

Here's an extract from C:\WINCE600\PLATFORM\DEVICEEMULATOR\FILES\platform.bib

    rilgsm.dll          $(_FLATRELEASEDIR)\rilenfora.dll          NK  SHK

Setting the IMGENFORA environment variable will only work for the CEPC and Device Emulator platforms - the Enfora drivers are located in the CEPC and Device Emulator Platform folders - if you want to get the Enfora RIL driver working with another platform then you need to copy the Enfora driver source over to your platform folder - for example, copying the CEPC Enfora driver from \wince600\platform\CEPC\SRC\DRIVERS\RILPDD over to my ICOP eBox 2300 platform folder \Wince600\Platform\ICOP_2300\SRC\DRIVERS\RILPDD gets the files in the right place, you also have to modify some additional files to get this to work.

First, modify the DIRS file for your DRIVERS folder so that the rilpdd folder gets built - like so...

rilpdd \

Next step is to copy the IMGENFORA block from the CEPC Platform.BIB and Platform.REG files - these files are located in the C:\WINCE600\PLATFORM\CEPC\FILES folder - you would need to add the IMGENFORA blocks into your platforms BIB and REG files.

At this point you should be able to set the IMGENFORA=1 environment variable for your OSDesign/Platform and build your operating system design, which can then take advantage of the Enfora RIL/GSM/GPRS device.

Note that the Enfora device "assumes" that it's connected to COM2 of your embedded device, which interestingly can be mapped for the Device Emulator to use a physical COM port of your desktop PC.

CellCore support has been added to CE 6.0 for machine-to-machine communication either using SMS messages or connecting over the cellular network to the internet and calling XML Web Services or other technologies to communicate back to the enterprise (or to other cellular connected devices) - You could imagine vending machines that report back to a warehouse when they need to be refilled - combine this with "Smart" GPS navigation and you can see that cost savings could be made by reducing the number of miles needed for a delivery van each day by only restocking the vending machines that are running low and being smart about the route taken, reducing miles, fuel etc...

- Mike

Comments (10)

  1. F Fung says:

    What is cellcore, a small processor made specially for cell phone? Where can I find the definition?

  2. mikehall says:

    you can find a description of CellCore here on MSDN –

    You can think of CellCore as being an abstraction layer between applications that need to send SMS messages or connect to the internet (or make voice calls) and the underlying cellular hardware – a Cellular modem hardware manufacturer would write a RIL Driver that provides the interfaces to the cellular hardware (AT commands or whatever) that plugs into a Windows CE o/s image – applications don’t need to care about the underlying hardware but just call the appropriate APIs.

    – Mike

  3. bricroft says:


    I see from the following MSDN article that only the Enfora and TTPCom modems currently have RIL driver support in CE 6.0.

    The TTPCom modem is not commercially available, as stated in the above article.  This leaves only the Enfora modem as an option for using the CellCore with a commercially available device.

    Do you know of future plans from Microsoft or third parties to support other modems?  For example, I am wondering if there will there be RIL drivers for modems from companies like Falcom, MultiTech, and Sierra Wireless:

    I am also interested in the embedded module format offered from MultiTech, Falcom, and others.

    In order for CellCore to be useful, RIL driver support needs to be expanded to work with additional products.  Can you comment on how well the CellCore and RIL CE framework has been received from modem manufacturers?


    Brian Crofts

    QSI Corporation

  4. mikehall says:

    TTPCom and Enfora are the two drivers that ship with the CE 6.0 product – I’m not aware of other existing RIL drivers for CE 6.0, but would obviously like to see more drivers come online. It may be good to ping Falcom, MultiTech and Sierra Wireless to see if they have any plans to support RIL drivers for CE 6.0 in the future.

    – Mike

  5. Eric Hsu says:


    Does CE 6.0 cellcore include the SMS UI ,or the OEM still need development its own app? In WM 5.0, it is bundle with outlook to send the SMS. In CE 6.0 I use device emulator, set IMGENFORA=1 and select the cellcore catalog. I run the image can’t find the UI for SMS.


    Eric Hsu


  6. mikehall says:

    CE 6.0 doesn’t ship with SMS UI – this is something you would need to develop.

    – Mike

  7. Leon says:

    Hi, mikehall.

    Is there any example showing how to develop on CellCore, such as an application of voice calling on CE 6.0?

  8. Jimmy says:

    According to

    It mentioned that:

    Cellcore or its sub-components could be included in the Core runtime provided that the Embedded System:

    (a) must be limited to data use only, and

    (b) may not be used to make voice calls over a cellular network. This limitation includes any indirect use of the voice capabilities of cellular networks via peripheral devices to make the voice call and/or the voice call connection.

    If it’s true, I think it’s a big big barrier for those who require voice call on Windows CE 6 platform.

  9. mikehall says:

    Cellcore is licensed at two levels, data is in core and voice is in professional.

    – Mike

  10. Jimmy says:

    Dear Mike,

    Thanks for your answer.

    Best Regards,


Skip to main content