Archive for November, 2008

TomTom & Build In GPS on Phones

Saturday, November 8th, 2008

Ok this basically follows on from the previous post. I did actually get the phone configured correctly. The only problem was that it was crashing a lot. I mean, I’d go to pick up a call and it would crash. I’d be responding to an SMS and it would crash. I’d be *on* the phone and it would crash (yeah, it was fun explaining that to the client, especially how WM5 takes 60 seconds to reboot).

Anyway I was running around the system looking for settings to change. Things to turn off. Things to minimize what could be causing the crashes. I bumped into an option in the settings in the shape of a green tree. There was no title on it (it was squares, meaning non-unicode text), so I figured it must have been installed by the OEM, not by Microsoft. I opened it up, and all the text there was non-unicode too, except for the numbers 1234. Well, it looked like a confirmation code of some sort. I thought it might let me into the developer section, or testing section, or something-that-would-help section. I wrote the numbers in the box and hit the grey button (which was also unlabeled). The phone restarted. Woohoo, progress? Well, the phone started and it had factory reset the whole thing. Contacts: Gone. Calendar: Gone. Installed applications: all gone. Everything. Gone. On the upside, the little green tree now had a title: “Master Clear”. Well. That explains it.

Anyway, I reinstalled all the applications and themes, and applied the appropriate reg edit fixes. So far so good. I went to use TomTom for the GPS and it asked me what COM port the device was on. I couldn’t remember. TomTom is good in the fact that it scans the COM ports on the system to see if it gets a response from any ports. That means when it gives you options of the ports, you are only seeing ports that have devices on them. I have 3 options.

It turns out, one of those ports was from the Microsoft GPS intermidiate driver: Configured through Settings > GPS. I tried playing around with that and couldn’t get TomTom to talk to the GPS through it. I then tried TomTom on the other 2 serial ports, trying all baud rates, but TomTom kept giving me “No GPS device”.

Well I delved into the registry editor again to see if the registry held any information about attached hardware (similar to the device manager in Windows 98 / XP). It does. Local Machine > Hardware > Active. It showed me all the active hardware interfaces and the drivers used for them. I found out that one of the COM ports was an infrared port. Well, that explains why that didn’t work. The other COM port was just labeled as “Serial” meaning that it doesn’t know what the device on the other end is, but it talks normal serial port speak. I guess that was the GPS. Problem is, why didn’t it work in TomTom?

It took me a long time and lots of Google searching to uncover that the option in the Access tab of the GPS setting where it says “Automatically manage GPS data” actually does something. I’m still not 100% sure of what it does, but it does something. If I toggle it, it makes the GPS work in TomTom (when I have the right device & baud rate). If I change the device / baud rate in TomTom, it will say no device again, even if the settigs are correct. I have to toggle the “Automatically manage GPS data” every time I change the device settings. Thankfully, it doesn’t need to be done when restarting the application or device. It does work.

WM5: Not Showing Contact Names For Messages

Saturday, November 8th, 2008

I used to be using an O2 Atom Exec phone. I’ve been wanting a GPS for a long time, and I discovered that it would only cost about twice the price of the GPS to buy a whole new phone (bringing it in from China). I also got myself speakerphone and hardware keypad facilities. Anyway, both phones use Windows Mobile 5, so I didn’t think there would be any problems with the software: Just sync my new phone to my computer and it should have all the contact and calendar information on it as the old one.

Well I encountered a *really* annoying problem. The new phone won’t display caller names for messages in the inbox. When I send to people, that is fine. When I receive messages from from people though, it only shows the phone number, not the name. When people call me, it does display the name. Huh?? It looks like with SMS, the international number is sent through (country code)(number). For a phone call, what appears on the screen is relative to the area the phone call comes from. So if someone in my country calls me while I’m in the same country, it doesn’t show the country code.

Now some specific examples. I’m in Australia. Country code is +61. If we have a number 0434 353 899, then the international version of that number is +61 434 353 899. Notice that the 0 disappears. The 0 is used when you are in the same country. What this means is that although we use 10 digits for a mobile phone number in Australia, only 9 of them are actual caller ID digits. You take the international representation of the number, remove the country code and count the remaining digits: 9.

Now back to WM5. There is a setting in the registry that tells Windows how many digits are used to represent the caller ID i.e. how many digits are used to represent the unique phone number. We know the answer is 9 for Australia (for mobiles). If we tell it to use 10, then it will constantly be looking to match 1 434 353 899 to our contact list, rather than 434 353 899. Now if I have 0434 353 899 in my contact list, it will match 434 353 899, and it will display the caller number. When someone calls me and the number comes through as 0434 353 899, it will still grab 9 digits starting from the right hand side, and it will still match.

How to modify the setting in Windows is not as simple as I would like it to be. Really, these are regional settings (vary from country to country with the phone number digits) and so should be user-configurable. What you actually need to do though is go into the registry and hack the value manually. So you’ll need yourself a registry editor. I used PHM RegEdit, which is a free registry editor for the Windows Mobile. You’ll also need ActiveSync, or some other way of transferring files to your Windows Mobile device (obviously).

Note that the registry editor comes with a lot of CAB files. My phone uses a TI OMAP processor, which uses the ARM instructions. If you have a MIPS based processor, obviously you’ll need one of those CABs. I originally installed the strgr version, which succeeded, but didn’t run properly. When you run the application, you should have plus signs (+) next to the 3 boxes that come up. It should look basically like it does on the PHM RegEdit download site. If it doesn’t, then you probably need to install one of the other CAB files. I tried all of the ARM ones until I found one that worked. It didn’t harm my machine by installing the others, in fact some did not install.

Once the registry editor is installed, you need to find the right key. If you expand the trees with the + sign to navigate to the following location:

Hkey_Current _User\ControlPanel\Phone\

And click on the CallIDMatch entry. You will then be able to edit the numerical value that it has there: Use the up and down arrows to increase or decrease it. Set it to the desired value. Click Ok.

Now reboot the phone. Messages that you receive from now will resolve correctly to the contact name. Note that messages that are already received will probably not be decoded: For me, the messages stored on my SIM were decoded to the persons name, but the phone messages were not.