[UTL][CE 5/6] CeUseGPSDateTime - Windows Mobile Apps and Games

What it is:
When your WinCE powered device is hard reset, or batteries removed, the clock goes all the way back to 01/02/2004, which takes an age to flip in controlpanel through all those months to present day. Searched for solution to set this via an satellitet date time, because my CE device is a navigator. Didn't find a related prog in native code, all in C# ...
Therefore decided to write an own utility: CeUseGPSDateTime. This command-line application - written in native code, hence no .NET CF is needed - helps you keep the internal clock of your WinCE powered GPS device accurate by synchronizing it with the GPS date time signal.
How it works:
Walks chain of drivers as enumerated under HKEY_LOCAL_MACHINE\Drivers\Active and examines whether a serial port COM/VSP is given. If one found then tries to read from this serial port. If read was sucessful it tests whether data got are NMEA sentences of type RMC (supported by SiRF, Garmin, Magellan and Lowrance) and/or ZDA which both contain date time information in UTC format.
Code:
$GPRMC,UTC,POS_STAT,LAT,LAT_REF,LON,LON_REF,SPD,HDG,DATE,MAG_VAR,MAG_REF*CS<cr><lf>
$GPZDA,UTC,DD,MM,YYYY,TH,TM,*CS<cr><lf>
If success then WinCE clock's date time are updated with the satellite date time got.
Note: This app expects the GPS receiver to be set up to transmit at least one supported NMEA-sentence every second.
When it does fail:
• If no satellite fix already done
• If COM port doesn't provide NMEA-1083 sentences.
• If COM port is locked up - as this is the case with most navigation softwares which exclusively use the GPS COM port.
Usage:
Command line example: CeUseGPSDateTime.exe
MortScript example: Run("<Full-Path-To-CeUseGPSDateTime-Executable>\CeUseGPSDateTime.exe")
Disclaimer:
I haven't thoroughly checked for bugs yet, so if you find one, please let me know.

if you can do the same thing with RDS it will be great

RDS and GPS synchronization WinCE WINCA S100
raver2046 said:
if you can do the same thing with RDS it will be great
Click to expand...
Click to collapse
Hi,
First of all, thank you for your job.
It happens that My device can't save clock settings. I have then GPS signal as backup to rely on.
My pb: I don't know how to implement your solution and maybe you have other mean to synchronize clock with RDS.
Thank you for your attention and your reply.
JLA CLOUD

Related

GPS and GPRS

