2004 to 2020 Mazda 3 Forum and Mazdaspeed 3 Forums banner

The Infotainment Project

1 reading
4.2M views 6.6K replies 1.1K participants last post by  bsliv  
#1 · (Edited by Moderator)
MOD EDIT 8/12/15:

INDEX FOR THE INFOTAINMENT PROECT can be found here:

http://mazda3revolution.com/forums/2014-mazda-3-skyactiv-audio-electronics/104730-index-infotainment-project.html

ONLY USE IT AS A REFERENCE. ALL QUESTIONS AND COMMENTS REGARDING THE INFOTAINMENT PROJECT SHOULD BE POSTED HERE.

----------------------------------------

So, the Infotainment system is great, but it has me thinking how much greater it could be. There's so much potential wasted right now, and I would like to untap some of that.

The original post: http://mazda3revolution.com/forums/...-mazda-3-skyactiv-discussion/39650-infotainment-system-software-components.html.
This got me thinking. This is obviously a linux-based OS running on an ARM chip. This was seen on this post as well: http://mazda3revolution.com/forums/...3-skyactiv-audio-electronics/54722-accessing-infotainment-diagnostics-menu.html

I'm a software engineer, but don't have any experience dealing with low-level linux based systems. I would love to be able to either install custom, modified linux operating systems in the car or just be able to alter parts of the system to enable hidden or disabled parts of the system.

For instance, every european market has the ability to buy connected services (live traffic, weather, etc), and the Japanese market even can play DVD's and watch live TV!

This may at least give us the ability to upgrade our own systems without visiting the dealer, or use other applications through our phones such as Waze.

What I think may help here is getting the update code dump. This would be solved easiest if someone knows a dealer that can get the update software on a USB stick. If someone could upload that somewhere, we could then start analyzing the update procedure and the software and hopefully fine some way to hijack onto that process.
 
#2,917 ·
So it has been fun playing around with this stuff...but now I'm getting frustrated because I can't figure out where I'm going wrong. If I use putty and ssh into it...I appear to get it to work...but I can't seem to figure out which command is turning something on. Not sure if it's the chmod...or killing some process...or linking to the new busybox...it's all Greek to me. However...I do get the videos to work...but no audio. Play a Bluetooth mp3...pause it...then I can go back to the app...play the videos and audio works fine. But then when I reboot...I'm back to square 1 and the video app doesn't work. I think I need to start all over again...and I'm fine with that...but if someone could give me the right directions...I'll be glad to be a Guinea pig. Some notes...I have a 2016 CX-5...latest NA version of software...and I could never get the previous USB scripts to work. I'll buy someone a large pizza with the works... :)
 
#2,918 ·
#2,922 ·
Dynamic, runtime change via userjs

I managed to enable some of the user apps by changing their status at run time.

Code:
[B]			var sys = framework.getAppInstance("system");
[/B]			
			for (var i = 0; i < sys._masterApplicationDataList.items.length; ++i)
			{
				if (sys._masterApplicationDataList.items[i].appData.appName == "carplay")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "driverid")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "idm")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "vdt")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "ecoenergy")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				
			}
Very few of the apps are usable at this point - because something else is missing.

Code:
00:00:22.484 MMUI_IDM[923] Error (uia_idm_dbus.c:1949 uiaIdm_BLM_Idm_Disconnect_cb) IDM DBUS BLMIdm Service is Unavailable
00:00:22.630 MMUI_VDT[923] Error (uia_vdt_dbus.c:84 CheckVdtServiceStatus) vdt service is not running

00:00:54.940 GUI_FRAMEWORK[585] Error (Localization.js:433 ) App dictionary miss (en_US): system requested 'CarPlay' but that stringId is not found.
Anyway, this is useful if we want to develop custom apps without modifying systemApp.js

Another idea where this can be used is to change the background randomly at each boot or every x minutes by changing the "CommonBgImg2" div..

Code:
var bgimg = document.getElementById("CommonBgImg2");

if (bgimg) {
	bgimg.style.backgroundImage = "<random image url>";
}
The possibilities for customization are limitless and we can easily bring the system back to factory state by removing the corresponding userjs :)
 

Attachments

#2,924 ·
I managed to enable some of the user apps by changing their status at run time.

Code:
[B]			var sys = framework.getAppInstance("system");
[/B]			
			for (var i = 0; i < sys._masterApplicationDataList.items.length; ++i)
			{
				if (sys._masterApplicationDataList.items[i].appData.appName == "carplay")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "driverid")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "idm")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "vdt")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				if (sys._masterApplicationDataList.items[i].appData.appName == "ecoenergy")
				{
					sys._masterApplicationDataList.items[i].disabled = false;
					sys._masterApplicationDataList.items[i].appData.isVisible = true;
				}
				
			}
