P.e.a.p Dream


Grench

Forum Addict!
Joined
Oct 3, 2008
Messages
6,629
[dream]
In my never ending search for a usable turn by turn navigation software that I can run under Linux, I came across an interesting tidbit.

TomTom devices run Linux on ARM.

Now, before someone goes through the pile of free GPS packages available for Linux - please only go there if you have one that actually works properly. I.e has address data, waypoints, real maps (based on something more than census plots to include one-way streets), topographic details, yellow pages data (business name, type, location, phone number), etc... I.e. is it a realistic replacement for a 5 year old Garmin iQue 3600?

Now, back to the question...

Since the TomTom interface is, essentially, an application riding on top of Linux on ARM - in theory the Linux behind the scenes has to have a source code available.

If we have the source code, in theory someone could whip up a way to make the TomTom OS run as an application (VMish) inside of Angstrom - and re-point the GPS serial port calls to a bluetooth GPS.

If we have it's OS running as an application, the actual application can ride on top of it. The application is going to have a copyright on it - so anyone to do this would need to own a TomTom device to scrape the application out of to put into this environment.

So, if someone were willing to shell out the $200 to $400 for a TomTom GPS - could they theoretically run it's software on the Pandora?

Yes, this is getting to the desperation side of things. I want a real GPS solution for this device badly - but the current options are so limited by their free nature that they are doomed to always be 'experimental' and not particularly useful for real application.

So, in the realm of theory - I think it's possible. In the realm of practicality, it's likely a whole lot of work to get there.

This brings up the crux of the question though...

Is it possible to have a WINE like framework for ARM compiled software for other Linux versions run on the Pandora? If we could have Partial Emulation of Arm Processors (PEAP) it would open up a truly modern world of emulation. Imagine being able to scrape the OS and applications out of any ARM device (fantasy for now) and place them in the Pandora as an emulated application. TomTom, Android, iPad - the list would keep growing as ARM becomes more and more common.

Is this the killer application that we've been searching for? The Pandora was always seen as and dreamed of as an emulation device - for old game consoles. What if it were put to the harder work of emulating other modern ARM devices? Yes, the end user would need to own the rights to the device they pulled the image from just like they need to for console BIOS/OS and ROMs. I'd be willing to scour Ebay for a TomTom if it meant having real nav software to use.

OK, so it's only a dream. There are a lot of reasons that this is going to be nearly impossible to accomplish - it would require emulating an ARM platform inside an ARM device, re-pointing drivers from physical to virtual device layers, multitasking, etc... and the results would run at sub-optimal speed. Still... Imagine the possibilities.
[/dream]

Out for discussion since most of us don't even have a device to occupy our time yet.
 
TomTom's OS GPL site:
http://www.tomtom.com/page.php?Page=gpl

TomTom device hacking site:
http://www.opentom.org/Main_Page
 
Grench said:
please only go there if you have one that actually works properly.

Funny that you would say that and then use a TomTom as your example...

Try a little experiment: use mapquest to plot a route somewhere in a city you know well that has one way streets, then use google maps to plot that same route.

If your experience is anything like mine (the last time I did this was about a year ago) then the mapquest directions are very likely trying to send you down a one-way in the wrong direction and the google maps will be a more "logical" route.

TomToms use the same pathfinding algorithm as mapquest and Garmins use the same pathfinding algorithm as google maps... so there's a REASON why TomToms are so much cheaper than Garmins, 'cause they suck.

Not fanboyism... just my observations, I'd gladly say the exact opposite if I had found it to be so.

So it kinda made me laugh when you mention all these features that don't work properly on these open source gps softwares and then mention a TomTom as a better alternative... 'cause any TomTom I'VE ever used was just as horrible as the softwares you're complaining about.

It's like complaining about features missing on your Honda but then recommending a Yugo (considered by many to be the worst car ever built) as a viable alternative.
 
Last edited by a moderator:
lulzfish said:
Just realized it's a joke on "pipe dream"

I was concerned it was too subtle - looks like it worked.
 
Last edited by a moderator:
mitosis said:
Grench said:
please only go there if you have one that actually works properly.

Funny that you would say that and then use a TomTom as your example...

Try a little experiment: use mapquest to plot a route somewhere in a city you know well that has one way streets, then use google maps to plot that same route.

If your experience is anything like mine (the last time I did this was about a year ago) then the mapquest directions are very likely trying to send you down a one-way in the wrong direction and the google maps will be a more "logical" route.

TomToms use the same pathfinding algorithm as mapquest and Garmins use the same pathfinding algorithm as google maps... so there's a REASON why TomToms are so much cheaper than Garmins, 'cause they suck.