Hi,
Can somebody tell me if it's possible to upload the GPS lat/long co-ordinates to my internetsite via GPRS connection ?
I will try to plot my trip realtime on a map while driving my car
I have a XDA, TomTom and a Leadtek GPS mouse.
See for example this site:
http://www.gowireless.ch/mobile/english.html
Hope one of the developers can help me !
Tnx R.
Yes
There is no reason why this would not be possible. You just need to write an interface to the GPS driver, when then sends co-ords (possibly as an HTTP PUT) to a server. The server can then place these on a map.
I don't know what the cost involved in keeping the GPRS connection alive is, but the co-ordinate submisions should be fairly small. Of course the cost also depends on the 'frequency' of the updates - ten minutes, 2 minutes - 2 seconds? I would suggest no less that 30 seconds - it could take 10 secs to update the page, and people to conect to it.
Interface and GPRS costs
Hi martinlong1978
Do you know if there is'nt already such kind of interface ?
I think the costs for uploading x,y every 30 seconds will be no more then € 0.05 per GPRS/hour
P.
I don't know if this already exists. I'm sure something like this exists, because it is often used to track trucks. It is quite expensive though. I am looking to build a free version.
I've asked Tom Tom for an SDK for their driver, but I fear they will say I have to buy the navigator SDK ($200).
If anyone knows of an SDK for the TomTom GPS Driver it would be a help, then I can build the 'GPS logger' software.
Freeware GPS Logger ?
I think there must be (freeware) software that drop's the x,y received from the GPS in a *.TXT or ASCII file.
Maybe it's possible to open one of these files upon selected interval time and sent the data to the desired Internetsite ?
Anybody suggestions ?
TYnx P.
Ive found an article that I can use. This is written primarily for VB, but I'm sure I can use the principals in C++.
http://msdn.microsoft.com/msdnmag/issues/01/01/GPS/default.aspx
martinlong1978 said:
Ive found an article that I can use. This is written primarily for VB, but I'm sure I can use the principals in C++.
http://msdn.microsoft.com/msdnmag/issues/01/01/GPS/default.aspx
Click to expand...
Click to collapse
Please look at this information, maybe you can use it;
see link below. A lot of features to create projects and sending data wireless to an Internet Site.
http://www.pocketpccreations.com/custom/gps.htm
Peter
A good solution is to use the GPS library from chaeron (http://www.chaeron.com/gps.html). Its free and can handle Garmin and NMEA protocols from your serial port and does a lot of other things also. You need the Superwaba VM to be installed on you're PDA (www.superwaba.com).
The. The drawback is that you probably need to do some programming in Waba (a subset of JAVA).
For the uploading there are several solutions. If you're using GPRS I suggest use a TCP/IP network socket (waba has a class for it) and use that to submit the information to a webserver or an other server (can be just a simple java thing listening on a port).
anyway good luck
Arend
I am creating a App in Evb that will take te GPS and stor it in a text file
on the PDA. I am using it for tracking history.
My program uses code that i have created on my own
You can use Bluetooth or a hard wired system.
This works for me:
http://www.tvwebradio.com/findme2/forum/

Adapter program to enable assisted GPS on the Verizon xv6800 "MR1" (WM 6.1) ROM

Adapter program to enable assisted GPS on the Verizon xv6800 "MR1" (WM 6.1) ROM
I've written up a program that will enable the use of assisted GPS on the MR1 Verizon ROM. This may be of use to you if you do not want to use a custom ROM, -or- you cannot get GPS working on a custom ROM.
Note: This method does not currently work on dcd's releases. My code has only been verified to work on the Verizion MR1 ROM. I believe this is because the Sprint GPS intermediate driver does not support the DRM/locked down GPS functionality required to talk to gpsOne once the firmware has been programmed for locked down GPS mode.
You can always flash back to MR1 from a custom ROM. If you already have GPS working on your custom ROM, this is probably not necessary, and you should keep your existing ROM.
A cab installer (courtsey of gc14) can be found here: http://forum.xda-developers.com/attachment.php?attachmentid=111774&d=1220913180. Note that due to a bug in the .cab file, you cannot automatically uninstall the cab, but you can just manually delete the files that it installs (see below to discover which files those include).
Otherwise, you can manually install the program, as detailed below.
The installation of my GPS adapter is a bit complicated right now, and this is a fairly beta release. I have only tested it with Google Maps. However, it should work with any GPS-enabled program that can use the standard GPSAPI.dll functions.
Note that your GPS program must be configured to use Windows-managed GPS and not an explicit COM port. My adapter module does not support the NMEA serial interface, only the "cooked" GPSAPI.dll interface. Notably, the HTC GPC Test program uses the NMEA COM port interface, and will not work with the GPS adapter.
The GPS adapter system consists of several parts under the hood:
- gpssrv.exe, a program that I wrote which understands how to decrypt GPS data from the chipset when it is operating in locked down GPS mode. This program acts as an intermediary server, through which all GPS clients can indirectly access location information.
- gpsapi.dll, a replacement for the OS-level gpsapi.dll. The replacement DLL communicates with gpssrv.exe to retrieve positioning information. This model allows multiple programs to receive GPS data at the same time, as the locked down GPS interface only supports one concurrent user.
- oemgpsOne.dll, a modified version of the Verizon oemgpsOne.dll module for communicating with the gpsOne chipset driver.
- stdgps.dll, a copy of the standard OS gpsapi.dll. Due to limitations in Windows CE, this needs to have a different name than the replacement gpsap.dll. It is otherwise identical to the shipping version of gpsapi.dll.
To install the GPS adapter, you should grab the program files at the following URL:
http://www.nynaeve.net/Skywing/xv6800gps/gpsserver.zip
Currently, there's no CAB installer, so all of the installation must be done manually. Sorry. A CAB may come later on, if someone feels like doing the work to build one for me.
After extracting the zip onto your device, follow these instructions:
1. Create a "\Program Files\GPSServer" directory on your device.
2. Copy gpssrv.exe, oemgpsOne.dll, and stdgps.dll to "\Program Files\GPSServer".
3. Copy gpsapi.dll into the directory where your GPS program resides. For example, "\Program Files\GoogleMaps".
Optionally, you can copy gpsapi.dll to your \Windows directory instead of the directory for the main .exe of your chosen GPS application. This may be more reliable, as if something loads the Windows-supplied gpsapi.dll before the custom gpsapi.dll, things will break. Doing this is slightly more complicated.
To (optionally) copy the new gpsapi.dll to your \Windows directory, you may use these steps:
1. Rename gpsapi.dll to something else (e.g. "gpsapix.dll").
2. Copy the renamed gpsapi.dll to \Windows
3. Rename the renamed gpsapi.dll in \Windows back to gpsapi.dll.
The renaming juggling is necessary as File Explorer will otherwise refuse to supersede an XIP ROM file. You can simply delete \Windows\gpsapi.dll after doing these steps to revert back to the standard Windows gpsapi.dll, without having to hard reset your device, although this will again break GPS for you.
After that, you should be able to start your GPS program (e.g. Google Maps) and receive location data. Note that being inside in a shielded location may impede the process of acquiring a GPS fix. Also, to gain the benefit of assisted GPS mode, you need to have an active cell data connection, and you should not be connected to ActiveSync or Wi-Fi.
There are some registry settings that you can create on the device to tweak how the GPS adapter functions:
REG_SZ HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\ServerPath = "Path to gpssrv.exe". Defaults to "\Program Files\GPSServer\gpssrv.exe" if not set.
REG_DWORD HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\AllowDeviceStateChange = 0/1. Defaults to 0 if not set. If set to 1, then gpsapi.dll will send device state change notifications to your GPS program. Some programs appear to have buggy GPS handling (Google Maps in particular), and will break if this option is set.
REG_DWORD HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\PDEAddress = IP address of the PDE to use. Defaults to 0x845FAE42.
REG_DWORD HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\PDEPort = Port number for the PDE. Defaults to 8888.
REG_DWORD HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\Mode = gpsOne mode to set. Defaults to 2.
REG_DWORD HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\QoSAccuracy = Relative fix accuracy requested. Defaults to 64. (Max of 255, higher values request a more accurate fix, but this may increase the time to acquire a fix.)
REG_DWORD HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\QoSPerformance = QoS performance flag. Defaults to 10. As to what effect this has on the gpsOne chipset, I'm not entirely certain yet. Debugging reveals that the value internally is called the QoS performance value, hence the name. The meaning of this value is likely buried in some gpsOne technical document that I have not found yet.
REG_DWORD HKEY_LOCAL_MACHINE\Software\Valhalla Legends\GPSServer\FixInterval = Time, in milliseconds, between requests to the gpsOne chipset for an updated GPS fix. Defaults to 1000.
The default values should work fine, so you don't need to bother with the registry values unless you really want to. Most of the defaults were gathered by researching the settings that VZ Navigator uses internally.
---
Program compatibility list:
---
- Only programs that use GPSAPI.dll and not a COM port will work with the adapter. Most GPS programs will support using GPSAPI.dll.
- Google Maps will function if you configure it such that the GPS setting is set to "Managed by Windows". This is the default setting. Also, remember to check "Use GPS" in the menu when you start Google Maps, in order to enable GPS inside of Google Maps.
- Live Search will function if you configure it such that the GPS setting is set to "GPS Intermediate Driver". This is the default setting.
- HTC GPS Tool will not work properly, as it can only use a COM port.
- If you want to use VZ Navigator after having installed the GPS adapter, then you need to place oemgpsOne.dll and stdgps.dll in \Windows.
---
Other notes:
- The GPS adater does not enable free use of VZ Navigator. It only allows third party programs that are designed to talk to the standard Windows Mobile GPSAPI.dll interface to operate on the xv6800 MR1 ROM.
- You do not need to manually start gpssrv.exe. When a program loads the custom gpsapi.dll and requests a position fix, gpssrv.exe will be automatically started on demand to power up the gpsOne hardware and start acquiring position data. It will automatically turn off the gpsOne hardware and exit on its own 60 seconds after there are no programs open that are still requesting a GPS fix.
---
Troubleshooting:
Here are some steps that you can take if you are having problems getting things to work.
1) Make sure that you're on the Verizion MR1 ROM and not a third party custom ROM, or the original release Verizion ROM.
2) Make sure that your Location setting is set to "LOCATION ON" and not "911 ONLY" in your Phone > Services > Location settings.
3) Make sure that your GPS program is configured to use Windows-managed GPS or "GPS Intermediate Driver", and not a specific COM port.
4) Give the following test program a try, to verify that GPS is working in general. The test program does not require the GPS adapter to run. If the test program can receive GPS data, then either the GPS adapter program is not installed correctly, or your GPS-enabled application is not configured properly. If the test program cannot receive GPS data, then you have a different problem (perhaps your location option is still set to 911 only?). Test program link: http://www.nynaeve.net/Skywing/xv6800gps/gpstest.zip
Reserved for future updates.
Adapter
Downloading now but awfully slow.
I will also work on a cab install for you too.
Steve
so this is just a modified version of the Verizon GPS driver?
I was wondering if it would be possible to OEM that into one of the Custom ROMS through the kitchen and making it work without a hitch (assuming this program replaces those bad .dll files)
No, it's a bunch of new code that I wrote that understands how to decrypt the obfuscated GPS data returned by the Verizon GPS driver, when the firmware is in locked down GPS mode.
Posted a new version (updated gpssrv.exe and gpsapi.dll, be sure to update both files when you upgrade).
This release fixes compatibility with Windows Live Search, adds support for caching position across API calls (required for some GPS programs), and fixes a number of bugs.
Please let me know if you have any issues with it.
Skywing said:
Note that your GPS program must be configured to use Windows-managed GPS and not an explicit COM port. .
Click to expand...
Click to collapse
I use Iguidance that requires me to choose a port. How would I tell it to use the above method? There is an option to search for a gps. Should I try to find it that way?
The gpssrv.exe file, does it need to be run at some point?
If the program can only do NMEA serial, then it's not going to work, unfortunately. Reimplementing the virtual serial port interface is much more complicated to do on my end than reimplementing the GPSAPI.dll interface.
If your program has an "automatic", "use Windows settings", or "GPS Intermediate Driver" option, those options would typically mean that the GPSAPI.dll functions instead of NMEA serial will be used (if selected).
Doesn't work...
If anyone gets this to work with Iguidance v4.0 PLEASE let me know!!
I just wanted to say great work to Skywing. I dont have any gps problems anymore, but I must commend you for coming up with solutions to help.
No real value to this post, just to say thanks to the community in general!
thundaar2000 said:
Doesn't work...
If anyone gets this to work with Iguidance v4.0 PLEASE let me know!!
Click to expand...
Click to collapse
You might try and see if you get location data returned by Google Maps, which will work if you do not configure it to use a specific COM port.
I just downloaded the adapter zip and followed the instructions to a "T" and was able to get a lock on some sat's using GPS Viewer, but spent an hour or better trying to get GOOGLE maps or LIVE Search to work and neither one could get a lock on any sat's... Any ideas?
Thanks,
GA MADMAN
Are you certain that you placed gpsapi.dll in \Windows or in the directory with GoogleMaps.exe?
Other things to check:
- Make sure location is enabled in your phone setting. I assume that you have already done this, however.
- Make sure that Google Maps has the GPS confiugration set to "Managed by Windows".
Skywing,
Thanks for posting this software. I look forward to using it. I am convinced that mine is not working because I have not replaced the file in the \Windows folder.
I cannot rename it, I am using Total Commander.
I am convinced that I cannot rename it because something is using it.
I have a pretty basic install of XV6800 with MR1. Just a couple of programs installed.
Any advice on how to rename the file?
Thanks
New build did not get put up properly; this has been remedied. Please re-grab the .zip if you had previously downloaded it before this message, and then update all of the files.
Note that you need to completely delete the gpsapi.dll in \Windows and then do the renaming trick again, otherwise, File Explorer will claim to copy the new file over, but it will actually delete it and switch to the ROM version.
kilgore19K said:
Skywing,
Thanks for posting this software. I look forward to using it. I am convinced that mine is not working because I have not replaced the file in the \Windows folder.
I cannot rename it, I am using Total Commander.
I am convinced that I cannot rename it because something is using it.
I have a pretty basic install of XV6800 with MR1. Just a couple of programs installed.
Any advice on how to rename the file?
Thanks
Click to expand...
Click to collapse
No idea about using Total Commander for it. You can use the (cumbersome, but working) steps I posted with the built in File Explorer (fexplore.exe) program. Those steps are confirmed to work.
Downloaded the app.
Works perfectly.
Thank You!
I also followed each step and my XV6800 is unable to get a GPS location in either Google maps or Live search.
THANK YOU!
Thank you for the amazing tool!!! This has my MR1 ROM running GPS fast and efficiently. Let me know if I can be of any assistance... I have access to some webhosting space and other resources to keep this project alive if needed.
Mugenakuma said:
I also followed each step and my XV6800 is unable to get a GPS location in either Google maps or Live search.
Click to expand...
Click to collapse
Can you list all of the steps that you took and what state you are in right now (e.g. which files copied where, and soforth)?