Very few of the apps are usable at this point - because something else is missing.

Code:
00:00:22.484 MMUI_IDM[923] Error (uia_idm_dbus.c:1949 uiaIdm_BLM_Idm_Disconnect_cb) IDM DBUS BLMIdm Service is Unavailable
00:00:22.630 MMUI_VDT[923] Error (uia_vdt_dbus.c:84 CheckVdtServiceStatus) vdt service is not running

00:00:54.940 GUI_FRAMEWORK[585] Error (Localization.js:433 ) App dictionary miss (en_US): system requested 'CarPlay' but that stringId is not found.
Anyway, this is useful if we want to develop custom apps without modifying systemApp.js

Another idea where this can be used is to change the background randomly at each boot or every x minutes by changing the "CommonBgImg2" div..

Code:
var bgimg = document.getElementById("CommonBgImg2");

if (bgimg) {
	bgimg.style.backgroundImage = "<random image url>";
}
The possibilities for customization are limitless and we can easily bring the system back to factory state by removing the corresponding userjs :)
Good idea with the background image! You can always have it pull a random image from a USB Drive and number the images 1.jpg to #.jpg. Since you can use javascript, you can just pick a random # between 1 and # and load the jpg.

For these scripts, would you just put them inside the opera/opera_dir/userjs folder?
 
#2,923 ·
Just had 55.753? installed on my 2014 Mazda3 and now the "previous and next" radio station rocker button rotates through the favorites regardless of the source ? It used to only rotate through the stations in the selected SOURCE ie: only AM,FM,XM etc.
Now it changes the source and station !!
Anyone else notice this ?
 
#2,925 ·
Look what I have seen today:
https://github.com/diogos88/Mazda_MS-CAN_client/blob/master/Mazda_MS-CAN_client/Form1.cs
Can somebody check if the CAN messages here on port 12321 ?
Code:
sergey@root ~/serezhka/jci-arm $ grep -ir "can port" ./
./jci/testapp/atcommands.xml: <ATCmdRequest groupID="11" commandID="1"> <!--Open CAN port-->
./jci/testapp/atcommands.xml: <Param convertion="digit" size="1"/> <!--CAN port-->
./jci/testapp/atcommands.xml: <ATCmdRequest groupID="11" commandID="2"> <!--Close CAN port-->
./jci/testapp/atcommands.xml: <Param convertion="digit" size="1"/> <!--CAN port-->
./jci/testapp/atcommands.xml: <Param convertion="digit" size="1"/> <!--CAN port number-->
./jci/testapp/atcommands.xml: <Param convertion="digit" size="1"/> <!--CAN port number-->
./jci/testapp/atcommands.xml: <Param convertion="digit" size="1"/> <!--CAN port-->
Binary file ./jci/testapp/plugins/libjcitaplgcanl.so matches
Recently, my car doesn't want to connect to my phone via Wi-fi. It connects only the tenth attempt.. But when it connects, the connection won't lost again.
Mzd connect - v51
Samsung galaxy s4 (android CyanogenMod 12)
So I decided to buy USB Ethernet adapter)
 
#2,934 ·
Wifi problem!


Did you know why after install your speedometer, the wifi network of my car not show any wireless access point anymore, but before it does. The wifi in Device tab is checked, and icon of wifi network not show in top bar of screen.
So i decide to upgrade to new version of Mazda Connect OS (v55.00.753A), after reboot my system, the wifi icon and wireless access point are back as normal.
I think something is wrong in your code, may be the code in file "stage_wifi.sh"... It's right?
Sory for my English skill, it not good...
 
#2,931 · (Edited)
I ran into a weird problem today. I was going to meet some car friends and I wanted to show them the video set up on my car so first thing this morning before leaving I tried the movies and they worked perfect.

When I met up with my friends, I plugged my FRS/GMRS radio that we use to communicate with each other into the Aux port of the stereo to get set up then tried to show a friend the video. Everything worked but nothing would play, the file list was there and the USB drive blinked but nothing played. I tried over and over and finally gave up.

While on the run, I kept thinking what had changed? Did using the Nav system use up the memory and now the videos wouldn't work? What about the FRS radio?

I unplugged the wire to the speaker out from the radio and tried again and the video worked. What is weird is I plugged it back in and watched videos the rest of the day with the radio plugged in and playing through my stereo instead of using an earbud. I would not get the video sound unless I directed it back to the USB drive first but the videos played flawlessly.