Not fanboyism... just my observations, I'd gladly say the exact opposite if I had found it to be so.

So it kinda made me laugh when you mention all these features that don't work properly on these open source gps softwares and then mention a TomTom as a better alternative... 'cause any TomTom I'VE ever used was just as horrible as the softwares you're complaining about.

It's like complaining about features missing on your Honda but then recommending a Yugo (considered by many to be the worst car ever built) as a viable alternative.

I've never used a Tomtom. I do have a Garmin iQue 3600. The Garmin is great - though it's maps are now dated and my version of the map software is no longer update-able.

I've been plowing through every Linux based nav software bit I can get my hands on - and frankly it all feels like beta ware.

Two questions really:
How do we get -real- functional GPS road navigation onto the Pandora? Paid solutions work too.

What about that idea of setting up a PEAP (call it what you want if you can build it) environment to house the whole OS/apps combination off of other ARM processor based platforms?
 
Last edited by a moderator:
mitosis said:
so there's a REASON why TomToms are so much cheaper than Garmins, 'cause they suck.
I thought tomtom was basically for the european market and garmins for the US.

Location-determined-quality I guess ;)
 
Last edited by a moderator:
I personally like Copilot, I've used the Android and Windows Mobile versions with my Bluetooth GPS. Perhaps the Android version could be hacked to work. there handheld / phone compatibility seems really good, perhaps they're willing to do a port if contacted.. Unfortunately it's not free open-sourced.
 
Many gps units run windows CE (tomtom and Mios for example) you can look into getting that to work if you would like something better.

To me the pandora isn't an everything-in-one device. I would rather just leave a gps in the car for when I need it. Most cell phones do this now too...
 
TrashyMG said:
I personally like Copilot, I've used the Android and Windows Mobile versions with my Bluetooth GPS. Perhaps the Android version could be hacked to work. there handheld / phone compatibility seems really good, perhaps they're willing to do a port if contacted.. Unfortunately it's not free open-sourced.

It looks like they have a good setup. It would be good to try with a company like that to see if we can get support.

In the end, though, I'm betting it will be more likely to have us emulate an Android device as a VM or Wine experience than it will be to get shops like that to port their software to our platform of hundreds of potential customers.
 
Last edited by a moderator:
greendots said:
Many gps units run windows CE (tomtom and Mios for example) you can look into getting that to work if you would like something better.

To me the pandora isn't an everything-in-one device. I would rather just leave a gps in the car for when I need it. Most cell phones do this now too...

Tomtom has software to install to CE devices, true.

However, Tomtom's own devices that they build and ship are based on an installation of Linux on ARM. See my above posts about it.

My theory is that something like this, that is already an application running on Linux on ARM should be able to be run in a semi-emulated WINE for ARM style environment on the Pandora OR that the OS itself should be able to be run in what would essentially be a VM environment.

Should be able to work and having something working are worlds apart though - thus the Pipe/PEAP dream of this idea.
 
Last edited by a moderator:
You shouldn't need OS/kernel-level emulation (what you're describing with something like WINE) to execute applications for one ARM Linux on another ARM Linux. They should just run, provided several other environmental considerations have been accounted for. If TomTom uses non-standard drivers then those will have to be ported and possibly faked. If it uses non-standard paths and configurations and utilities and whatever then those will have to be provided. If it accesses hardware directly from userspace via /dev/mem or something then a trap and execute style emulation will have to be done like the GP2X emulator notaz is working on.

This page gives some hints of their distro: http://www.tomtom.com/page.php?Page=gpl
This page too: http://www.opentom.org/Main_Page

It all looks pretty standard. Screen is accessed via fbdev; with some kind of wrapper or custom configuration this can be redirected to a properly sized overlay. There's a /dev/gps device, but what's needed there is minimal; most of the GPS stuff appears to go through a tty which I imagine can be mimicked okay by a USB GPS. Buttons are accessible via GPIO in /dev/hwstatus, which would be straightforward to emulate direct access to, probably a little more work for the signaling. Touchscreen is /dev/ts, hopefully apps use dynamically linked tslib instead, but since a calibration file at a fixed location is used maybe the values in that file can be tweaked to make it work with a Pandora's /dev/ts (assuming it's there, I haven't checked).

The OpenTom software can also probably be directly ported to Pandora. I'm not sure how much of interest is there, ie I don't know how much of an attempt has been made to make open alternatives to the TomTom core software.
 
Have a look at maemo-mapper

It does this sort of thing for maemo - it is meant to have voice navigation, but I haven't (yet) figured out how to make it work.
 
