2004 to 2020 Mazda 3 Forum and Mazdaspeed 3 Forums banner
901 - 920 of 6,600 Posts
Google Maps on Infotainment System (Mazda 3 2015)

This is technically possible - you can tell the nav system to navigate to a particular gps coordinate via a 'navigateTo' method.
Summary

This is what I'm currently working on right now - the Maps application for Mazda 3.

Details - how it should work

When I turn on ignition the Mazda 3 connects to my phone by Bluetooth (handsfree), triggering event in Tasker application (I have an Android phone) which turns on 4G hotspot on the phone. Infotainment System reconnects to my hotspot to access the Internet by Wi-Fi. I just need to select my custom application from the list (please see screenshot attached). The JavaScript application loads Google Maps object using Google Maps JavaScript API. The plans are to get GPS coordinates the same way as Compass application in the infotainment system and move the current position on the screen, or move maps keeping current position at center. The second screenshot below shows current traffic, pulled using the same Google Maps JavaScript API, it can also display route/directions using the same API. Probably we can re-use Text To Speech function to announce the directions.

The easiest way to navigate probably will be to define most frequent places/destinations at your home computer in My Places, if you have a Google account, for easier navigation selection. The red button on bottom left corner is mine - it pulls out the list of controls, similar to one at Fuel Consumption Monitor application ("ecoenergy"). It should be able to display Google StreetView too, as version of this browser supports HTML5, but I didn't reach this point yet, so I cannot confirm.

Technical Issues

There are some difficulties I ran into, if someone interested. Such as - this Opera browser in Infotainment System does not like SSL certificates - it says some of them are expired, when they are really not, probably something if screwed with local date/time. These server certificates are coming from Google, and used for HTTPS connection. So I had to switch from HTTPS to HTTP, as result I cannot sign into my Google account from Opera (account is configured to use HTTPS). There is an option in Opera configuration settings to ignore SSL certificate errors, which I do not want to use yet ("OCSP Validate Certificates=0" in "\jci\opera\opera_home\opera.ini") for safety reasons.

Next issue is - when opera is trying to display dialog "Some certificates are expired, OK/Cancel/Remember my choice" it is failing to find file "opera\opengles-ui\dialog.html ", though it is right there. Probably it should use absolute path to it ("\jci\opera\opengles-ui\dialog.html") instead of relative path. Maybe copying this file to other location could be a workaround.

And one biggest thing which is really annoying - after couple of seconds Infotainment System switches back to list of application no matter what, not sure why. Probably I have to define my custom application, context and *.so module in "\jci\mmui\mmui_config.xml", but currently I'm only dealing with JavaScript. I need to continue the research - my test application is far from being usable anyhow now. As I'm not familiar with embedded Linux it does make sense to join my effort with someone more advanced than me.

Another issue which I'm fighting with - the Infotainment System does not always reconnect to hotspot when I get back to the car. Debug log from "wpa_supplicant" shows there is a "timeout occurred" when it is trying to connect back to my access point.

Version of firmware is - 31.

VM for development

Another thing I'm currently researching is - the virtual machine for development. As processor platform is ARM we cannot run the VM inside VMWare or VirtualBox on PC. Instead of that we probably can try to run QEMU emulator, which supports ARM, and this QEMU can be run anywhere (including VMWare, VirtualBox, or directly on PC). QEMU on Linux is possibly the way to try, there also tools and cross compiler will be require too.
 

Attachments

RomanB ... So nice!!! Could you share the code of your app?

Is anyone have problems with the WiFi? I turn on the hotspot on my phone and the car doesnt see it ... I've tried with my home router and the car doesnt see it either ... BUT ... The car can see my hotspot (phone) when i'm parked at work! (uh..!!) I looked at the logs ans didnt find anything :\

Version of firmware is 33 (should I downgrade? lol)
 
I will definitely share my application, but later. Once app starts working it might take some time to gather all pieces together, do the QA/UAT on different firmware versions. I do not want to rush, as some missing JavaScript pieces could send your Infotainment System into boot loop, and recovery is not for everyone - it is more of the luck process.
 
Is anyone have problems with the WiFi? I turn on the hotspot on my phone and the car doesnt see it ... I've tried with my home router and the car doesnt see it either ... BUT ... The car can see my hotspot (phone) when i'm parked at work! (uh..!!) I looked at the logs ans didnt find anything
Regarding Wi-Fi issue:

1) It takes time for car to find hotspot, sometimes it finds very quick, sometimes access point name disappears from the list and then appears after few seconds, though hotspot it right here. Laptop connects to hotspot with no problem.

2) Connecting to hotspot by pressing button "Connect" in Infotainment System worked for me only once. After that it takes long time to connect, and then ends up with timeout, showing dialog "Network error, try again". Instead of that, I'm unchecking and checking again small checkbox in settings - this stops and starts the "wpa_supplicant" process behind the scene - and car reconnects to my hotspot automatically (but not always).

3) If I stop engine, leave car, and get back to it later - I see the "Wi-Fi enable" checkbox is unchecked again (cold start?), and I have to start over. Probably this can be worked around from JavaScript too - enable Wi-Fi on each start up.

4) I'm trying different options - Open security (no password) or WPA2, hidden or visible access point. It seems there is no much difference. I'm thinking maybe using 3G/4G modem plugged into USB port will be more reliable here instead of using Wi-Fi. I read that drivers for wireless devices are sort of challenge in Linux.

Here is the content of configuration file ("wpa_supplicant-wlan0.conf") generated by Infotainment System:

Code:
ctrl_interface=/var/run/wpa_supplicant-wlan0
ctrl_interface_group=0
update_config=1