If you are fighting getting a video playing and you have an MP3 player or phone plugged in to the Aux input try it without it just to see if it could be hanging it up. Get your system as basic as possible if you are having problems, even simple things can cause it not to work.

The Despicable movies were fun to watch. Everyone loves them. Thanks waisky2!
 
#2,933 ·
@waisky2 So I rechecked everything...but I must be missing something. Your Speedometer App works just fine now. The Reboot App works good. The Video App will search for videos on my thumb drive...It will find them but it will not play. So I thought it was maybe my videos not being formatted correctly and I downloaded one of your videos to try it. It found your birds video but would not play it. What can I try now to isolate the problem ? I'm a rookie...but let me know. Thanks...
 
#2,936 ·
for that of us videos are loaded in the spedoometer video app but not plsyed. It seems to be an "mem allocation" problem.

I've found a possible solution. I understand the solution is we need to increase the dma memory.

Please, could some of the experts developers in the thread read and see if it can solve our problem and how to apply the patch.

Thanks!!

Here seems to be the solution

https://community.freescale.com/thread/304368
 
#2,939 ·
Hi guys, Im new here.
I just bought myself a 2015 Mazda Axela.
I would like to know if the infotainment system can be converted to English as it originally cam in Japanese. And if possible, please let me know on how to do so.
Iv been searching really hard whether it is possible but have been unable to find a proper answer.
Please help me as im in desperate need to change the language to English

Thanks in advance.
 
#2,941 ·
Do I have to go into the programming screen using the Audio,Fav and Vol keys to install the tweaks or just unplug the SD card and plug in the USB thumb drive?. Will the system detect the tumbdrive and automatically install the tweaks ? I'm nervous about messing up the software update 55.753 that was just installed ? Thank you
 
#2,943 ·
i played around with the options @spadival throw in...

as far as i see.. in EU version we are missing hardware for IDM and hd traffic

vehicle telemetrie starts a counter of 60 minutes and i think you can save something on usb (testing tomorrow while driving) driver id allows you to create a profile (name) but i think it is for the IDM or maybe the telemetrie, wich is than saved with the correct driver name?!!? (see that tomorrow)

"fahrerauswahl" = Driver ID
 

Attachments

#2,944 ·
i played around with the options @spadival throw in...

as far as i see.. in EU version we are missing hardware for IDM and hd traffic
I am not sure we are missing hardware for IDM. The error message just indicated that that the DBUS service which provides the data is not running. Maybe we can run this process outside of sm.conf (because I am not ready to take risk adding another entry to sm.conf)

HD Traffic is North American equivalent of TMC and is available in US via HD radio. Completely useless, because it displays a low res map with hardly any information on it.
 
#2,947 ·
That would be nice. I doubt they'll ever change our infotainment system to that OpenAir system. They have a few videos that show a lot of awesome features, even some running on our infotainment system. It just seems like they never incorporate those changes in the updates we get. :\
 
#2,948 · (Edited)
this is a redo version of speedometer/video player, and probably no changes would be made in near future. I have replaced the files to its own folder and it's pretty clean now.

== Tested on v55. You should probably skip if your OS version older than v51 ==

what this package contains;

1. speedometer (started off by @serezhka), with following information:
- top speed
- average speed
- current speed
- speed bar
- plot graph (6 minutes drive speed history)

2. video player (started off by @sigma), with following functions:
- generate video list from all connected USB drive
- start playback (by click on the video name in the video list)
- stop playback
- play all option
- repeat option

DO READ information in "video player note" below

3. reboot system
- this feature come together with video player


installation - UPDATED

* if you have installed the earlier version speedometer by @serezhka or mySpeedometer by me, this installation will disable them, no conflict

method 1 - install via ssh

1. download addon-all-fixed.zip
2. unzip and copy all files to your USB root
3. plug it to the USB port
4. ssh into your CMU
5. go to your USB drive folder (e.g. /tmp/mnt/sdb1)
6. run ./install.sh
7. you will see "done" after installation complete, and now reboot

method 2 - auto install upon USB plug in

1. download addon-all-fixed-auto-install-v2.zip
2. unzip and copy all files to your USB root
3. start your CMU
4. plug it to the USB port and wait for about 30 seconds
5. if you see a dialog pop up on your screen, the installation should be completed


the installation will copy both speedometer/video player files into your system, and you have option to enable/disable any one of them (see below)


other than adding new files into the system, what current system files would be changed

