# Notes about Programs for PNA

When I created the new category for the programs I found for Mio C230, I thought you might be able to run these programs on other Mio GPSs or other Windows CE based Personal Navigation Assistant. I decided to name this category Programs for PNA.

These programs are tested using Mio C230 which runs on Windows CE Core 5.0 with ARM CPU. If you found that the program is working for your device, please drop us a note so other people knows about it.

# Increasing Storage Memory for Mio C230

Mio C230 comes with 64 MB RAM and by default only 512KB is reserved for storage memory. The storage memory is for system files, it’s kinda like the system drive for your computer. Because of the limitation, you often encounter error messages when you tried to copy stuff to the Windows directory.

You can adjust it by using the Control Panel. Open up FileMan CE and browse to the root directory. Double click on Control Panel.lnk to invoke Control Panel. Scroll down and double click on System. Click on the Memory tab and adjust the storage memory.

Note that you have to do this every time you hard reboot your unit. I’ll try to see if there is a registry trick to adjust the Storage Memory by script.

# Getting Programs for Mio C230

Now that you have unlocked your Mio C230, you are eager to try out various PocketPC or Windows CE applications. But where to start? There are a lot of PocketPC freeware sites. I like this particular site very much because it has ratings for most of the freeware you can download from the site.

http://pocketpcfreewares.com/en/index.php

You don’t have to waste your time on those lowly rated software. Most PocketPC software come in three formats.

• Stand alone executable
• Installer package
• CAB file

I will start with stand alone executable. When I find a program I want to try, I usually copy the executable to Script directory and use FileMan CE to invoke it. If it runs, that’s great. If it doesn’t run, I have no clue what to try. I didn’t know what are the required dlls for it.

However, I just found out a way to determine the required dlls. It’s actually quite simple and I am going to share that “secret”with you. What you need is a program that can open binary file in hex format. If you are curious about what I use, I use TextPad. Open the executable using the hex editor. Search the executable for the text string “dll” (without the quote). Here is a screenshot.

We now know that this application requires COREDLL.dll and commctrl.dll to run. Please note that even though you know the required dlls. It’s still possible the application doesn’t run with dlls. I think the reason might be the program is not compatible with Windows CE 5 or the dlls version is not correct. One dll that most applications need is AYGSHELL.DLL. There are different versions of that dll. My release 4 includes one that’s newer than the one from my earlier releases. You can get the older AYGSHELL.DLL from my earlier releases. Some applications run well with the newer AYGSHELL.DLL, some run well with the older one. You’ll need to experiment it to determine what’s better for an application.

[Update:] One reader has pointed out there is a better way to identify the DLLs needed for an application. It’s called Dependency Walker. It is indeed better and you get to know the details about each DLL and the CPU architecture.

The second form of application is an installer package. You can use a program called EXE to CAB Converter to convert the installer package to a CAB file. The EXE to CAB program is a very old program. It’s very likely it would not work for newer installers. One other thing to try is just run the installer on you computer. When it’s done, you can look for the cab files on the system drive.

For Vista, the directory is at
C:\Windows\WindowsMobile

For XP, please refer to this article. You need to have ActiveSync (XP) or Windows Mobile Device Center (Vista) installed for installer to install the application.

When you get a CAB file for the application, there are two ways to use it. The first one is to use wceload to install it directly on Mio C230. Dominique first discovered the correct procedure to do it and Ameridan has a post about the procedure. The second way is to use a program like WinZip to extract the files from the CAB file. This part is tedious and note that the file names are different from the original names. You’ll need to change the file names back to their original names. For older CAB file, look for the .000 file. Use a text editor to open the file and you’ll know what are the original file names. For new CAB file, look for a setup.xml file. It has the info regarding the original file names.

Once you have all the files you need for an application. You could put everything under Script folder. However, I think creating a folder under Scriptprograms and put the required files in it might be a better solution.

If you get an application to work for Mio C230, please kindly share your find and tell us where to get the application and how did you get it to run. Freeware and Shareware only. If you get a commercial software you own to work, please share your experience here too.

I have started a new category: Programs for PNA. When I find a new program working for Mio C230, I’ll post it under that category. The first one is XnView Pocket.

# Geocaching Take 2

