2004 to 2020 Mazda 3 Forum and Mazdaspeed 3 Forums banner

Enhanced Compass Application for Mazda Connect

146K views 363 replies 71 participants last post by  KROMO50  
#1 · (Edited)
Howdy,

As some of you already know (from the Infotainment Thread), I have been working on a "free" navigation software for Mazda Connect. I decided to branch off the discussion in a separate thread to keep the main thread clean.

The Idea!

My initial idea was to build a complete navigation system using Google Maps via the enabled WiFi. Well, reality came fast and it turns out that the network process on the Infotainment system has very low priority, thus it's freaking slow and unusable for a "production" app.

I didn't want to give up, so I was looking to create my own mapping software and yep, using Mapnik / PostGIS and OpenLayers, I created millions of static tiles and put them on an SDCard, allowing me to serve my own map.

The Reality Check!

During this whole process I started to understand that Navigation is actually not that simple, especially routing etc. So I made a decision to divide the project in different milestones:

1) Enhanced Compass
2) Searchable POI
3) Searchable Addresses
4) Online routing (will require WiFi turned and connected)
5) Offline routing


The First: Enhanced Compass

I already achieved the first milestone with my "Enhanced Compass" application which is basically the standard compass coupled with a moveable map that is zoomable. I deployed it to my 2016 Mazda 6 and it works pretty well. Don't believe me? Check out the video below:

https://youtu.be/JH_brkXI0-0


Wow - how can I get it?

I am working on it. As soon as I am satisfied with this version I will put the entire project on GitHub and anyone with dev experience can grab it. Those who don't want to mess around need to wait until we have a Installation script available.

Also one of the big issues is the tile rendering. Currently I only have Southern California available. However I may get a temporary server to render the entire United States. If you outside of the US, you may need to drop a PM to me or setup your own environment.


How can I help?

Send me a PM. I need someone for writing the plug & play installation script. Also anyone with Mapnik experience would be great.


Also check out the pictures below. These are all live pictures from my 2016 Mazda 6 running Firmware 51.


Thanks,

Andy
 

Attachments

#5 ·
I might be able to help with hosting or rendering as well if you let me know what you need. Don't know much (or, really nothing) about those mapping tiles, but I also happen to have some servers sitting around, not the most powerful, but they are literally doing nothing (plus some that are in use with some spare CPU power, if needed) so them being dedicated to rendering wouldn't be a problem. I also have 1Gb/1Gb internet, sooo I might could help with hosting too.
 
#10 ·
Just curious, have you looked into OpenStreetmap? Their navigation data is all free for the taking; there's also an Android App called "OsmAnd" which uses that data for navigation (though I think the app itself is not free or open-source).

Lastly, there used to be a Linux application called "gpsdrive" which was an free/open-source attempt at navigation; I don't know what the status of that project is, but it might be interesting for you to check out since it had the same goals.
 
#11 ·
This is based on OpenLayers and Mapnik which is the same software that powers OpenStreetMap. For routing you need a good backend for the calculation. I don't want to mess around with low level libraries on the Mazda's ARM, so I keep everything as simple as possible (for now :-D).

I looked into gpsdrive. Thank you for that, but it has way too many dependencies including requires to have the Mapnik server locally installed, which won't work for our purpose :-(.

I already started messing around with POI and simple street search and it seems to work.

The biggest issue that this app will have is the required space for the tiles. Just SoCal is about 5GB after rendering the different layers... but it works :-D
 
#17 ·
Well - raw data is pretty small. Like the whole United States is just 8GB in size and if you have a on-demand tile server to render it, that works very well. However as stated before, I don't really want to install system level software at this point.

I don't think the size is a big deal at this point. I can fit a couple states on one 16GB sd card. It's not really designed for cross country road tips :-D
 
#22 ·
Simple POI integrated :)

Also I refactored the entire code base and have now a slim bootloader which loads the core system from the SD-Card. So much easier for updates, enhancement and during development. If you forget to plug in the SDCard, the system waits for it.
 

Attachments

#23 · (Edited)
Dashboard photos, so you don't think it's not real :-D

Gotta do some test driving tomorrow to see how the POI perform. It's loading the POI partially based on the current view extent. Felt a bit more choppy when scrolling.
 

Attachments

#29 ·
I am trying to get this out as fast as I can. My initial plan was to release it and later integrate POI. Now driving around with the POI I discovered that it really needs at least POI's :) .. so I am finishing this up and then it's release time. Hopefully this weekend.

Also I currently only have the SoCal map.. so once released I need to see how I generate the map for the entire US.


And yes, I need help with the install script which will be tricky because two areas in JCI-owned code needs to be patched.
 
#30 ·
Awesome, cant wait to get started! I'm in Canada so I guess Ill need to start generating maps for Canada any guide on how to start generating maps. I have access to a lot of processing power so that I can start rendering the maps for everyone. As far as the installing goes, it shouldn't be too hard for us to make an auto install script using USB shell hack. :)
 
#31 ·
Are there any plans to integrate traffic updates? That is my biggest gripe with the infotainment.
 
#34 ·
You should read my previous findings. We don't have internet via bluetooth without modifying some core configs on the system - only Wifi is available and it's darn slow. Also Google Maps is out of the question for now due to the SSL certificate issues (outdated) - again you have to modify core system files.

My project is targeted without modifying any core system files. In the end I want to present a useable solution that can be installed by many not a few with expert buildroot knowledge.

Btw, Google traffic is not an overlay but actually pre-rendered tiles. Nobody gives out raw data.
 
#36 ·
The development branch is also available on GitHub:

https://github.com/flyandi/mazda-enhanced-compass


I am writing instructions right now and preparing the wiki for the first public beta release.

Note: There is a lot of code not tailored for a wider audience in this dev branch. I am not providing direct support until I have cleaned it up. That's what the releases will be: Clean and workable code bases.
 
#39 ·
Done writing the usb install based on your README.md. Can you grant me access to update to github. Userid is 5igma

Also does this replace the regular navigation? So I wouldn't be able to use my old navigation after changing the code? Are we able to add another Icon instead of replacing the old version of JCI navigation? Or create another menu item in apps?

Do you have a howto for rendering maps? Ill need to render maps for Canada xD
 
#40 · (Edited)
Hey sigma. Thank you. The instructions are not quite ready yet :) I fall asleep halfway through last night :-D

Map rendering is in post #35 in this thread.

The app doesn't replace the old navigation, just the Compass app. In order to run it, you need to remove the original sd-card and replace it with the Enhanced Compass SD-Card. Writing instructions in a little bit for that.