Audizine - An Automotive Enthusiast Community

Results 1 to 8 of 8
  1. #1
    Veteran Member Three Rings DrGER's Avatar
    Join Date
    Aug 31 2014
    AZ Member #
    279216
    My Garage
    '17 Audi A4Q 6MT CYMC/RJN, '11 VW GOV TDI 6MT CJAA/LHD
    Location
    NW OH USA

    Customizing MMI 3G+ Green Engineering Menu Screens

    Guest-only advertisement. Register or Log In now!
    The Green Engineering Menu (GEM) on MMI 3G High and Plus systems is implemented within a running Java virtual machine that gets its screen definitions from various configuration files in /mnt/efs-system/engdefs.

    Inspection of the plain-text files in this directory show that several are used to launch QNX shell scripts that appear as control elements in the GEM. For example, the GEM /version screen has a control called "Start Script":


    Inspection of file AAAVersion.esd finds the following definition text:
    Code:
    script 
        value           sys 1 0x0100 "/scrips/pidin.sh" 
        label           "Start Script"
    The script value specified here (/scrips/pidin.sh) does not exist on our 3G+ system, so we changed this to (new) QNX shell script /scripts/myScript.sh:
    Code:
    script 
        value           sys 1 0x0100 "/scripts/myScript.sh" 
        label           "Start myScript"
    and restarted the MMI system. After restarting and entering the GEM, we find the label on the control is now "Start myScript":


    The new shell script is stored in the /mnt/efs-system/scripts directory, and writes a system info file to a FAT32 formatted SD card in slot 1:
    Code:
    #!/bin/ksh
    # Copy info to SD 1 if FAT32 mounted
    xddir="$(mount | grep "/mnt/sdcard10" | sed 's,^/dev/sdcard10t1. on ,,;s/ type dos .*$//')"
    mount -uw $xddir
    if test -e "$xddir"
    then
            echo "[INFO] Running myScript.sh $(date) / $(getTime)"
    
            mount -uw $xddir
            xssfile=${xddir}/sysstatus-$(getTime).txt
            echo "[INFO] Timestamp: $(getTime)" > $xssfile
    
            echo "[INFO] df -k -P" >> $xssfile
            df -k -P >> $xssfile
    
            echo "[INFO] pidin -aenA" >> $xssfile
            pidin -f aenA >> $xssfile
    
            echo "[INFO] sloginfo" >> $xssfile
            sloginfo >> $xssfile
            echo; echo "[INFO] OK to remove SD 1."
    else
            echo "[INFO] No usable SD card found in slot 1 (${xddir})."
    fi
    Selecting the control launches the script and output is displayed in the MMI console:

    and we find our new system status file written to the SD card (without having to run a special-purpose SD card script). Note that this script is not suitable for unmodified MMI 3G (High) systems, as they do not have the QNX binary for sed from production.

    New custom/bespoke screens can be added to the GEM /main list by adding a new Engineering Screen Definition (ESD) file to directory /mnt/efs-system/engdefs. The script above can be called from a new "MyScreen" with plain-text file MyScreen.esd:
    Code:
    screen  MyScreen        Main
            keyValue 
                    value   String per 3 0x00120004
                    label   "Software Train Name"  
            script 
                    value   sys 1 0x0100 "/scripts/myScript.sh" 
                    label    "Run myScript"
    After restarting the system, we find the new screen entry in the GEM /main list:


    Selecting the screen, we find:


    And selecting the script control, we see output from the process displayed in the GEM Console:


    Information on where to find various string and numeric version information is TBD.

    Updated 24 Jun 2025 with corrected Google Drive image URLs. --g
    Last edited by DrGER; 06-24-2025 at 02:12 PM.
    2017 B9 A4Q P+ 2.0T 6MT Daytona Gray. Previous: 2014 B8.5 A4Q P+ 2.0T 6MT Monsoon Gray; 2009 B8 A4Q P+ 2.0T 6MT Brilliant Red; 2005 B6 A4Q 1.8T 6MT Cambridge Green; 1995 B4 A90Q V6 5MT Pearl White; 1990 B3 A80Q I5 5MT Crystal Silver; 1984 C3 5000S I5 5MT Montego Black; 1978 C2 5000 I5 4AT Helios Blue; 1977 C1 100LS I4 4AT Signal Green; 1974 B1 Fox I4 4AT Sahara Sand.

  2. #2
    Veteran Member Three Rings DrGER's Avatar
    Join Date
    Aug 31 2014
    AZ Member #
    279216
    My Garage
    '17 Audi A4Q 6MT CYMC/RJN, '11 VW GOV TDI 6MT CJAA/LHD
    Location
    NW OH USA

    After inspecting the available GEM Engineering Screen Definition (ESD) files found on our MMI3GP system, I have a few more observations to add to the thread:

    1) The screen order of the Main menu appears to be defined by the collating order of the ESD file names, given that AAAVersion.esd appears before other "Main" screen definitions. Modifying this file directly, however, changes the menu display order so that screen /version moves to the end of the list. I haven't determined yet why this should be the case.

    2) GEM screens can display 11 single-line elements (numerical, strings, or script controls); additional elements are displayed on subsequent screens.

    3) A new sub-screen can be added to an existing main-level screen by referencing the parent screen in the "Screen NewName ParentName" definition.

    The current "Version" screen definition includes four "export" elements, a strings element, and a script element, followed by nine sub-screen references, which require a second page to display all screen elements. The Addressbook.esd files contains only five elements (two Choice elements, three Scripts).
    Thus, appending our new MyScreen (sub)screen to /addressbook helps to minimize control interactions (scrolls/button presses) to access.

    A ZIP archive installer for this new GEM screen is TBD. --g
    Last edited by DrGER; 06-24-2025 at 12:53 PM.
    2017 B9 A4Q P+ 2.0T 6MT Daytona Gray. Previous: 2014 B8.5 A4Q P+ 2.0T 6MT Monsoon Gray; 2009 B8 A4Q P+ 2.0T 6MT Brilliant Red; 2005 B6 A4Q 1.8T 6MT Cambridge Green; 1995 B4 A90Q V6 5MT Pearl White; 1990 B3 A80Q I5 5MT Crystal Silver; 1984 C3 5000S I5 5MT Montego Black; 1978 C2 5000 I5 4AT Helios Blue; 1977 C1 100LS I4 4AT Signal Green; 1974 B1 Fox I4 4AT Sahara Sand.

  3. #3
    Veteran Member Three Rings DrGER's Avatar
    Join Date
    Aug 31 2014
    AZ Member #
    279216
    My Garage
    '17 Audi A4Q 6MT CYMC/RJN, '11 VW GOV TDI 6MT CJAA/LHD
    Location
    NW OH USA

    *** RESERVED ***
    2017 B9 A4Q P+ 2.0T 6MT Daytona Gray. Previous: 2014 B8.5 A4Q P+ 2.0T 6MT Monsoon Gray; 2009 B8 A4Q P+ 2.0T 6MT Brilliant Red; 2005 B6 A4Q 1.8T 6MT Cambridge Green; 1995 B4 A90Q V6 5MT Pearl White; 1990 B3 A80Q I5 5MT Crystal Silver; 1984 C3 5000S I5 5MT Montego Black; 1978 C2 5000 I5 4AT Helios Blue; 1977 C1 100LS I4 4AT Signal Green; 1974 B1 Fox I4 4AT Sahara Sand.

  4. #4
    Junior Member One Ring StanNB's Avatar
    Join Date
    Oct 22 2024
    AZ Member #
    996647
    My Garage
    BMW E46, Kawasaki Z1000
    Location
    Germany

    Very ineresting.

    How do you edit the .esd files? I tried notepad++ and a hex editor, but the menu won't appear anymore in the GEM.

    EDIT:
    Quote Originally Posted by DrGER View Post
    Modifying this file directly, however, changes the menu display order so that screen /version moves to the end of the list.
    True, I've found it on the end of the list. Did you found out why? I restored the original untouched file back to the MMI but it's on the end, too. That's confusing.

    And what means the 0x0100 ?

    Thanks!
    Last edited by StanNB; 06-11-2025 at 11:20 AM.

  5. #5
    Veteran Member Three Rings DrGER's Avatar
    Join Date
    Aug 31 2014
    AZ Member #
    279216
    My Garage
    '17 Audi A4Q 6MT CYMC/RJN, '11 VW GOV TDI 6MT CJAA/LHD
    Location
    NW OH USA

    @StanNB -- Thanks for bringing this thread up -- I need to fix the broken Google Drive image links here. I also describe this over on VWVortex here: https://www.vwvortex.com/threads/mmi...ation.9527905/
    Some day i will post my GEM modifications to a new GitHub repository. --g
    2017 B9 A4Q P+ 2.0T 6MT Daytona Gray. Previous: 2014 B8.5 A4Q P+ 2.0T 6MT Monsoon Gray; 2009 B8 A4Q P+ 2.0T 6MT Brilliant Red; 2005 B6 A4Q 1.8T 6MT Cambridge Green; 1995 B4 A90Q V6 5MT Pearl White; 1990 B3 A80Q I5 5MT Crystal Silver; 1984 C3 5000S I5 5MT Montego Black; 1978 C2 5000 I5 4AT Helios Blue; 1977 C1 100LS I4 4AT Signal Green; 1974 B1 Fox I4 4AT Sahara Sand.

  6. #6
    Junior Member One Ring StanNB's Avatar
    Join Date
    Oct 22 2024
    AZ Member #
    996647
    My Garage
    BMW E46, Kawasaki Z1000
    Location
    Germany

    Thanks for the links. it's very interesting.

    But how bring I back the (custom) menu items back to alphabetic order? In the end it looks dirty.

    Maybe they appear by upload date? Cause version is on top of the list. So, download all .esd files, rename all on MMI and upload again in alphabetic order will help? Or modify the file date on MMI? Just thinkin.

    Cheers!
    Last edited by StanNB; 06-13-2025 at 09:59 AM.

  7. #7
    Veteran Member Three Rings DrGER's Avatar
    Join Date
    Aug 31 2014
    AZ Member #
    279216
    My Garage
    '17 Audi A4Q 6MT CYMC/RJN, '11 VW GOV TDI 6MT CJAA/LHD
    Location
    NW OH USA

    @StanNB -- I don't know the answer to that -- I didn't take any time to fix this when we owned the car with MMI3GP.

    But I have an MMI3GP test bench project here and a couple working NAR main units to experiment with, so I may revisit this question some rainy day when we're home this summer. For example, maybe "touch" ( https://openqnx.com/static/neutrino/...s/t/touch.html ) can be used to re-order the screens in the GEM based on access/modification dates. --g
    2017 B9 A4Q P+ 2.0T 6MT Daytona Gray. Previous: 2014 B8.5 A4Q P+ 2.0T 6MT Monsoon Gray; 2009 B8 A4Q P+ 2.0T 6MT Brilliant Red; 2005 B6 A4Q 1.8T 6MT Cambridge Green; 1995 B4 A90Q V6 5MT Pearl White; 1990 B3 A80Q I5 5MT Crystal Silver; 1984 C3 5000S I5 5MT Montego Black; 1978 C2 5000 I5 4AT Helios Blue; 1977 C1 100LS I4 4AT Signal Green; 1974 B1 Fox I4 4AT Sahara Sand.

  8. #8
    Junior Member One Ring StanNB's Avatar
    Join Date
    Oct 22 2024
    AZ Member #
    996647
    My Garage
    BMW E46, Kawasaki Z1000
    Location
    Germany

    @DRGER: Thank you for the link. I tried anything with touch (changed access and modification time to any date, changed time to the original file time and so on) but nothing worked.

    The only way that worked is to download original.esd to sd card, modify to your needs, save as new .esd with other filename and copy the new content over the old one without rename or move the original file on MMI system. After that the file stays in the GEM on its old place and not in the end of the list.

    But if you want to create a new menu item that is in alphabetic order on the GEM, you have to edit the files on the firmware update in 'MU9498\efs-system\41\default\efs-system.efs; ..\51\default\efs-system.efs; ..\61\default\efs-system.efs (folders are from HN+). The intersting parts starts on line 294302.

    After editing you have to perform an Emergency Update to take effect.
    That's all I found out for now. Maybe u'll find another solution anytime.

    Question: Is it possible to merge two pictures in one with showScreen? Or resize the image something smaller and add own frame to an image? Or add custom text?
    Something like:

    * resize original image to from 800x480 to 717x400
    * create an overlay in 800x480 and cut out 717x400 with transparent background where the resized image fits in
    * join overlay with resized image

    Code:
    convert ${SDPATH}/myscreens/picture_full.png -resize 717x400 ${SDPATH}/myscreens/picture_full_resized.png
    cp -v ${SDLIB}/overlay.png ${SDPATH}/myscreens/picture_full_resized.png
    Thanks!!
    Last edited by StanNB; 06-16-2025 at 05:36 AM.

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


    © 2001-2025 Audizine, Audizine.com, and Driverzines.com
    Audizine is an independently owned and operated automotive enthusiast community and news website.
    Audi and the Audi logo(s) are copyright/trademark Audi AG. Audizine is not endorsed by or affiliated with Audi AG.