The major problem when I tried to use Mio C230 to find geocaches is that by default the static navigation is turned on. What is static navigation. Murphyfields has found a great link about static navigation. Here is the quote about static navigation from SiRF.

93. Explain the static navigation parameters.

Since SA was turned off, we now disable static navigation as our default, and we recommend that you do also. When it is enabled, if velocity is below 1.2 m/s for 3 seconds we will freeze the position, and leave them frozen until velocity exceeds 1.4 m/s (so there is a bit of hysteresis in the solution).

123. What criteria are used to enable and disable the static navigation filter?

Static navigation is a mode designed for motor vehicles, which causes the position to become pinned at one location when velocity is determined to be low enough. This is designed to make navigation systems operate more reasonably when the GPS Selective Availability (SA) signal degradation is turned on. When the navigation software determines that the vehicle velocity is less than 1.2 m/s for 3 seconds, the position is pinned to its current position. It remains pinned until either velocity is detected above 1.4 m/s, or position is computed to be 200 m from the pinned location.

This explains why the NoniGPSPlot stopped working (frozen) when I used it on foot. To disable static navigation, you need a utility called SirfTech. You can download it from here. Create a directory called SirfTech under ScriptPrograms and put SirfTech.exe in it. You can use FileMan CE to run it or create an entry on the desktop. Please refer to this post if you don’t know how to add it to the desktop. I have also created an icon file for it.

SirfTech is a powerful and complicated utility. I wish there is an easier way to toggle static navigation, but there isn’t. I will tell you a bit about how to use SirfTech to disable static navigation. Please note that, DO NOT RUSH on doing these steps. Wait for a few seconds before do the next step.

The first time you run SirfTech, you need to set the com port. Click on Com. Set the Comm Port to COM2: GPS_COM . Baudrate to 4800. Click on Open. Wait for a few seconds to let the program connect to the GPS. Click on OK.

Now, we need to switch to SiRF mode. Click on Nmea and then Set Serial Port (Switch to SiRF). If the Baudrate was not set, set it to 4800. Click on Set and then OK.

We can now disable static navigation. Click on Sirf and then Static Navigation. Uncheck the Static Navigation checkbox. Click on Set and the OK.

Before you run other applications, it’s better to return the GPS to NMEA mode. Click on Sirf and select the last opiton Switch to NMEA Protocal. If the Baudrate was not set, set it to 4800. Click on Set and then OK.

Whew! That’s quite a few clicks to disable static navigation. Now you can exit SirfTech and start your GPS application.

When I first attempted Geocaching, I used NoniGPSPlot. I didn’t like it. I used MioMap this time. I entered the geocaches’ coordinates into MioMap using DegDec format. (In MioMap, do: Map -> Menu -> Coordinate) You can find the coordinates in DegDec format when you click on other conversions on Geocaching.com. I then added these location as POIs.

With these preparations, I was able to find our very first goecache! Yea!

# Adding a Desktop for Unlocking Guide Release 4

Adding a new desktop to this release is quite easy. You can use the new desktop to add any programs you want. After trying out the tutorial on how to add a program to the desktop, you know that we use INI files for desktop configuration. main.ini is for Main desktop, games.ini is for Games desktop and utilities.ini is for Utilities. These files are located in Script\desktop folder on the SD card.

The code for switching between desktops is shown here.

ICONXPBUTTON

x = 192

y = 165

NewIni = leftdesktop.ini

SizeNormal = 64

SizePushed = 64

ScaleAlpha = 80

IconNormal = Icons\left64.ico

ScaleAlpha = 100

IconPushed = Icons\left64.ico

ShutDownAnimation = FlyRight

ICONXPBUTTON

x = 256

y = 165

NewIni = rightdesktop.ini

SizeNormal = 64

SizePushed = 64

ScaleAlpha = 80

IconNormal = Icons\right64.ico

ScaleAlpha = 100

IconPushed = Icons\right64.ico

ShutDownAnimation = FlyLeft

I have prepared a desktop template called user.ini. You can download the file here. Just copy the file to Script\desktop on the SD card. We want this desktop to be sandwiched between games.ini and utilities.ini, so we need to modify the two INI files.

Modify games.ini so that the right arrow icon loads user.ini.