fearofshorts said:
...semi-emulated WINE...
That in itself is a paradox. Wine Is Not an Emulator.

You're talking about VM-ing it.

Thus why I'm referring to two options.

You are correct that WINE is not an emulator - for the CPU. What it DOES do is to mimic/emulate an environment and handle driver calls. An equivalent on ARM would need to be specific to the platform who's software is being run. I.e. there would have to be a PEAP environment for Tomtom (for it's driver calls), one for Android (for it's driver calls), etc... At the end of the day they're all Linux on ARM, but they expect different things to already be there for their execution environment.

The other option I brought up is a VM - which would be real slow for now.

2-3 years from now when the Pandora has 2-4 cores and 4x the amount of RAM I could see us running 1-2 of these other platform's apps at a time much like many of us do today under WINE on Linux.
 
Last edited by a moderator:
Exophase said:
You shouldn't need OS/kernel-level emulation (what you're describing with something like WINE) to execute applications for one ARM Linux on another ARM Linux. They should just run, provided several other environmental considerations have been accounted for. If TomTom uses non-standard drivers then those will have to be ported and possibly faked. If it uses non-standard paths and configurations and utilities and whatever then those will have to be provided. If it accesses hardware directly from userspace via /dev/mem or something then a trap and execute style emulation will have to be done like the GP2X emulator notaz is working on.

This page gives some hints of their distro: http://www.tomtom.com/page.php?Page=gpl
This page too: http://www.opentom.org/Main_Page

It all looks pretty standard. Screen is accessed via fbdev; with some kind of wrapper or custom configuration this can be redirected to a properly sized overlay. There's a /dev/gps device, but what's needed there is minimal; most of the GPS stuff appears to go through a tty which I imagine can be mimicked okay by a USB GPS. Buttons are accessible via GPIO in /dev/hwstatus, which would be straightforward to emulate direct access to, probably a little more work for the signaling. Touchscreen is /dev/ts, hopefully apps use dynamically linked tslib instead, but since a calibration file at a fixed location is used maybe the values in that file can be tweaked to make it work with a Pandora's /dev/ts (assuming it's there, I haven't checked).

The OpenTom software can also probably be directly ported to Pandora. I'm not sure how much of interest is there, ie I don't know how much of an attempt has been made to make open alternatives to the TomTom core software.

You got the idea. The Tomtom was just an example. There are actually quite a few devices out there running slightly different versions of embedded Linux for single purpose applications. The theory is there - I don't know if it would be worthwhile for anyone to mess with it though.
 
Last edited by a moderator:
andys said:
Have a look at maemo-mapper

It does this sort of thing for maemo - it is meant to have voice navigation, but I haven't (yet) figured out how to make it work.

From what I can tell maemo-mapper is using the same public census maps as most of the other free-Linux GPS software out there. Those don't work so well. They'll tell you where you are at, but the routing and trip calculations wind up being pretty weird.
 
Last edited by a moderator:
Grench said:
andys said:
Have a look at maemo-mapper

It does this sort of thing for maemo - it is meant to have voice navigation, but I haven't (yet) figured out how to make it work.

From what I can tell maemo-mapper is using the same public census maps as most of the other free-Linux GPS software out there. Those don't work so well. They'll tell you where you are at, but the routing and trip calculations wind up being pretty weird.

AFAIK most FOSS navigation apps for linux use maps based on OpenStreetMap, not census data.
 
Last edited by a moderator:
valhalla said:
Grench said:
andys said:
Have a look at maemo-mapper

It does this sort of thing for maemo - it is meant to have voice navigation, but I haven't (yet) figured out how to make it work.

From what I can tell maemo-mapper is using the same public census maps as most of the other free-Linux GPS software out there. Those don't work so well. They'll tell you where you are at, but the routing and trip calculations wind up being pretty weird.

AFAIK most FOSS navigation apps for linux use maps based on OpenStreetMap, not census data.

Yes, but OSM did a full import of TIGER a few months/years ago (i.e. census data) and people have been correcting it since then. But realistically in a well-traveled area, as most one-way streets are, the OSM data is probably already corrected. OSM especially in populated areas is quite good.

I've been working on a gps navigation program specifically for the Pandora. I haven't gotten very far since I don't have a Pandora, but I agree that current linux solutions are pretty awful. They don't even do route generation correctly most of the time, let alone turn by turn directions. I'd like to be the first to write an actually usable gps nav program; i bought and had set up a bluetooth GPS unit about 2 years ago... just need the pandora to go with it. I have some interesting ideas that I think could go a long way into making the software better, but I don't have any interest in building upon existing solutions. So it may be a while before mine is usable.
 
Last edited by a moderator:
Back
Top