[App] Marathon - GPS measure / tracking software

Latest version: 1.3.1.5.
Changelog
Information
Marathon is a Windows Mobile application which keeps track of your movement with the help of a GPS-receiver. It’s the perfect companion for sporting activates such as running and bicycling. You can configure Marathon to announce various statistics in the headset or speaker while you’re recording. This gives you the advantage of always knowing your performance and is a great morale boost to reach your goals. You can compete with yourself by setting the goal time comparison settings to one of your previous results. This will allow the announcements to tell you exactly how many seconds ahead or behind you are. You may also use the generic time goal in case you haven’t recorded anything to compete against. The application records and displays data such as time, distance, speed and your altitude change. You can also choose to display your speed and altitude as bar or line charts, as well as showing a map of your recording. As a complement to the application, Marathon is compatible with a free online service, which allows you to see more detailed information about your performance. You can view your result on a map as well as see various rankings against other users of the service.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Features
• Announce various statistics in the headset or speaker while running.
• Compete with yourself by using a previous recording or a generic time based goal.
• Records data such as time, distance, speed, altitude change.
• Can show a graph over your speed/altitude as well as a map of the track.
• Upload the result to www.marathon-mobile.net to see more detailed info and compare your results with others. The webpage is still a work in progress, so don’t expect too much yet.
Requirements
• Windows Mobile 5.0+ Professional device.
• GPS receiver with support for Microsoft’s GPS Intermediate Driver.
• Screen resolution of at least 240x240 pixels.
Download
http://www.marathon-mobile.net/Download/DownloadLatestVersion
neat app- hope this helps to get you more coverage since I think the app deserves it: http://www.fuzemobility.com/marathon-gps-trainer-released/
Is it possible to also make it save the track as kml so it can be viewed in google earth?
biohazardousguy said:
Is it possible to also make it save the track as kml so it can be viewed in google earth?
Click to expand...
Click to collapse
Hello!
would this run on my diamond (640 x 480)?
+1 for google earth - support!
A few questions:
1. Will this work on a VGA, e.g., a Fuze?
2. Does it track in miles or just kms?
3. Will it work for cycling, e.g., mph, not just mins/mile?
I currently use GPSCycleComputer because it works for both running and cycling, but this app has some nice new features.
seriously guys, are you even reading the first post?
I’ve tested it on my HTC Touch Pro
Click to expand...
Click to collapse
Touch Pro = VGA
It works on the Fuze/Diamond at VGA: http://www.fuzemobility.com/marathon-gps-trainer-released/
I'll let the author respond to changes to mph instead of km.
bugsykoosh said:
neat app- hope this helps to get you more coverage since I think the app deserves it: http://www.fuzemobility.com/marathon-gps-trainer-released/
Click to expand...
Click to collapse
Thank you!
biohazardousguy said:
Is it possible to also make it save the track as kml so it can be viewed in google earth?
Click to expand...
Click to collapse
Im considering to implement some kind of map integration, so i'll look into it.
drjim said:
A few questions:
1. Will this work on a VGA, e.g., a Fuze?
2. Does it track in miles or just kms?
3. Will it work for cycling, e.g., mph, not just mins/mile?
I currently use GPSCycleComputer because it works for both running and cycling, but this app has some nice new features.
Click to expand...
Click to collapse
bugsykoosh said:
It works on the Fuze/Diamond at VGA: http://www.fuzemobility.com/marathon-gps-trainer-released/
I'll let the author respond to changes to mph instead of km.
Click to expand...
Click to collapse
I haven’t tried it on a bike, but I don’t see why it wouldn’t work since it works with walking, running and cars. You can also select different methods, such as “Run”, “Bike” and “Ski” when you save your result to keep track of your travel method.
I've implemented the following units, you can change between them using "Menu->Settings->Unit":
km/h
m/s
mph
min/km
I'll add more if someone find it usefull. Would min / mile be of any use?
I would love you to add minutes per mile as that is the standard measure for running speed, so it would be useful for running.
Thanks.
Very well done!
Hi Ooije,
I did a first test of your app and I'm very impressed about it's features and how well it works for the very first beta! On my Touch Pro, it did find my current position very fast and the distance measured is exactly what www.gpsies.com tells me about it. Uploading to your homepage also worked well and is such easy to do. Congratulations and thank you very much!
Of course although it is already very functional, there are some feature requests:
- I did not dare to switch off the device at my first test, because I did not want the GPS receiver being stopped and used S2U2 as screen lock. Having an option to switch off the display and locking the device (as in GPSCycleComputer) would be a great thing.
- Having an option for specifying the GPS settings would be fine. On the Touch Pro it connects to the intermediate driver directly and works well, but actually I'd like to have it connected to GPSGate on another Port.
- For the running pace (min/km), it shows seconds as percent of minutes. Having it as mm:ss (that is 7:54 instead of 7,9) would be appreciated. BTW:
drjim said:
(...) minutes per mile as that is the standard measure for running speed (...)
Click to expand...
Click to collapse
Here in Europe it is min/km, which is already implemented... ;-)
- I didn't try that audio feature yet (BTW: Do you use earphones?), but I'm thinking that it could also be useful if you're on an unknown route to have some very basic navigation features. That is, importing a route (on www.gpsies.com there are a lot of it) and at least being told if you're leaving that route. For more information you can have a look on your display then, which might show the planned vs. the actual route.
- I'm interested in having a plot "pace over time". I'm not quite sure whether GPS data are such accurate (especially these qualcomm receivers), but maybe there can be done some filtering in order to have good results.
- and of course exporting the track as GPX, KML or whatever (hey, there is GPSBabel to translate it ;-) ) would be great
Last but not least, there is a small flaw having +infity as speed after loading or saving a track - maybe it's currently there for debugging purposes (see screenshot attached)
Cheers
Matzix
PS: If you want/need a german translation, please let me know!
drjim said:
I would love you to add minutes per mile as that is the standard measure for running speed, so it would be useful for running.
Thanks.
Click to expand...
Click to collapse
Alright, if that’s what you use in US I’ll put it on top of my TODO-list. Thanks for the feedback.
Matzix said:
Hi Ooije,
I did a first test of your app and I'm very impressed about it's features and how well it works for the very first beta! On my Touch Pro, it did find my current position very fast and the distance measured is exactly what www.gpsies.com tells me about it. Uploading to your homepage also worked well and is such easy to do. Congratulations and thank you very much!
Of course although it is already very functional, there are some feature requests:
- I did not dare to switch off the device at my first test, because I did not want the GPS receiver being stopped and used S2U2 as screen lock. Having an option to switch off the display and locking the device (as in GPSCycleComputer) would be a great thing.
- Having an option for specifying the GPS settings would be fine. On the Touch Pro it connects to the intermediate driver directly and works well, but actually I'd like to have it connected to GPSGate on another Port.
- For the running pace (min/km), it shows seconds as percent of minutes. Having it as mm:ss (that is 7:54 instead of 7,9) would be appreciated. BTW:
Here in Europe it is min/km, which is already implemented... ;-)
- I didn't try that audio feature yet (BTW: Do you use earphones?), but I'm thinking that it could also be useful if you're on an unknown route to have some very basic navigation features. That is, importing a route (on www.gpsies.com there are a lot of it) and at least being told if you're leaving that route. For more information you can have a look on your display then, which might show the planned vs. the actual route.
- I'm interested in having a plot "pace over time". I'm not quite sure whether GPS data are such accurate (especially these qualcomm receivers), but maybe there can be done some filtering in order to have good results.
- and of course exporting the track as GPX, KML or whatever (hey, there is GPSBabel to translate it ;-) ) would be great
Last but not least, there is a small flaw having +infity as speed after loading or saving a track - maybe it's currently there for debugging purposes (see screenshot attached)
Cheers
Matzix
PS: If you want/need a german translation, please let me know!
Click to expand...
Click to collapse
You should be able to switch of the device since it keeps the GPS receiver and sound devices running (unless you mixed with the power options). But I guess that could be useful in combination with the ability to read from a NMEA-data directly from a COM port. Unfortunately this is not my highest priority right now, but I might look into it.
Showing pace as m:ss instead of a decimal number might be handy. If that’s what people expect when using the min/km unit I’ll definitely change. What would the expected audio announcement be for such a metric? “three point forty five” could mean either 3.45 (as a decimal number) or 3 minutes and 45 seconds.
The audio feature works with both speaker and headset, but if you’re listening to music at the same time you probably don’t want 100% volume in your music player.
Import/Export seems to be a requested feature, so I’ll look in to a few formats and see which fits best. Announcing when you’re too far away from the expected route is a great idea. I’ll put that on my TODO-list.
There are bar charts (5, 10, 15 or 25 bars) as well as a linear diagram built-in to plot the speed. Just select “Menu->View->Speed” and “Menu->Settings->Diagram Type->…” to view them. The diagram is not inverted when min/km is the selected unit, but that shouldn’t take so long to implement.
Since your speed is 0 m/s it will take you infinitive time to move 1 km, so it’s kind of correct . But I guess I’ll replace it with a ∞ (infinitive symbol) to make it look better and less confusing.
Thank you for all your feedback; it’ll definitely help me improve the application. A translation would be nice, but I think it’s best to wait until I have a more stable set of localized strings in the application. It’s hard to keep the English / Swedish translations in sync even when im translating between them myself. So I’ll keep in touch.
Looks great and though i do now own a pocket pc anymore it would be
awesome if you could contact me. I am the head of the urban sports
guerrilla at www.endorphinum.de
Maybe we can work out a system that allows your users to upload their
activity right to endorphin !?
greetings,
Carlos
Not working at all
Hello, this is my feedback:
though the program starts ok (I can see the main interface Window) the GPS is always in "starting..." but never starts...
I tried to start first Tomtom navigator, gps starts, close tomtom and start Marathon but... no way.... "starting gps..."
I see no options to configure it...
My phone is a Windows Mobile 6.0, QVGA resolution, HTC clone (amsam M810)
Thanks.
Test with a Touch HD
First start I got no GPS conection. After softreset, I got the GPS lock after a couple of secods. Then I started for a test run which was fine on the fiorst Minutes with havin a short voice anouncement every Minute. after 5 Minutes the system stopped talking to me and after 25 Minutes the SW stopped completly. So I will wait for the next version to give it a next test. so far the SW is already on a good way, but also not very reliable.
I released a minor update today. Here are the news in beta 1.0.0.2:
Fixed a bug with the start button when the GPS-device was started before the application.
Added support for minutes / mile.
A few other small fixes.
I've also updated the website with Google maps integration, some rankings based on distance and the ability to filter by transport method.
Bibifrine said:
First start I got no GPS conection. After softreset, I got the GPS lock after a couple of secods. Then I started for a test run which was fine on the fiorst Minutes with havin a short voice anouncement every Minute. after 5 Minutes the system stopped talking to me and after 25 Minutes the SW stopped completly. So I will wait for the next version to give it a next test. so far the SW is already on a good way, but also not very reliable.
Click to expand...
Click to collapse
That's strange, I've had the application running over a night without any problems (indoors, so no GPS signal in that test). Did you turn the display of or kept it on all the time?
sergutel said:
Hello, this is my feedback:
though the program starts ok (I can see the main interface Window) the GPS is always in "starting..." but never starts...
I tried to start first Tomtom navigator, gps starts, close tomtom and start Marathon but... no way.... "starting gps..."
I see no options to configure it...
My phone is a Windows Mobile 6.0, QVGA resolution, HTC clone (amsam M810)
Thanks.
Click to expand...
Click to collapse
The latest release fixes a bug when the GPS was started before the application starts, but I don't think this is the issue in your case. Is your GPS set to be managed by WinMo automatically (Settings->System->External GPS->Access->Manage gps automatically )?. Marathon uses Microsoft GPS intermediate driver, so the OS has to manage the GPS.
I've bought a Bluetooth GPS to play around with, so hopefully it will help me increase the compability with different kind of hardware. By the way, how is your GPS set up in TomTom?
Thanks for the feedback (both of you). It's very valuable since it's kinda hard to fix problems without knowing of there existence .
Cool, just downloading it now.
Any chance you can integrate ApptoDate so that updates are added automatically? Thanks
Regards
"That's strange, I've had the application running over a night without any problems (indoors, so no GPS signal in that test). Did you turn the display of or kept it on all the time? "
I tested the system first with switching to standby (and it does not talk to me) after that I just shut of the screen and then it was talking to me for a couple of Minutes and after 25 Minutes it failed completly. I will download the new version and give it a try on my next run tomorrow.
I will post the result.
quick test on Verizon Omnia WQVGA
I need to start gps before lauch program
nice idea
Hello,
I just downloaded and installed.
Also tested outdoors and jogging
I started Marathon but no way. (waited 10 mins, enough right?) GPS status was always "starting..."
Then I started GPS device from 2 other apps. It did.
Both apps worked and located me in the World.... then closed and opened Marathon
Does not work.
Answering your questions:
yes, GPS is managed by the OS. Option is checked in Settings->System->External GPS->Access
GPS config is: COM1 Baud 9600
ps: what is missed in your software (I think) is the GPS config.
Other software have it.
Thanks a lot.
----------------------
The latest release fixes a bug when the GPS was started before the application starts, but I don't think this is the issue in your case. Is your GPS set to be managed by WinMo automatically (Settings->System->External GPS->Access->Manage gps automatically )?. Marathon uses Microsoft GPS intermediate driver, so the OS has to manage the GPS.
I've bought a Bluetooth GPS to play around with, so hopefully it will help me increase the compability with different kind of hardware. By the way, how is your GPS set up in TomTom?
GLOC said:
Cool, just downloading it now.
Any chance you can integrate ApptoDate so that updates are added automatically? Thanks
Regards
Click to expand...
Click to collapse
Well, I could at least append it to my TODO-list ^^.
Bibifrine said:
"That's strange, I've had the application running over a night without any problems (indoors, so no GPS signal in that test). Did you turn the display of or kept it on all the time? "
I tested the system first with switching to standby (and it does not talk to me) after that I just shut of the screen and then it was talking to me for a couple of Minutes and after 25 Minutes it failed completly. I will download the new version and give it a try on my next run tomorrow.
I will post the result.
Click to expand...
Click to collapse
I assume you haven't changed the settings in "Menu->Settings->Power Management" (at least the first two checkboxes should be checked) and installed the application on your device and not on a memory card? I would really appreciate if you could change the logging level to verbose ( Menu->Settings->Diagnostic Logging), record for a minute or two and then send me the log file in /Program Files/Marathon/Logs so I could investigate further.
megapinky said:
quick test on Verizon Omnia WQVGA
I need to start gps before lauch program
nice idea
Click to expand...
Click to collapse
Thanks for the screenshots. The wrong skin is loaded since your bottom bar is 10 pixels higher than the one built into WM. I'll improve the skin loading algorithm a bit so the correct skin will be loaded. Where can I get hold of the bottom bar you're using so I can make sure it works correctly before releasing an update?
sergutel said:
Hello,
I just downloaded and installed.
Also tested outdoors and jogging
I started Marathon but no way. (waited 10 mins, enough right?) GPS status was always "starting..."
Then I started GPS device from 2 other apps. It did.
Both apps worked and located me in the World.... then closed and opened Marathon
Does not work.
Answering your questions:
yes, GPS is managed by the OS. Option is checked in Settings->System->External GPS->Access
GPS config is: COM1 Baud 9600
ps: what is missed in your software (I think) is the GPS config.
Other software have it.
Thanks a lot.
----------------------
The latest release fixes a bug when the GPS was started before the application starts, but I don't think this is the issue in your case. Is your GPS set to be managed by WinMo automatically (Settings->System->External GPS->Access->Manage gps automatically )?. Marathon uses Microsoft GPS intermediate driver, so the OS has to manage the GPS.
I've bought a Bluetooth GPS to play around with, so hopefully it will help me increase the compability with different kind of hardware. By the way, how is your GPS set up in TomTom?
Click to expand...
Click to collapse
The "Starting GPS Device..." should take less than a second, it says "No Signal" when there is no GPS fix. So the problem is that the GPS device isn't detected at all. Do you usually have to configure applications before using your device or do other software detect your GPS automatically? Currently Marathon uses the GPS intermediate driver which is supposed to increase the abstraction level so I don't have to parse the NMEA strings from the COM-port, but I guess I have to take a look at other alternatives.
Thanks for all the info!