ICONXPBUTTON

x = 256

y = 165

NewIni = user.ini

SizeNormal = 64

SizePushed = 64

ScaleAlpha = 80

IconNormal = Icons\right64.ico

ScaleAlpha = 100

IconPushed = Icons\right64.ico

ShutDownAnimation = FlyLeft

Modify utilities.ini so that the left arrow icon loads user.ini

ICONXPBUTTON

x = 192

y = 160

NewIni = user.ini

SizeNormal = 64

SizePushed = 64

ScaleAlpha = 80

IconNormal = Icons\left64.ico

ScaleAlpha = 100

IconPushed = Icons\left64.ico

ShutDownAnimation = FlyRight

That’s it. Now you have a brand new desktop to add your favorite programs. You can use SystemInformation32.exe to test the new desktop first. I encourage you to put your modification in this desktop so you won’t loose your customization when the new release is out.

Find deals on Amazon.com

# Adding a Program to the Desktop for Unlocking Guide Release 4

One reader has asked about some tutorials on how to tweak the tweaks. Here you are. I am going to show everyone how to add a program to the desktop. The program that I am going to add is called NoniGPSPlot. The web site is here. You can find a lot of useful information like tutorials and manual from the site. NoniGPSPlot is freeware, but if you find it useful and use it often, please donate to the author to help with future development.

The program I use to create the desktops is called SystemInformation. The web site is here. The site is in German, therefore you’ll need to use some translation tools to view the pages in English. SystemInformation uses a series of INI files for desktop configurations. In this release, most of the INI files are kept in Script/desktop folder on the storage card. There are 3 INI files: main.ini, games.ini and utilities.ini. Each is responsible for a desktop. In this example, we want to add the program to the main desktop, so we will only concentrate on main.ini file.

Now let’s begin. First, download this zip file from here. Unzip the file and find a folder called NoniGPSPlot. Insert your SD card to the card reader connected to your computer. Copy the whole directory to Script/programs on the storage (SD) card. In the past, I put everything under Script directory. As we have more and more programs, I like to organize the programs and put them in a separate folder. After copying, the directory structure is like Script/programs/NoniGPSPlot . Inside the directory, there is an icon file gpsplot.ico . Copy this icon file to Script/desktop/icons folder.

Now that we have the files ready, we can start editing main.ini. Use your favorite text editor and open main.ini in the Script/desktop directory. We want to put this program next to the uBook program. There is a commented out section about this.

#ICONXPBUTTON

#x = 64

#y = 95

#Command = \Storage Card\Script

#SizeNormal =64

#SizePushed =64

#ScaleAlpha = 80

#IconNormal = icons

#ScaleAlpha = 100

#IconPushed = icons

Uncomment this section by removing the # from the beginning of each line. We also need to edit the variables Command, IconNormal and IconPushed. Modify the section so that it’s like the following.

ICONXPBUTTON

x = 64

y = 95

Command = \Storage Card\Script\Programs\NoniGPSPlot\NoniGPSPlot.exe

SizeNormal =64

SizePushed =64

ScaleAlpha = 80

IconNormal = icons\gpsplot.ico

ScaleAlpha = 100

IconPushed = icons\gpsplot.ico

Note that we use absolute path for Command, but use relative path for IconNormal and IconPushed. This is necessary for the SystemInformation32.exe to work.

When you are done editing. Save the file. Before you remove the SD card from the card reader, you can test it first. There is a program called SystemInformation32.exe in Script\desktop directory. Double click on the program to run it. Here is the screenshot.

It looks fine and you can remove the SD card and insert it back to your Mio C230. Soft reboot(restart) your unit to see the changes. Now that you know how to add a program to the desktop, I suggest you don’t do it just yet. In my next tutorial, I am going to show you how to add another desktop. It’s better to do your customization on a separate desktop. That way, when the next release is out, you won’t lose your modifications.

# Wishlist for Unlocking Mio C230

If you have any new features that you would like to see in the future unlocking guide, please comment here.

The use of unlicensed maps is illegal. Please don’t ask where can you get maps not licensed for your device or how can you get MioMap to recognize the unlicensed maps. Any question regarding unlicensed maps will either be deleted or ignored.

The forum section is now open. Please discuss this post in forum.