network={
	ssid="[access_point_name_removed]"
	bssid=[mac_address_removed]
	psk="[password_removed]"
	proto=RSN
	key_mgmt=WPA-PSK
	group=CCMP TKIP
	auth_alg=OPEN
}
interfaces file:

Code:
auto lo
iface lo inet loopback

iface eth0 inet dhcp
	udhcpc_opts -t 10

iface usb0 inet dhcp
	udhcpc_opts -t 10

iface wlan0 inet dhcp
	udhcpc_opts -t 10
original wpa_supplicant process runs with the following parameters:

Code:
wpa_supplicant -c /data/nms/wpa_supplicant-wlan0.conf -i wlan0 -D nl80211 -ddtKB
 
There is an option in Opera configuration settings to ignore SSL certificate errors, which I do not want to use yet ("OCSP Validate Certificates=0" in "\jci\opera\opera_home\opera.ini") for safety reasons.
While you're developing I'd say the chances of a MITM attack are pretty low. :) (Deploying onto millions of devices worldwide would be a different scenario.)

Next issue is - when opera is trying to display dialog "Some certificates are expired, OK/Cancel/Remember my choice" it is failing to find file "opera\opengles-ui\dialog.html ", though it is right there.
if the certs are expired, that means opera needs to update its root certificates. uploading more recent cert files might resolve this.

Another thing I'm currently researching is - the virtual machine for development. As processor platform is ARM we cannot run the VM inside VMWare or VirtualBox on PC. Instead of that we probably can try to run QEMU emulator, which supports ARM, and this QEMU can be run anywhere (including VMWare, VirtualBox, or directly on PC). QEMU on Linux is possibly the way to try, there also tools and cross compiler will be require too.
Yes, we need this. :)

Loving hearing the progress.
 
R.I.P Duck

It is with great sadness that I must write this post.

My son Andrew, better known in this forum as the "Duck", as suddenly passed away on Monday @10:00 pm.

We spoke regularly about the advances that you guys were making and his enthusiasm about your mission was overwhelming. Many a night I had the blue Ethernet cable running from my family room to his car parked in the garage, trying a new download or patch.
I know that he will miss, but my only hopes is that bIt is with great sadness that I must write this post.
My son Andrew, better know in this forum as the "Duck", as passed away on Monday @10:00 pm.

We spoke regularly about the advances that perhaps in heaven he can finally reverse engineer the RSA key.. :wink2:

My god always have a place in your heart,

Andrew’s Father, Gary
 
It is with great sadness that I must write this post.

My son Andrew, better known in this forum as the "Duck", as suddenly passed away on Monday @10:00 pm.

We spoke regularly about the advances that you guys were making and his enthusiasm about your mission was overwhelming. Many a night I had the blue Ethernet cable running from my family room to his car parked in the garage, trying a new download or patch.
I know that he will miss, but my only hopes is that bIt is with great sadness that I must write this post.
My son Andrew, better know in this forum as the "Duck", as passed away on Monday @10:00 pm.

We spoke regularly about the advances that perhaps in heaven he can finally reverse engineer the RSA key.. :wink2:

My god always have a place in your heart,

Andrew’s Father, Gary
Oh wow, I'm so sorry to hear that - Thank you for posting.

I worked with Duck a little bit to setup the Wikipedia Page start [Mazda3Hacks]

I believe he was the one in control of the whole thing and he helped a lot when the bots began to attack.

He was a friend of mine on Steam, he made a huge contribution to our effort.

I am very sorry to hear that he passed away - I am sure that Everyone who took part in this project will miss him a lot.

Thank you for letting us know - again, he will be missed greatly and we are all very sorry for your loss. :crying2: :frown2:

_______

As a side note - I'm not sure if he was paying for the server running the Wiki Page at start [Mazda3Hacks]

or if it will stay up indefinitely... never the less - we may need to make arrangements to Re-Locate the Wiki page and back everything up for it.

Rest in Peace @Duck
 
Awwww, Duck. :(

I just knew him from this forum, but he was quite friendly and helpful. His presence will be missed here. :crying2:
 
Ok, well, does the router provide DHCP? If so, the car will get an ip address from the router, and it will use that. Your pc (or whatever you are using) will also get an ip address that way. You can run a port scanning tool, such as nmap to locate which IP address the router has given to the car.

I tried two usb-ethernet cables.. one, an old el cheapo one, worked, and a more expensive one that came with my tablet didn't.
 
I'm going to join in on the project and help do some development. I got some ideas I want to implement and we'll see if it works. I'm pretty decent at Javascript and have a good development background so hopefully it isn't too painful. Let's hope the emulator isn't terrible.
 
@White
I also have the EU version, and no auto door lock when ignition is on.
I made some modifications to enable this feature in GUI and was able to see the menu and select this option. But when selecting this option it didn't do any good. It self checked back to "Off". So I believe there's another check in one of the libraries that handles the commands from GUI. I found something by disassembling in this one: /jci/mmui/uia/libjciuiavehsettings.so but I did not figured out how the settings are loaded and from where.
Hello :)

In EU version we don't have options for "coming home". In settings there is no options to "Headlight delay"

Shame Mazda! Why in EU not?

Can it be somehow coded/programmed? I asked my Mazda service and they said, that they cannot do this...

Maybe this feature is "locked" in FW for EU...and we can somehow unlock this feature like you did it for lock door?
Any news about these two features?
 
Hi All,

New here, but interested in helping out. Are there any ongoing projects or initiatives that I can contribute to? I just purchased a 2015 Mazda3 and work full time as a developer. I've started programming an OpenCar application, and after my USB to Ethernet adapter arrives in the mail, I intend to really start playing around.

Best,
Danny B
 
901 - 920 of 6,600 Posts