[Q] Serial (USB) GPS on Vegan -- so close...

I know there have been some general questions about this, but I wanted to share what I've done and see if anyone can help get over the last hump. I have a USB GPS (GR-110 I got for next to nothing from Geeks awhile back). Running VEGAn 5.11 + supplements + Pershoot kernel.
So here's what I have working:
1) Plug in USB, get /dev/ttyUSB0. Woot! Thanks Pershoot!
2) Use stty to set the baudrate to 4800 (stty -F /dev/ttyUSB0 4800)
3) cat /dev/ttyUSB0 dumps out NEMA strings. Woo hoo! $SPGSV tells me I have 12 birds in view.
4) Now at this point, if you HAD to you could write a GPS faker like many of the bluetooth ones do. I don't know why none of them don't already have options for an arbitrary character device but if they did we'd be done here.
5) On the other hand, you know a built in GPS card would still be NEMA and still look like an RS232 port so.... turns out that's a property ro.kernel.android.gps. You can set this at the command line, but I suspect that the Android stack looks for GPS on start up and if it doesn't find it, that's that. So you edit build.prop to put in: ro.kernel.android.gps=ttyUSB0 [from what I can read it doesn't want /dev/ in front of it]
6) I do not know if the Android code sets the port to 4800 baud or not. In fact, it could be that it wants it at a different baud rate but I have no idea what that baud rate would be. So I decided to get in early on the boot process and make a few changes. If you look at my other posts, I have added an rc.local that runs right at the end of init.rc but is in "user space" (not overwritten on each boot). So I added this to the start of rc.local (important because my rc.local blocks later to wait for the sdcard mounts):
#gps
if [ -c /dev/ttyUSB0 ]
then
chmod 666 /dev/ttyUSB0
stty -F /dev/ttyUSB0 4800
fi
7) No joy. The buad rate and permissions are set, so I know the rc.local is running. I can stream data out of the GPS raw but Android just isn't seeing it.
8) I theorized that maybe Android is checking for GPS before I am running my script. To test that I used LCD Density changer to restart the Android stack. This is like a boot, but the Linux isn't rebooted. No difference.
9) Another theory would be Android expects its GPS at a different baud rate and is setting it.
10) Is there some Android service required that is disabled or just not started maybe?
I feel like I am soooooo close..... Any ideas?
Hi wd5gnr,
I've been working on something very similar on the android powered scroll tablet but instead using an internal serial port we've identified.
Made no progress is making android accept the nmea stream as its own internal gps (using ro.kernel.android.gps) so have started to write an android program similar to the BT GPS apps where it reads the serial port, parses out $GPGGA and then uses mock locations to update the location system. I'm at the point of splitting the identified string into its components.
While I know this isn't the cleanest of hacks but it 'should' work, i've built it from the SerialPort.sample code so you can change the serial port and baud rate in the options - it hopefully will work on any android system.
Will keep you updated on my progress
James
Oh, at least i find a post with people working on it...
First, i have an Advent Vega, that is similar to Gtab.
I make it work, but with time it crash.
My steps:
1) Do the same that the first post, get ttyUSB0, change baudrate, modify ro.kernel.android.gps...
2) In vega we have 3 libgps... the default, one for integrated ericsson 3g/gps and one for huawei ones. This integrated are optional and my tablet doesnt have, but i can remane any of the to libgps.so and use them. Anyway, with default may work, but i get it working with huawei one.
3) You need to activate gps in settings (if you have gps greyed in location settings, can use a widget, like power widget).
4) To test i used gpstest app, so once you get nmea data in ttyUSB0, activate gps with widget and start gpstest. Maybe you dont get data (i dont), so come back to terminal and with stty ask the port for the baudrate (dont remember the command). In my case it has 9600 baudrate, so need a aplication in windows to change gps usb baudrate to 9600 (search in the windows drivers of your usb gps)
5) Once changed in windows, i come back to android and change stty command to the correct baudrate (like i said 9600), and redo the steps (cat ttyUSB0, activate gps and launch gpstest)
AND GET DATA... but some time after it crash the full tablet...
No more time to test it, but it's in my to-do list.
I dont know if i explain it good, but you can ask anything.
Anyway an app that can choose which port to listen to will be much better.
Corvus.
jamescoxon said:
Hi wd5gnr,
I've been working on something very similar on the android powered scroll tablet but instead using an internal serial port we've identified.
Made no progress is making android accept the nmea stream as its own internal gps (using ro.kernel.android.gps) so have started to write an android program similar to the BT GPS apps where it reads the serial port, parses out $GPGGA and then uses mock locations to update the location system. I'm at the point of splitting the identified string into its components.
While I know this isn't the cleanest of hacks but it 'should' work, i've built it from the SerialPort.sample code so you can change the serial port and baud rate in the options - it hopefully will work on any android system.
Will keep you updated on my progress
James
Click to expand...
Click to collapse
I've thought about this too. Should be easy. Would be even easier if we had RxTx ported to this tablet. I saw someone has done this, but it is very specific to hardware and I haven't looked at what that would take. But I imagine just opening /dev/ttyUSB0 ought to work. I've been known to write a little code myself (http://www.ddj.com/embedded) and if I ever find time to get started on this I'll start it as a google code project and invite you ;-)
corvus said:
Oh, at least i find a post with people working on it...
2) In vega we have 3 libgps... the default, one for integrated ericsson 3g/gps and one for huawei ones. This integrated are optional and my tablet doesnt have, but i can remane any of the to libgps.so and use them. Anyway, with default may work, but i get it working with huawei one.
.
Click to expand...
Click to collapse
The only GPS lib I see in VEGAn 7 is /lib/hw/gps.goldfish.so
Goldfish is an emulator I think, so that is not promising.
You mention 9600 baud -- are you saying that the system sets the port to 9600 so you have to set the GPS to 9600 to match?
wd5gnr said:
I've thought about this too. Should be easy. Would be even easier if we had RxTx ported to this tablet. I saw someone has done this, but it is very specific to hardware and I haven't looked at what that would take. But I imagine just opening /dev/ttyUSB0 ought to work. I've been known to write a little code myself and if I ever find time to get started on this I'll start it as a google code project and invite you ;-)
Click to expand...
Click to collapse
Hey,
I've been using android-serialport-api (google it, i can't post links yet) as my access to the port. My current code (its very basic) is built off the serial console sample. In its current state it access the chosen serial port, extracts the $GPGGA string, parses it and then converts it from DDmm.mmm to DD.ddd. I'm now at the stage of posting it to mock locations - just need to do some extra reading on the subject. This really is just a proof fo concept app as for example it doesn't run in the background but i felt that all that can come in the future.
James
wd5gnr said:
The only GPS lib I see in VEGAn 7 is /lib/hw/gps.goldfish.so
Goldfish is an emulator I think, so that is not promising.
You mention 9600 baud -- are you saying that the system sets the port to 9600 so you have to set the GPS to 9600 to match?
Click to expand...
Click to collapse
Yes, you must have a libgsp.so for android to detect the gps.
And yes, depending the library used, the baudrate must set to 9600 or other.
Corvus.
jamescoxon said:
Hey,
I've been using android-serialport-api (google it, i can't post links yet) as my access to the port. My current code (its very basic) is built off the serial console sample. In its current state it access the chosen serial port, extracts the $GPGGA string, parses it and then converts it from DDmm.mmm to DD.ddd. I'm now at the stage of posting it to mock locations - just need to do some extra reading on the subject. This really is just a proof fo concept app as for example it doesn't run in the background but i felt that all that can come in the future.
James
Click to expand...
Click to collapse
Once you get a working app, please send me a priv so i can help you testing it...
Thanks.
Corvus.
so has anyone got usb gps to work yet?
On the malata site. there is a t11 rom for Android 2,2 which calls the Huawei GPS
http://www.malata.com/cn/downloadlist.aspx
T11 Tablet PC May 18, 2011 firmware (support plug-in 3G modem Huawei E261 Unicom)
Take a look at this:
http://forum.xda-developers.com/showpost.php?p=17385039&postcount=15
but before you use this appliction, you must run stty -F /dev/ttyUSB0 -ispeed 4800 (baudrate and port base on your device). Everything fine and fix without 1 second!

