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.
You don’t have to waste your time on those lowly rated software. Most PocketPC software come in three formats.
Stand alone executable
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
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.
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!
After learning about Geocaching, I finally got around to try it out. If you don’t know where to find the information. Here is the site where you can find out all about it.
I went on the site to find nearby geocaches. Surprisingly, there are a couple of geocaches within 2 minutes drive from my home. I was in a hurry, so I didn’t enter the info into NoniGPSPlot. I just wrote down the coordinates on a piece of paper and off we went. I thought I was prepared. Boy, was I wrong!
The first trouble I ran into is that using NoniGPSPlot is not enough to find the geocaches. From the coordinates reading, I knew I was close. But I didn’t know which way to go. We walked in the wrong direction for several minutes before I found out. NoniGPSPlot also crashed several times. In the end, NoniGPSPlot stopped updating the coordinate reading.
I then tried to use MioMap to find the geocaches. However, I quickly found out MioMap uses a different format for the coordinates. The coordinates I wrote down on paper were useless. I finally gave up on searching for them. In the end, we didn’t find any of the three geocaches we set out to find. Fortunately, I didn’t waste much time.
If you have been using Mio GPS to do Geocaching, please share your experience here. Thanks!
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.
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.
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.
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.
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.
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.
Right after I published the release 3.1, MoonBear contacted me and asked about some system files for the default Mio C230. He helped me to figure out a SD card based unlock procedure. I have since changed my unlock procedure to accommodate this.
What are the advantages using a SD card? Firstly, the unlock is easier when you use a SD card. A lot of people got confused about changing the folder name of the default location of MioMap. With the SD card approach, you don’t have to do that any more. Secondly, as I put more applications in the unlock package, there is not enough space in the internal flash drive. I now put everything on a SD card, this is not an issue any more. Thirdly, with earlier releases we have to hard reset the unit every time we disconnect it from the computer. Now that I use the SD unlock, the unit behaves better. Most of the time, I don’t have to do a hard reset. About 1 out of 5 times, I still need to hard reset the unit, so the problem is not completely fixed. Since I can just work on the SD card, I rarely need to connect C230 directly to computer, so this is not a big deal any more. Lastly, the modification of the internal flash of the unit is minimal. It’s also very easy to revert the unit back to the factory state.
If you already have a high speed SD card, you are fine. Otherwise, the first thing you need to do is to buy a nice SD card. Note that you cannot just use an age-old SD card from several years ago. Chances are your Mio cannot recognize it. This is the card I am currently using. 1 GB is sufficient for me. If you like to have a lot of MP3s and movies, consider a card with bigger capability(2 GB , 4 GB ).
Here are what’s new about this release.
SD based unlock.
MioMap skin chooser(switcher).
Expanded game section.
BEFORE YOU FOLLOW THE PROCEDURES TO MODIFY YOUR MIO C230. YOU KNOW THAT YOU MIGHT RENDER YOUR C230 UNUSABLE AND YOU MIGHT VOID YOUR WARRANTY. YOU DO THIS AT YOUR OWN RISKS. THE FOLLOWING STEPS HAVE BEEN TESTED ON US MODEL OF MIO C230 ONLY. THEY ARE NOT MEANT FOR MIO C230 PURCHASED IN OTHER COUNTRIES.
Before you begin, make sure you read the post entirely and you have no questions about each step. A little background might help you understand what you are doing. There is a back door for MioMap to run external application. This is different for different models of Mio GPS. For Mio C230, this back door is an application called autorun_ABC.exe (or GOCE.exe) on the storage card. What we are going to do is to have our unlock package on a storage card and trick the MioMap to run our unlock script. Note that with this approach, you don’t need to change the default MioMap directory. If you have changed the default MioMap directory, you’ll have to change it back before you try this unlock. If you have a USB cable, connect the unit to a computer and backup everything on the unit before you go on.
Unzip the file and copy everything to a SD card. Note that if you already have a Skins or Routes directory, just copy the content of Skins or Routes directories to your existing Skins or Routes directories. Here is a screenshot of the folders and files on the storage card’s root directory.
Turn off Mio C230 using the switch on the back. Insert the SD card into the unit.
Turn on Mio C230 using the switch on the back. A dialog pops up telling you the unlock is done and begging for donation. Click on OK to continue.
(Optional) If you still have the default MioMap user interface(skin), you need to change it so that you can exit MioMap. I have included a modified skin in the Skins directory.
Click on Routes on the desktop.
Select MioMap Skin Choices and click on OK.
Select ComputerBits and click on OK.
A new skin is being copied, this process can take up to 30 secs or more.
There are 3 desktops included in this package. You can use the left and right arrows on the lower right corner to switch between the desktops. The top row and bottom row are the same for each desktop. After unlocking, notice there is a small icon “ab” in the top left corner. If you tap on it, it opens up an on-screen keyboard. You need a stylus to us it. Make sure the cursor is in the input field of the window when you use it. Tap it again to close the on-screen keyboard. Right next to ab icon, there are 3 small icons. They are:
Restart: Restart the unit.
Landscape: Return the screen to landscape mode. This is useful when the screen is rotated 90 degrees by accident.
Volume: Change the volume. The default volume is set to maximum. You can use this to change volume before playing a game with sound like Tetris.
The bottom row from left to right:
GPS: Invokes MioMap.
Media: Invokes TCPMP. This is a versatile media player. It plays various video formats and MP3. It can also be used to view photos. I added the plugin to play FLV video downloaded from YouTube or other flash video sites. Plugins for playing Podcast video are also included.
FileMan CE: Invokes FileMan CE, a file manager for CE devices. You can use it to launch other programs not on the desktop or manage files.
Paint: Invokes PocketPaint. This is a simple paint program.
Calculator: Invokes MyCalculator. To exit out MyCalculator, tap About and then the “X” in the about screen.
Photos: Invokes GQe. You can use it to view photos on the storage card.
Notes: Invokes NotePad, a notepad program for creating/viewing text files.
Routes: Route Management and MioMap Skin Chooser(Switcher). See the Note section for instruction.
uBook: uBook reader. It can open HTML, TXT, RTF, PDB and PRC (not secure) ebook files. A free Webster dictionary is included. I don’t know if anyone is interested in reading a dictionary, but it’s there.
In this desktop, there are a lot of new games. Most of the games are from XFlib. If you like the games, please consider a donation to their site. You can download a lot more games from the site. A lot of games run in portrait mode. Ameridan has come up with a way using scripts to rotate the screen automatically. I have borrowed the scripts to run these games.
Lights On: Invokes LightsON. The goal of the game is to turn all lights on.
Free Cell: Invokes FreeCell, a poker game.
Sudoku: A Sudoku game from XFlib.
Caisses: A Sukoban clone game from XFlib.
HexaVirus: My personal favorite from XFlib. Your goal is to active every virus in 30 moves or less.
Aquella: A JezzBall-like game from XFlib.
BallBreaker: An interesting game from XFlib to test your reflexes. All the balls are shooting at your cursor. Try to lure the balls to hit the block(s) and break them.
Pipes: A classic pipes game from XFlib.
Tetris: A classic Tetris game. Click on the block to rotate it. Click on the left or right side of the window to move the block.
Shift: Another game from XFlib. Click on the border of the screen to move the blocks that can move in the direction. When 3 or more of the same block form, they disappear.
RegEdit: Registry editor for your Mio C230.
iTaskMgr: Shows you CPU, Process and Task(Application) info. You can use this to terminal a process or switch to an application.
Move: Utility to move windows around.
DPMS: Turn your screen off.
Resinfo: Invokes Resinfo. It shows you some resources informations for your device. Kinda like task manager in Windows. You can use it to terminate applications or processes.
Restart: Restarts Mio C230. Use this when an application crashes or after you load new files to the SD card.
Rotate: Rotates the screen counter-clockwise by 90 degrees.
Snapshot: Invokes CapScrUtil. A screen capture utility. Remember to store the image to either Storage Card or My Flash Disk for easy access to the screenshots.
Settings: Invokes MioUtility, a control panel like application for adjusting backlight, volume, screen, power, date/time and language.
If you want to use your own background image, just create a 320×240 bitmap file. Put them in the Scriptdesktop directory. Edit the ini files in the directory to use the bitmap file you created. main.ini is for Main desktop, gmaes.ini is for Games desktop and utilities.ini is for Utilities desktop. Change the variable BackgroudBitmap to point to the new file.
If you want to change or add the icons(shortcuts) on the desktop, you can do so by editing the files in note #1. An icon entry is like this.
When you have the program and icon(64×64) ready, copy the program to Script directory and copy the icon to Scriptdesktopicons directory and modify the variable Command, IconNormal and IconPushed. Note that you have to use absolute path for Command, but use relative path for IconNormal and IconPushed. If you follow this rule, you can use the included SystemInformation32.exe in that directory to test the desktops on your computer. This tool is very useful for those who like to change the desktops frequently. I have commented out some of the ICONXPBUTTON sections on the ini files. If you want to use them, remove the # signs in front of the lines.
If for whatever reason, you cannot exit a certain application, you can use Resinfo to terminate the application. Tap the “ab” icon on the upper left corner. Tap “Ctl” and then “Esc” on the on-screen keyboard, this brings up taskbar. Once taskbar appears, tap “Programs” and then “Resinfo”. Use “Tasks” tab of Resinfo to terminate the application (task). You might want to soft reset (restart) the unit. Sometimes, the taskbar is on top when you run MioMap or other applications. It’s very annoying. You can disable the behavior by click on Start -> Settings -> Taskbar and Start Menu… and uncheck Always on top.
Now that we have everything on the SD card, you don’t need to connect the unit to the computer any more. You can just take out the SD card and work on the SD card. When you are done working on the SD card. Insert the SD card back into the unit. If your unit did see the new files you added to the SD card, restart the unit by using the restart icon on the desktop. If you have Map files on your SD card, you might notice that the system soft reboots when you insert the card into the unit when it’s on. This is normal.
If you still like to connect your unit to the computer, sometimes the unit freezes up. You will need to hard reset the machine using the switch on the back.
Route management lets you Save/Load/Delete/Rename routes. The default location for routes is at Routes on the storage card. If you have saved your routes in other location, you can move them to here. To save a route, start MioMap. Plan a route as you wish. You might want to disable off-route automatic recalculation(Home -> Settings -> General -> Off-route recalculation) when you plan a route. When you are done planning, exit MioMap. Then click on Routes icon to run the route management program and click on “Save current Route” to save it. To load a route, click on Routes icon. Then click on “Load a saved Route”. Pick the route you want and click on OK. The MioMap starts up automatically with the route your picked.One added feature of this release is MioMap Skin Chooser (Switcher) by Mike FFI. If you have found a skin you want to use. Just create a subdirectory under Skins on the storage card. Copy the DATA.ZIP to the subdirectory. Please see this post about MioMap skins. Note that whenever you load a new skin, it takes a bit of time for the copy process to finish.
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.
If you don’t like it the way it is, you want to undo everything. It’s very easy to revert back to the factory state, just hard reset the unit using the switch on the back and copy the backup DATA.ZIP back to the unit if you wish.
If your Mio C230 is not working at all even after you perform the aforementioned steps, you can use the DVD that came with your unit to restore it.
If you don’t have a Mio C230 yet, you can consider buying it from Amazon.
I published the original unlock guide on 10/31/2007. The guide is a FIRST and ORIGINAL unlocking guide for Mio C230. The guide has made hacking/unlocking Mio C230 possible and it has inspired other efforts for making Mio C230 a wonderful device to own. If you find my articles useful and you would like me to continue this project, please consider making a donation to my site. Thank you!
Some of you might have tried to modify the SYS.TXT file in the MioMap (or MioMap2) directory to let MioMap behave differently. I found a post by Andy Elliott. You can find a lot of information regarding SYS.TXT. Note that the way he posted the info is not what you should put in the file. For example, if you want to show one-way street, have this in the debug section of SYS.TXT.
The major complaint for Mio C230 is the number of POIs that comes with the system. Unlike the previous models, C230 only has 0.9 million POIs. Even though you can add custom POIs, the search speed suffers.
One reader has provided a link to a forum where you can request 12M POIs for Mio C230. At the time of the writing, the following states are available.
Note that these maps are for C230 only. If you would like to see more, please request the map of your state here (registration required). Don’t request the maps here, I don’t know other sources for them.
Some of the files are protected by password. The password is
. After you download the maps, please see this post about where you can put the maps.
Here is the message from the author of the original thread.
Help the world, donate, volunteer to your favorite charity~~~~~~~
Take a little, give a little and you will be rewarded.