After unpacking the device, the first thing I did was to turn it on: a simple, fingerfriendly interface was what I’ve first seen. Some basic functionality for opening a GPS application (not included), a photo viewer, a video player, music, settings dialogs, and a Bluetooth Interface.
It has no built in GPS Navigation software, but it seems to run well with iGO.
Installing a GPS Software on it is easy, the settings panel allows the user to chose the navigation software exe file, from the SDCard or the internal storage via a file browser.
This unit comes with a 400MHz Samsung processor S3C2440-40, that does a pretty good job in terms of speed.
Storage flash capacity: 1GB
OS: WINCE 5.0
Screen: 4.3″ (480×272)
Battery: 1100mAh Lithium
GPS Chipset: MSTAR SiRF Star III
Bluetooth Chipset: CSR BC03 chipset
Power consumption: 1.5W
A complete list of features is available here:
A few software tests
I’ve also tried to use the remote tools from Visual Studio 2005, and those also worked: Remote registry editor, Remote Process Viewer were able to connect to the GPS using “Windows CE 5.0 Device” Platform. Nice.
I had a simple Pocket PC exe file around, compiled for Pocket PC 2003. So I hit Control+F5 in Visual Studio 2005, and surprise, the file was uploaded to the GPS, and executed successfully! Great stuff. I’ve tried a windowed app next, and it failed. So this means I need a different SDK. I found the WinCE 5.0 SDK here. After I’ve installed it, I got the new platform available inside Visual Studio 2005. So I created a new Hello World simple application, setting the target to this new platform (STANDARDSDK_500).
You can download the source codes for this first project here:
Have a look at this result:
BTW, this device has a screen resolution of 480×272 pixels.
Some Bluetooth tests
Ok so this project is all about bluetooth. Here are some of the things I’ve checked on this GPS, and the results:
There is no BTD.DLL nor other BT – named dll in the Windows folder on this GPS
There is no HKLM\SOFTWARE\Microsoft\Bluetooth key!
Trying to use BthGetMode / BthSetMode from bthutil.lib failed, as this lib was not found inside the WCE SDK.
All these mean that using Bluetooth on this device will be a lot different then using the standard MS BT Stack. Bad news.
Ok, let’s Hack it!
This device offers the headset profile. You can use a Pocket PC with Bluetooth and Phone, to find the GPS as a Headset device.
So you can use it as a Bluetooth Handfree/Headset unit. It even claims to support Wireless Stereo profile, but I wasn’t able to use this one.
OK, so in a way or another this device has a lot of the Bluetooth functionality that I require.
Just to be clearly understood, what I need to do is to make this device capable of re-routing audio to an external carkit.
So it must be able to detect an external Bluetooth Device offering the Headset profile. while this device can itself work as a headset device,
it cannot (at least with the current software) detect external headsets.
For this task I need minimum control over the BT Module: Start/Stop the bluetooth hardware, search for devices in range,
and SCO connections for handling the audio data. Also an audio driver is required, to redirect all audio packets though the SCO connection.
While this is on, a new process appears in the process list MobileRemotor.exe . And one of it’s modules looks very interesting! It’s bthadapter.dll .
And the dll’s path is: \Mesada\$MSD$\App\BTHADAPTER.dll .
Almost certain, this dll contains lots of useful functions. The problem is that there is no Mesada folder on this GPS. Must be a hidden partition, as seen on other several devices (many from HTC, running Windows Mobile).
Ok, using Total Commander’s wincefs.wfx I can see the GPS folder structure below \\\WinCE Device\ . Changing this to \\\WinCE Device\Mesada and hitting enter, shows the hidden folder. Evrika!
And right there is the important bthadapter. To be able to copy it,
I need to kill the MobileRemotor.exe. Easy, from Remote process viewer. Now that I have this Dll, I can open it with IDA, here’s a list with the exports:
Ok this looks very good. The complete list is here
I’ll try to use them from an external app. BTW, here are some more interesting links for this:
SDK.zip (This seems to be a firmware update)
Next thing to do is to use bthadapter.dll for a simple Bluetooth app on this GPS Unit. But that’s another story.