NAVmoble - the pocket-sized ERP
Optimized for Microsoft Dynamics NAV and Windows Mobile powered devices

Friday, August 24, 2007

.NET Compact Framework chat on Skype

Neil will host a CF.NET chat on Skype the next Wednesday, Aug 29 2007 from 6:00 pm to 7:00pm (London)
CF.NET team members, MVPs and epxerts will hang out there. if you have device development questions this is the place to find the answers.

You may enter the chat at

Click here to update your Outlook calendar

The Bulgarian timeframe of the chat is from 20:00h to 21:00h

Check out the Neil's announcemnet for few more details.

Thursday, August 16, 2007

How to upgrade HTC P3600(a.k.a. Trinity) to Windows Mobile 6 and unlocking the GPS



I use HTC P3600 as a phone/PDA which is armed with Windows Mobile 5.0. The device has a camera, 3G,WiFi,Bluetooth and more. It does not have a GPS(officially).
I noticed recently that the guys from have published Windows Mobile 6 image for Trinity. It is important to note that HTC does not provide official upgrade for P3600.

So, I read some posts on the xda forums and finally managed to upgrade my device. I have now WM 6 on my P3600 and the most interesting part is that I have a GPS support.

I followed these steps:

1. Downloaded the WM6 image and ROMUpgrade utility on the PC:

Check out other available WM images here:

2. Downloaded the following tool(SSPL-TRIN.exe) on the PC.
It allows to bypass the CID and signature check.
Download link:
The following post gives more details:

3. Connected the device to PC
4. Copied SSPL-TRIN.exe on the device
5. Launched SSPL-TRIN.exe from the device.
The screen turned-off anf a strange colorful screen appeared(bootloader mode)

6. Launched the ROMUpdateUtility.exe from the PC
I performed the upgrade on Vista so I needed to download the ROMUpdateUtility for Vista:
I just needed to replace the extracted files from Step 1

7. Followed the steps provided by the ROMUpdateUtility

And ops! I have the WM6 on my device! The big surprise is that the device has now a GPS support!


  • it is a risky operation and you may render your device unusable. Do it on your own risk
  • do not launch any application on your PC during the upgrade process
  • do not disconnect/turnoff the device
  • do not restart/turn off PC
  • make sure you have device battery charged over 50%
  • disable PC hibernate/sleep features - or just move the mouse to prevent it
  • carefully read the redme.doc before starting the upgrade process

More info may be found on the following places:

Windows Mobile 6 Image for Trinity
SSPL-Trin - tool to bypass the CID/signature checking
ROMUpdateUtility for Vista
Trinity Wikki
Trinity and Windows Mobile 6 Forums

Monday, August 06, 2007

"How To" Series: Configuring Network Adapters with Compact Framework

There was a question in the forums, if there is a way to configure a network adapter automatically - without an user interaction. Using the UI, the user may select "My network card connects to" value for every adapter in the adapters list. It may be changed to point one of the available network destinations like "The Internet" , "Work", etc. So, is there a way to this automatically?

In short the answer is YES! There is a way. We may prepare an OMA Client Provisioning File and pass it to the appropriate configuration provider in Windows Mobile.
An appropriate configuration file would be like this:

<characteristic type="CM_NetEntries">
<characteristic type="Adapter Name">
<parm name="DestId" value="{A1182988-0D73-439e-87AD-2A5B369F808B}"/>
<parm name="Adapter" value="Qualified Name"/>

This file will bind a network adapter named "Adapter Name"
to the "Work" destination. We have to change the "Adapter Name" value with
the name of the adapter as it is seen in the adapters list. The "Qualified Name" should be changed with the fully qualified name of the adapter - it may be obtained by using the GetAdaptersAddresses routine

If we want to change the destination to "The Internet" , we have to supply different GUID for the DestId parameter. Following network identifiers as configured by default on Windows Mobile:

The Internet: {436EF144-B4FB-4863-A041-8F905A62C572}
Work: {A1182988-0D73-439e-87AD-2A5B369F808B}
WAP Network: {7022E968-5A97-4051-BC1C-C578E2FBA5D9}
Secure WAP Network:{F28D1F74-72BE-4394-A4A7-4E296219390C}

What we have to do in order to apply this configuration setting?
We have the following options:
1. Preparing the provisioning Xml file , save it as _setup.xml, and place it inside a CAB file. We may "execute" the file on the device, then. Check out this post for details about deploying provisioning files with CABs.
2. We may apply these settings through code(Compact Framework) by using the managed Microsoft.WindowsMobile.Configuration.ConfigurationManager class from Windows Mobile 5 SDK:

string configurationXml = "<wap-provisioningdoc><characteristic type=\"CM_NetEntries\">"+
"<characteristic type=\"Adapter Name\"><parm name=\"DestId\" "+
"value=\"{A1182988-0D73-439e-87AD-2A5B369F808B}\"/><parm name=\"Adapter\" value=\"Qualified Name\" /> "+
// Load XML
XmlDocument configurationXmlDoc = new XmlDocument();
// Send to Configuration Manager
ConfigurationManager.ProcessConfiguration(configurationXmlDoc, false);

Also the unmanaged version DMProcessConfigXML may be used
Check out this post for unmanaged wrapper of DMProcessConfigXML

CM_NetEntries Configuration Service Provider Examples for OMA Client Provisioning
Injecting Provisioning XML into a cab using VS 2005 on the Windows Mobile Blog
DMProcessConfigXML on the Marcus Perryman's WebLog
Windows Mobile Device Management for more configuration options