On Boxing Day I picked up a cool new toy – a V7 Navigation 1000. It’s an in-car GPS unit with quite nice hardware and software (albeit perhaps matched up and configured by monkeys, and somewhat buggy too). As with any new electronics gadget, I set out looking for updates as soon as I had my hands on it – which lead me down the road of hacks for similar GPS units. It turns out that the software the V7 unit runs, MyGuide
, is just iGo
re-branded and is exactly the same as what many other common GPS units run under various names such as MioMap
While it’s great that the Navigation 1000 has all its maps on an included 1gb SD card, this lead to the problem that they did not include any way to access the rest of the files on the device (such as the configuration files for MyGuide). Devices like the Mio DigiWalker C310S have a USB port since their maps are stored on internal Flash memory and not an SD card, and this let their owners do some simple software hacks to get full access to reconfigure the GPS software as well as directly use Windows CE. Yes, these babies run on Windows CE!
Knowing that there was Windows CE under the hood, and that there was a quite powerful processor powering the device (400MHz ARM), this lead me to assume that there must be a USB port hidden somewhere inside – perhaps behind what looked like covered up ports? After all, if I was developing a Windows CE device, I’d want a USB port for development and debugging!
And so it began…
As with all hardware hacks, please do not attempt this unless you are experienced in electronics and soldering, and have all the necessary equipment. You’ll want a good soldering iron with a very fine tip (made for SMD work, not through-hole!) – not the kind you get at RadioShack.
First, start by taking off the front case. There are 4 small phillips screws on the back of the V7 Navigation 1000 that you’ll have to remove. None of my phillips jewelers screwdrivers were small enough to fit into the screw hole, so I used one of my medium-sized flat-head jewelers screwdrivers – it worked fine. As with most gadgets, the case is also sealed by plastic clips around the edge. After several attempts with my trusty jewelers screwdriver that had just saved me, I gave up and used my thumb nail. In no time I had the case open. Woohoo!
With the case open, the first thing you’ll see is most of the PCB is covered in shielding tape (which is very sticky!). I’ll tell you now – all the interesting components are inside a metal shield on the back of the PCB, and it’s soldered down pretty damn well. After I came to that realization, I almost packed in the towel as I assumed that any way to access USB would also be hidden in there. While I did some last minute poking around the PCB, I saw 4 test points marked J3. Test points marked as a jumper? Very odd… and being that USB uses 4 wires (+, -, D+, D-), I had a “eureka!” moment.
Where will you find these golden test points (no, seriously – they are gold plated)? At the very top of the front of the PCB, nearly in the centre (above a whole lot of VIAs as it would seem that the ARM chip is in a BGA package). To get to them you will have to remove the shielding tape from the top of the PCB – it’s easy enough as it’s only stuck to the top of a few components, so just take it slow and be careful.
If you look closely at J3, you will see that of the 4 test points, the left-most test point is separated from the other 3. This is VCC (V+). Looking closely at the right-most test point, you can see that it is connected to the ground plane. This is GND (V-). As for the other 2, I had no idea other than the standard order is V+, D-, D+. GND. As V+ and GND were in the correct order, I went with the assumption that D- and D+ were too. I was right. At least some people follow standards!
We now have a way to connect to this device by USB, all we need now is to connect it up. I had the choice of soldering a USB cable directly to the PCB or putting a mini-USB connector in the unit and being able to plug a standard mini-USB cable in, and would definitely have gone with the later if I wasn’t in a rush to see if all my assumptions about the USB pinout was correct (or if it even was a USB port). As such, I found a spare mini-USB cable, cut off the mini-USB plug, and stripped the 4 wires. If your USB cable has shielding (it should), just cut that back also. You’ll want about 10cm of the USB cables shielding stripped back, as it’s too fat to route through the GPS unit. Next, strip the ends of the 4 wires in the cable. You only want to have 1-2mm (that’s a bit less than 0.05-0.1″) of bare wire at the ends, as the actual test points that you’ll be soldering them to are about 1mm in diameter each and any extra bare wire could easily make contact with other wires or components causing all kinds of grief (and likely a dead GPS and perhaps PC too if it’s connected at the time).
You can see that I’ve soldered them in the order (left-to-right) Red, White, Green, Black. These are the standard colours for VCC, D-, D+, and GND respectively in USB cables, and as such they should be the same in any USB cable that you cut up for this hack. If they are not, or if you just want to be extra careful (I was!), you can always use a continuity tester on the mini-USB connector that you cut off from the end of the cable (pinout
You should also note the use of heat-shrink tubing (and further on the use of electrical tape) to prevent any of the USB wires (and shielding of the USB cable itself!) coming into contact with the PCB or components where they shouldn’t.
Next up we need to make a hole to feed the USB cable out from. I chose to make use of the area above the power button as it looked like it was originally designed to have a port there (the PCB even had room for an unknown connector – but it wasn’t USB). You can make it anywhere on the case obviously, another good location would be the top next to the stylus as that would minimize the internal-routing of the USB cable (given the amount of shielding the GPS unit has, this would likely be a good thing). Dremel time!
When routing the USB wires, be careful to avoid blocking the front-panel buttons and their backlight LEDs. I found it was quicker to just turn the unit on than to look around the PCB for the 4 LEDs. When that’s done, you should have something looking like this.
Snap the case back on and put the 4 screws back in, and you’re done! You might want to turn it on now to make sure that it still works…
Download and install Microsoft ActiveSync (here
) as this will let you access the device just like it was a PDA. Plug the GPS unit into one of your computer’s USB ports, and you should be good to go! If you click ‘Explore’ in ActiveSync, Explorer will open to allow you to browse around the file system. The first thing you should do is back everything up, though there are some files that you cannot (system files).
One easy hack you can make right off the bat with MyGuide is to add a button from the startup screen to run Explorer on your device. To do this, copy \Flash Disk\IGOPATH.TXT to your PC and create a backup copy of it also. Rename the file on the device to IGOPATH.bak. Back on your PC, open IGOPATH.TXT in Notepad and add the following line to the end of the [Multimedia] section (so this should be the last line in the file):
Explorer= “icons/files.bmp”, “\\Windows\\Explorer.exe”
The file should now look like this:
LangSyncOn = “\\flash disk\\langsync.exe”
LangSyncOff = “\\flash disk\\langsync.exe”
Settings = “icons/settings.bmp”, “settings”, 1
Multimedia = “icons/media.bmp”, “Multimedia”, 0
Picture= “”, “\\Flash DIsk\\XImage\\XImage.exe”
Movie= “”, “\\Flash DIsk\\XMovie\\XMovie.exe”
Music= “”, “\\Flash DIsk\\XMp3\\XMp3.exe”
Explorer= “icons/files.bmp”, “\\Windows\\Explorer.exe”
You can now copy this file back to the V7 Navigation 1000 (under \Flash Disk\, of course), then power-cycle the device so it gets the new configuration. If you click on Multimedia on the first screen now, it will list Music, Movie, Picture, and… Explorer! Tap on Explorer, and there you have it – Windows CE Explorer is running on your V7 Navigation 1000.
From here you can go ahead and install lots of normal Windows CE software such as games, and utilities, or just mess around with MyGuides configuration (custom skins, hidden features, and more are all possible… maybe even bug fixes). Since the Mio uses the same software, a lot of its hacks should be portable to the V7.
The GpsPasSion forums
are a great source of information on Mio hacking, so should be one of your first stops.
Happy hacking, and if you find something cool, drop me a note!