changes would be made to the following 4 files, but installation will make backup first before applying the changes
- /jci/sm/sm.conf
- /jci/opera/opera_home/opera.ini
- /jci/scripts/stage_wifi.sh
- /jci/opera/opera_dir/userjs/fps.js (this one only backup, not changes)


uninstall - ADDED

auto uninstall upon USB plug in

1. download uninstall.zip
2. unzip and copy all files to your USB root
3. start your CMU
4. plug it to the USB port and wait for about 30 seconds
5. if you see a dialog pop up on your screen, the uninstallation should be completed


question (option & improvement)

Q. I only need speedometer (or video player/reboot), how to disable the other one?
A. the option is at the first 2 lines in /jci/opera/opera_dir/userjs/addon-startup.js

Q. [speedometer] I need mph instead of kph, how to change it?
A. the option is at the first line in /jci/gui/addon-speedometer/addon-speedometer.js

Q. [video player] what type of video file supported?
A. currently the player will only search through all your connected USB drive for *.mp4 files, and generate a video list for you

Q. [video player] can I add more video type other than *.mp4 appear in my video list, e.g. *.mkv,
A. yes, you can modify it at line 68 in /jci/gui/addon-player/playback-action.sh, provided you know bash scripting

Q. [video player] I managed to add more video type file, e.g. *.mkv, can the player play it?
A. should be. if the player doesn't play it and if you know gst-launch command, you can modify it at line 49 in /jci/gui/addon-player/playback-action.sh

Q. [video player] how the "Play All" and "Repeat" works?
A. 3 cases:
- if only "Play All" is checked, play all videos in the list till the end
- if only "Repeat" is checked, repeat your current playing video
- if both "Play All" and "Repeat" are checked, repeat all videos in the list


problem & possible solution

Q. [speedometer] all speed value remain 0 when my car is moving?
A. try reinstall again

Q. [reboot system] when I click on the reboot button, nothing happen?
A. try reinstall again

Q. [video player] when I click on the "Search Videos" button, nothing happen, also the reboot button don't work?
A. try reinstall again

Q. [video player] when I click on the "Search Videos" button, nothing happen, but the reboot button works?
A. unplug and replug your USB drive and click "Search Videos" again. if after 2~3 times still can not, reboot the system

Q. [video player] when I click on one of the videos, nothing happen, and I only see "Preparing..." at the right bottom
A. click "Stop", "Search Videos" and play again. if still can not, try the other video

Q. [video player] only 5 out of 10 videos in my list can play, why?
A. to have the player to play most of the videos you have, from experience the best video codec is h.264/aac or h.264/mp3 at resolution not higher than 480p

* kindly bookmark this post permalink and always refer back here for any problem you may come across. only throw question if you don't find the answer here :smiley:


video player note
this video player, rely on "gst-launch" to play video, and "gst-launch" is a command come with the system. currently there is no menu/button available in the system for you to play video as how you play audio, then this video player been created.

this video player is only to provide you a user-interface to let you play video as easy as how you play audio. it can generate video list, also with playback control button like stop/play all/repeat, but underneath it is the "gst-launch" do the playing and output the video to the screen.

from own experience and many feedback from other users, the "gst-launch" come with the system doesn't seem to be very "stable", not "stable" as in very high chances it refuses to play the video you expected it would play, and reason may vary, most is the error related to memory.

meaning, this video player may not work for you.

- to best interact with the video player, be patient and always allow 2~3 second for the player to response after you click any button
- do test with USB formatted in FAT32 and NOT larger than 8GB
- do test with video in codec h.264/aac or h.264/mp3 and resolution NOT larger than 480p

here are some short video you may try out;
https://drive.google.com/open?id=0Bz6ITFfwLRaqcmJ2VktSSEZlOGM
https://drive.google.com/open?id=0Bz6ITFfwLRaqU21kek1XZjM1UTA
https://drive.google.com/open?id=0Bz6ITFfwLRaqQlZ0RDV2Yk9fRVk


my note
this is so far the information I could provide. question or possible solution may be added along the time.

UPDATED:
- screenshot uploaded
- fixed and re-uploaded full script (fix speedbar no response)
- added auto install for non-ssh user
- added uninstall script

github url https://github.com/kwwong/mzd-addon
 

Attachments

#2,956 ·
#2,958 ·
@waisky2 you did an awsome job

i told you that the old player run once so i uninstalled it...

a few minutes ago i try your new one with the ssh install method.. it runs.. i try to play with different usb-sticks and it works everytime
so i drive a while, stopped the engine, start again and what should i say.. it runs :)

it is cool to seperate the apps