Android Cluster Display Project - Relay Navigation, Music Info, OBD, Caller ID, more

Background:
- Presently there doesn't seem to be a method of relaying information from our Android head units to OEM Instrument cluster displays (turn directions, speedcam alerts, OBD/Torque info, callerid, message alerts, etc.).
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
- I've begun working on a system to relay and display such information from an android head unit to the instrument cluster display.
- As I have little/no development experience I've built current functionality using Tasker and associated plugins (Notification Listener, AutoRemote, etc.).
How it Works:
1. Turn by Turn Directions:
- When navigating with Google Maps a persistent notification is created in the notification drawer. This notification updates with simplified navigation information (next turn direction, distance to next turn, additional description [e.g. turn right onto random street], time/distance to destination, estimated arrival time).
-> The Tasker plugin 'Notification Listener' is able to track and extract information from this notification in real time.
-> A Tasker task utilises pattern matching to determine the main navigation action (Right Turn, Left Turn, Straight, Merge, U-Turn, Roundabout, etc.).
-> According to the pattern matching, IF then ELSE statements initiate additional actions, splitting the notification text to set the relevant parts of the text into different variables.
-> These variables are either directly displayed in a Tasker Scene, or their contents alter other elements (visibility of scene elements, Turn Icons).
-> One variable dictates the Turn Icon displayed in the Tasker Scene. For Example: When a right turn is detected by pattern matching, a variable is set to the file path of a right turn icon image. The same variable is changed according to the next turn direction. A single image in Tasker is set to display the image of that variable (and thus shows the next turn icon).
Current Development Status:
WORKING
a. Recognises and shows: - When no destination is entered in Google Maps - Message to continue onto a road to begin journey - Right & Left Turn icons - Straight icon - U-Turn icon.
b. Distance to next turn.
REQUIRED
a. Icons and messages to indicate: - Roundabout exits - Merge onto... - Arrival notification - Other unusual turn/navigation notifications.
b. Time to destination (I tried to integrate this but the extra split operation seemed to to increase lag in display of more important information such as distance to the next turn). I'm sure there's a good workaround for this.
c. Additional turn information text (e.g. turn right onto random street). This is an easy task, will implement soon.
d. Improvement of navigation information update frequency - Presently when there are frequent updates (e.g. when approaching a next turn at high speed the distance to next turn changes more frequently) there can be a minor lag between the next turn information in google maps (and notification) and its display in the Tasker Scene. Generally it's working fine though.
2. Speed Camera Alerts:
- Speed Camera information is loaded onto an app called 'Speed Trap Pro' (found on Play Store).
--> A Tasker plugin named 'Auto Speed Trap' alters Tasker variables (Distance to Camera, Camera type, etc.) when approaching a Speed Camera (GPS based).
--> A Tasker task is set to recognise when user is approaching a Speed Camera and temporarily change the image path of the turn indicator to a Speed Camera icon in the Tasker Scene (until speed camera is passed). Distance to the Speed Camera is also displayed.
WORKING
All implemented.
REQUIRED
Text showing distance to the next speed cam does not update frequently enough/smoothly.
3. Music Player Information:
- When a song is changed on the head unit, artist and song information can be temporarily shown in the area that usually shows next turn text (e.g. instead of 'turn right onto random street' it would show 'Led Zeppelin - Stairway to Heaven').
WORKING
Working.
REQUIRED
Could be developed to scroll song information when either the Artist or Song name is too long to fit on the screen.
4. Caller ID:
- This should display the caller ID of incoming calls (in the same area as the music player information).
- I'm not sure whether this information could be drawn directly from the head unit or if it would have to be relayed from the user's phone to the instrument cluster display client (described below).
- This can rely on Notification Listener and AutoRemote.
- when incoming call —> center media control answers.
NOT IMPLEMENTED
5. Message Alerts:
- This should display contact information and message text for new messages (SMS, Whatsapp, etc.).
- should save last 5 messages (only received during driving) —> allow scroll through under messaging tab —> allow reply (long press center button).
- Similar challenges to Call ID.
NOT IMPLEMENTED
6. OBD Information:
- This would draw real time vehicle information from a bluetooth OBD dongle and display it on the cluster display (e.g. 0-60 times, fuel consumption, etc.).
- Torque is a great Android app that interprets information from OBD data.
-> Presently there is no dedicated Tasker plugin for Torque, or other OBD apps, however a solution might be found in Torque's API:
http://torque-bhp.com/wiki/PluginDocumentation
-> Preferably Torque OBD information would be updated in real time.
7. Radar Detector Integration:
- I own a Valentine V1 Radar Detector. The Valentine V1 is able to connect to Android over Bluetooth (SPP).
- There is an API. It would be nice to integrate radar detection alerts into the Tasker Scene’s UI (like with regular speedcam alerts).
- Alternatively there is an app called YaV1 that can serve heads up alerts.
7. USER INTERFACE:
- Bluetooth or CANBUS steering wheel controls can be used to navigate the interface.
(e.g. http://www.satechi.net/index.php/satechi-bluetooth-button-series-media-button).
- These would be remapped to Tasker tasks to run different actions according to which screen is in view.
- Below is my proposed UI/UX:
- The interface requires implementation/ improvement and can be adapted for your particular cars.
8. SECOND DISPLAY SOFTWARE:
- All previous functions are presently running locally (i.e. on the device on which Google Maps Navigation/ Music Playing/ Calls/ Messages are taking placed [the head unit]).
- This information must be relayed to the console display.
- My present plan is to relay this information to a second android phone/client.
-> This could be done using the Tasker plugin 'AutoRemote'. AutoRemote is able to send Tasker variables from one device to another. This can work over Bluetooth, a local WIFI network, or online.
- It is important to devise this system in a way that will minimise latency between triggering of notifications on the Headunit or user phone, and their appearance on the instrument cluster display. This is particularly important for navigation information.
-> In order to achieve this, as few as possible variables should be sent from the head unit. Any actions that increase the number of the variables should take place on the client device rather than the head unit.
There are 2 ways in which this can be implemented (regarding navigation turn directions):
a. Google maps notifications can be extracted by the head unit, set as Tasker variables and sent to the client Android's Tasker over Bluetooth/Wifi.
-> Split actions will be applied on the client device.
-> The scene will run on the client android according to resultant variable information.
ADVANTAGES: - Less requirements from the client device.
DISADVANTAGES: - Latency may not be acceptable.
b. When a destination address is set in Google Maps its coordinates are set in a log file (I think! If not then the address can be processed into coordinates by a geocoder). These coordinates can be sent from the head unit to the client Android and set to launch Google Maps navigation on the client with the same destination as the head unit.
ADVANTAGES: - Many less variables will need to be sent by AutoNotification - Latency should be far lower.
DISADVANTAGES: -The client device will need to have a functioning GPS, to be positioned in a place where it functions (less obstructions), and to have a functioning internet connection.
THOUGHTS: I would tend towards option B.
SYSTEM MAP:
Below is a proposed system map. One potential problem is that there are multiple devices (OBD + Radar detector + Head Unit > Client Connection (AutoRemote)) connecting to the same device over the same Bluetooth profile (SPP). This doesn’t work for all devices - will have to test to find out.
An alternative method would use a 3g WIFI Modem to provide data to the devices and to transfer data over Autoremote. This would free the Head Unit > Android Client connection from relying on the SPP Bluetooth Profile. The OBD dongle could then be connected to the Head Unit, and the Radar detector connected to the Android Client.
8. SECOND DISPLAY HARDWARE:
- Once head unit information has been transferred and processed into a Tasker Scene on the Android client, it needs to be displayed on the instrument cluster display.
-> This can be implemented in 2 ways:
1. Replace the existing instrument panel display with a small display that can connect to an android phone/raspberry pi over MHL/Slimport/HDMI/VGA.
-> This is the smallest display I could find with a tested HDMI input. It is larger than the OEM cluster display on a VW so may cause problems:
http://www.buydisplay.com/default/er-tftv043-4
2. Output CanBus Information to the existing display (seems like it may be possible using this adaptor:
https://www.kickstarter.com/projects/etx/canbus-triple-the-car-hacking-platform).
THOUGHTS: I have decided to implement option A. This is not the smoothest solution as it requires replacement of instrument cluster display, but as I don't have any development experience, this is simply what I am able to achieve.
Where Do We Start:
1. Let me know your thoughts on the project.
2. I've attached Tasker project files and icons:
a. Import Tasker Project: https://dl.dropboxusercontent.com/u/4719739/Car_Present.prj.xml
b. Download icons onto your device: https://dl.dropboxusercontent.com/u/4719739/icons.zip
c. Change 'DIRECTIONWATCH' and 'SPEEDCAMIMAGE' variables: Set 'Notification Listener' Task variables to Right, Left, Straight, U-Turn icons, ' No Destination' to a vehicle icon of your choice (mine is for VW), 'Speedtrap' to the Speedtrap icon and 'Cancel Speedtrap' to the blank PNG. link the location you place each of the attached icons (different turns, vehicle logo, speedtrap, blank png for cancel speedtrap).
Install the following apps and Tasker plugins:
- Notification Listener: https://play.google.com/store/apps/details?id=com.balda.notificationlistener&hl=en
- Speed Trap Pro - optional if you want speed camera alert: https://play.google.com/store/apps/details?id=com.balda.speedtrappro
- Auto Speed Trap - as above: https://play.google.com/store/apps/details?id=com.balda.autospeedtrap
d. Launch the task 'Scene'.
e. Enter a destination and begin navigation in Google Maps.
- Let me know how it works.
- Feel free to discuss and chip in however you can.
Very cool project mate :good:
I dont have a cluster display or I would definitely be giving this a go!
Extremely cool idea - once I get everything else up and running on the unit as I want it, I'll definitely try this!
Hi,
Nice idea but it will be kind of diificult. I was also thinking myself that that can be acchived because we have all the information. But sending them back to the cluster is the hard part.
My Experience : VW cluster, Huifei with CanBus support.
There is already the needed function in one of the MTCA pps to send some information.
In my cluster, I can see : Music track / length, "Video" if a video is played, SD Card xhen music comes from SD Card, Radio frequency .....
The apps, depending on your choice in the Settings (Canbus settings) is sending information trought the MCU I think.
There are some functions like SendRadio(), SendMusic().....
That is the bad news because if we want to add some custom info, maybe we can't because we would have to modify also MCU img.
I've seen on other forums some guys successfully displaying all kind of information on their cluster, but it was a more hardware specific device (CANBUS + RS232.....).
Definitely possible, but a lot of work.
dc5daft said:
Very cool project mate :good:
I dont have a cluster display or I would definitely be giving this a go!
Click to expand...
Click to collapse
Thanks. The other option is to use it on a second phone and tape it infront of the steering wheel. Would still function as a second display for all vital information.
Nova8316 said:
Hi,
Nice idea but it will be kind of diificult. I was also thinking myself that that can be acchived because we have all the information. But sending them back to the cluster is the hard part.
My Experience : VW cluster, Huifei with CanBus support.
There is already the needed function in one of the MTCA pps to send some information.
In my cluster, I can see : Music track / length, "Video" if a video is played, SD Card xhen music comes from SD Card, Radio frequency .....
The apps, depending on your choice in the Settings (Canbus settings) is sending information trought the MCU I think.
There are some functions like SendRadio(), SendMusic().....
That is the bad news because if we want to add some custom info, maybe we can't because we would have to modify also MCU img.
I've seen on other forums some guys successfully displaying all kind of information on their cluster, but it was a more hardware specific device (CANBUS + RS232.....).
Definitely possible, but a lot of work.
Click to expand...
Click to collapse
True. The cluster part is most difficult (and beyond my abilities). For the first stage I intend to connect an old phone to an external 3inch lcd and place it instead of the cluster display.The old phone will act as the client.
On a vw its pretty easy to take apart the cluster. Only problem might be if the lcd doesn't fit in place of the cluster display. Will take it apart soon to check.
One part I could use help with is the OBD/Torque data extraction. Has anyone managed to interface with torque that could extract data to Tasker?
I'll upload an updated version of the navigation and interface later today.
As Nova8316 says, this is supported already on the MTCB head units via the "Car service" app, which appears or disappears depending on what CAN Bus setting the MCU is on, support is a bit patchy - some cars are not supported at all and some only partially, mainly the most popular cars are supposted VW Group for instance.
The MCU basically talks to the CAN Bus system via the CAN Bus high/Tx and CAN Bus Low/Rx lines and/or the CAN Bus adapter. Would it not be easier to try and make this work for your car/more cars by trying to add functionality to the existing set up ?
typos1 said:
As Nova8316 says, this is supported already on the MTCB head units via the "Car service" app, which appears or disappears depending on what CAN Bus setting the MCU is on, support is a bit patchy - some cars are not supported at all and some only partially, mainly the most popular cars are supposted VW Group for instance.
The MCU basically talks to the CAN Bus system via the CAN Bus high/Tx and CAN Bus Low/Rx lines and/or the CAN Bus adapter. Would it not be easier to try and make this work for your car/more cars by trying to add functionality to the existing set up ?
Click to expand...
Click to collapse
Hi, sorry for super late reply. Busy months with work.
1. Some of the features seem to be supported by the Car Service app, but not all. Are navigation directions supported? This is most important for me.
2. Additionally, for me at least, my cluster display is old and doesn't support all functionality. This implementation would allow for a visually appealing display that supports infinite customisation (adding speed camera alerts other).
3. I'd love to add the rest of the features via support of the existing display, I'm not a programmer, my abilities are presently limited to Tasker.
- If anyone wants to help I can upload my latest implementation soon. I'm working on adding simple call and message alerts.
I've decided to trigger Google Maps on the secondary display connected android device, rather than passing turn notifications one by one over Bluetooth. The way it should work is that when you enter a destination into Google Maps on the Head Unit --> the destination information will automatically be extracted and sent via Tasker and Autoremote to the secondary display connected android device.
--> My problem here is that I haven't been able to extract current destination information from Google Maps. Can anyone suggest a way of doing this?
I've tried a suggestion to run the following script:
sqlite3 /data/data/com.google.android.apps.maps/databases/da_destination_history "select dest_address from destination_history order by time desc limit 1;"
Unfortunately this script seems dated as I can't find the database da_destination_history on the latest iteration of Gmaps. Instead the following databases are found under google maps:
ue3.db-journal, ue3.db, gmm_myplaces.db, gmm_storage.db, gmm_storage.db-journal, gmm_offline{some long number].db-wal, gmm_offline{some long number].db-shm, some more..
Out of these files, gmm_storage.db does seem to contain the current destination address, but I can't find a way of identifying it as such within the file, thereby allowing operations to recognise and extract the destination address.
Any help would be greatly appreciated.
Thanks.
I guess if you dont have the skills to code and your car display doesnt support what you want then this is the way to go.
typos1 said:
I guess if you dont have the sills to code and your car display doesnt support what you want then this is the way to go.
Click to expand...
Click to collapse
I've got a VW Passat 2012 and would gladly help with any testing needed. Not sure how helpful I can be with development but can try stuff out.
Nova8316 said:
Hi,
Nice idea but it will be kind of diificult. I was also thinking myself that that can be acchived because we have all the information. But sending them back to the cluster is the hard part.
My Experience : VW cluster, Huifei with CanBus support.
There is already the needed function in one of the MTCA pps to send some information.
In my cluster, I can see : Music track / length, "Video" if a video is played, SD Card xhen music comes from SD Card, Radio frequency .....
The apps, depending on your choice in the Settings (Canbus settings) is sending information trought the MCU I think.
There are some functions like SendRadio(), SendMusic().....
That is the bad news because if we want to add some custom info, maybe we can't because we would have to modify also MCU img.
I've seen on other forums some guys successfully displaying all kind of information on their cluster, but it was a more hardware specific device (CANBUS + RS232.....).
Definitely possible, but a lot of work.
Click to expand...
Click to collapse
Hi,
I did some research and i think that the MCU has nothing or little to do with sending and receiving messages/info from/to the car. The main unit communicates with the canbus converter using serial rx/TX at a 38400bps. This is where the mcu gets out of the game. The serial protocol between the HU and the canbus decoder is the same for all the HUs and canbus decoders. According to this all the hard job is done on the canbus decoder. The more PIDs that it supports, the more the HU can show you!
I am working on the same thing for my Mercedes car. I need 3 things to do:
1. Interpret the canbus PIDs.
2. Interpret the serial protocol between the HU and the canbus converter.
3. Write an app that listens to the serial port that the HU is connected to and start playing with messages.
On the above the only difference for various cars is the supported canbus PIDs which are by no way the same between different car brands and sometimes between car models.
So at the end i believe that i will build my own canbus converter for my car! (i have to re invent the wheel)
If anyone has info about the serial protocol between the HU and the canbus decoder and willing to share, it would help a lot.
Regards
psychegr said:
Hi,
I did some research and i think that the MCU has nothing or little to do with sending and receiving messages/info from/to the car. The main unit communicates with the canbus converter using serial rx/TX at a 38400bps. This is where the mcu gets out of the game. The serial protocol between the HU and the canbus decoder is the same for all the HUs and canbus decoders. According to this all the hard job is done on the canbus decoder. The more PIDs that it supports, the more the HU can show you!
I am working on the same thing for my Mercedes car. I need 3 things to do:
1. Interpret the canbus PIDs.
2. Interpret the serial protocol between the HU and the canbus converter.
3. Write an app that listens to the serial port that the HU is connected to and start playing with messages.
On the above the only difference for various cars is the supported canbus PIDs which are by no way the same between different car brands and sometimes between car models.
So at the end i believe that i will build my own canbus converter for my car! (i have to re invent the wheel)
If anyone has info about the serial protocol between the HU and the canbus decoder and willing to share, it would help a lot.
Regards
Click to expand...
Click to collapse
You can try to decompile the Vehicle.apk file which only read some PID from the canubus.
You can dmsg with a terminal and see that one of the devtty is outputting some strings.
Also, the Music app is sending the info through the MtcCanbusManager. This program is the one that send the correct strings to the canbus decoder.
If you go with a standalone canbus decoder, you would do more things.
Nova8316 said:
You can try to decompile the Vehicle.apk file which only read some PID from the canubus.
You can dmsg with a terminal and see that one of the devtty is outputting some strings.
Also, the Music app is sending the info through the MtcCanbusManager. This program is the one that send the correct strings to the canbus decoder.
If you go with a standalone canbus decoder, you would do more things.
Click to expand...
Click to collapse
Yes i already saw that the canbus decoder works with strings. Mtccanbusmanager does all the job sending/receiving the strings and broadcasting the messages to the correct apps.
I cant find the Vehicle.apk as i am looking for it almost a month now and noone seems to be able to post it on the forum. MTCControlInfo.apk is the app that i have decompiled. Is it the same?
psychegr said:
Yes i already saw that the canbus decoder works with strings. Mtccanbusmanager does all the job sending/receiving the strings and broadcasting the messages to the correct apps.
I cant find the Vehicle.apk as i am looking for it almost a month now and noone seems to be able to post it on the forum. MTCControlInfo.apk is the app that i have decompiled. Is it the same?
Click to expand...
Click to collapse
Its in all ROMs, so you should be able to find it somewhere.
I posted in the other thread. This might help:
http://forum.xda-developers.com/showpost.php?p=58749562&postcount=8564
RWerksman said:
I posted in the other thread. This might help:
http://forum.xda-developers.com/showpost.php?p=58749562&postcount=8564
Click to expand...
Click to collapse
Maybe you should tell him where you got it from so he can get the latest one, the one in your link is over a year old.
typos1 said:
Maybe you should tell him where you got it from so he can get the latest one, the one in your link is over a year old.
Click to expand...
Click to collapse
Is this supposed to be the "Vehicle.apk"?
psychegr said:
Is this supposed to be the "Vehicle.apk"?
Click to expand...
Click to collapse
There are quite a few different apks like vehicle.apk, control settings.apk, etc, they appear and disappear depending on what CAN Bus setting you have the unit on in factory settings, but if you get the latest ROM you should be able extract all of them from it.
(I ll get round to replying to your pm soon BTW, been very busy)
i realy like this project.. but i whant to go a step furter.
what if we juse a cheap ass android smartwatch. and make from that a mini HUD. MY peugeot have black small display for the warning ligts. like a 4 by 5 cm. when you put a little HUD foly on it an project the smartwatch to it you have a mini HUD. with you tricks here it must work.
maby an idea?
Has this gone any further? I just bought a 2016 VW GLI, and I am not happy that the turn by turn does not show up in the MFD in the cluster. There HAS to be a way...

Categories

Resources