1. Attachments are working again! Check out this thread for more details and to report any other bugs.

Ottonavi HU: How to customize (a bit) the UI

Discussion in 'Gen 3 Prius Audio and Electronics' started by Bulle, Feb 12, 2012.

  1. MottiF

    MottiF New Member

    Joined:
    Oct 30, 2016
    8
    0
    0
    Location:
    Middle East
    Vehicle:
    Other Non-Hybrid
    Model:
    N/A
    Bulle, I am absolutely certain that it is related to the RoadRover HU. The reason: the sensors are not those cheap devices installed by some local mechanic, but built-in the car in the factory. Their signals are handled (both graphics and sound) by the HU. I also had the car checked in 2 garages and the official car maker's diagnostics computer said the sensors are alive and well. BTW, my previous car was from the same maker, with original sensors, and they showed their graphics on the original car info screen, and sounded through the original car speakers.
    I am waiting for the car importer's reply. I'll let you know.
     
  2. Sebasian

    Sebasian New Member

    Joined:
    Nov 18, 2016
    7
    0
    0
    Location:
    Argentina
    Vehicle:
    2017 Tesla Model X
    Model:
    N/A
    Hello. I'm looking at this thread and used the Skin editor to check out some skins and tune them.

    I'm owner of a Peugeot 5008 with a Roadrover skin for the 3008. I haven't found anything yet on these 2 issues:

    1) Skin editor seems to work well but on mi head unit (shell 4.00.x) it seems that there are 2 different iPod screens and editing the 2nd does not seems possible.
    2) After upgrading from shell 3.0.9 to 4.x I've lost the equalizer. The Equalizer worked on the version 3 and on version 4 it does not works. I've tried RRUIConfig tool to enable it but moving the sliders does nothing. It's a manager.exe issue?

    Thanks for the help in advance if someone can bring light to this for me.
     
  3. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    Hello Sebasian, welcome here.

    1) Not sure what you mean by *does not seem possible*. Not sure what you edit either.
    But I'm guessing that the iPod screen became unresponsive after using the RRUIEditor.
    The reason why is most probably because the skin is newer than the RRUIEditor itself; so it doesn't know how to handle the skin functions.
    The RRUIEditor is an official Roadrover tool but it was made for earlier skins versions; so new skins are not always editable by this tool.
    Bad design choice on Roadrover part... and not easily fixable now.
    On the other hand, you can always use the RRUITool to fix things (it can fix anything UI related) but it's a bit more difficult.

    2) If the Equalizer was working before, it should still work (unless you change the MCU firmware).
    I would be surprised if your version of 4.x manager.exe doesn't handle it. Possible but highly improbable.
    May be the 4.x skins have been modified by the RRUIEditor and lost their functions; try again with one of the original untouched 4.x skin.
    If it still doesn't work, then we will have to take a look at your UI 3.0.9 and UI 4.x files to see where the difference lies.
     
  4. Sebasian

    Sebasian New Member

    Joined:
    Nov 18, 2016
    7
    0
    0
    Location:
    Argentina
    Vehicle:
    2017 Tesla Model X
    Model:
    N/A
    Thanks for your answer and your interpretation on my bad spelling. Will try the RRUITool then get back to you. The skin was unmodified and the MCU as well. Will do some more troubleshooting then post whatever I found.

    Thanks again!
     
  5. Sebasian

    Sebasian New Member

    Joined:
    Nov 18, 2016
    7
    0
    0
    Location:
    Argentina
    Vehicle:
    2017 Tesla Model X
    Model:
    N/A
    Hello, Im' back again.

    I'm attaching the 4.00 and 3.0x Skins, the skin came with the stereo, the manager 4.00 and new skin where copied to solve a issue with the display of the fuel trip computer over other screens. So far the EQ with the manager 4.00 won't work even after fiddling with the config tool.

    As per skin editing. I'm trying to edit the "Color Peugeot" (from METRO) skin I've attached using notepad and RRUItool in order to clone the original iPod Screen (Screen 041 in RRUITool) to the new screen used in the Original 3008v3 skin (Screen 065), since the Color Peugeot screen does not have skin for the iPod App and the UI gets garbled and text overimposed when track name changes (see pic attached). I've saw a post earlier about different skins but I cannot edit them.

    I've tried to copy paste the code block for the skin 041 in the Color Peugeot.rrui skin to a screen 065, updating the SCREENS but it would not appear as ID 65 in the list of screens of RRUITool.
    Is there a guide for screen editing/cloning? I'm looking forward to change the skin but have a working/usable iPod Screen.

    Thanks for the guidance.
     

    Attached Files:

    #665 Sebasian, Nov 26, 2016
    Last edited: Nov 26, 2016
  6. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    Hello Sebasian,
    many questions here... I will take a look into them in the next few days; be patient.
    Thanks for posting your files.
     
  7. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    Hello Sebasian,
    I looked at your files... Here are a few comments.

    1) The files in 3008v3.zip and 3008v4.zip are exactly identical; only the skin name file has changed.
    You said it supposed to be a new 4.x skin so check again your files.
    If it was really provided as a 4.x skin than it would mean that somehow the 4.x manager lost the EQ function (hard to believe...).
    So please check again the zip files you sent.
    As for EQ, again, the best way to make it work under 4.0.x is to provide an original 3.x skin that you know FOR SURE was working under 3.x manager. Then we can pick any 4.x screen , import the data functions from the working 3.x skin and test it under 4.x. Should work.

    2) As for skin editing, you said there was a pic attached to show the problem; could not find it.
    Maybe you meant that RRUITool displays garbled text in the UI screens; that would be normal; very primitive tool...
    But the skin itself should be fine when displayed on the unit itself.

    3) Copying a block of code for screens should at least work in the RRUITool. 65 should show up.
    May be you should submit the original .txt file you changed (the *source code*) so we can check what went wrong.

    I realize the documentation (and the tool) are not top notch (really bad in fact) but that's all we have right now.
    The format is simple but you need to double check what you have changed before creating a new .rrui with the tool.

    Let us know how it goes!
     
  8. Sebasian

    Sebasian New Member

    Joined:
    Nov 18, 2016
    7
    0
    0
    Location:
    Argentina
    Vehicle:
    2017 Tesla Model X
    Model:
    N/A
    Thanks!

    I'll try to go step by step.

    1). For sure are the skins that came with the unit and where provided with manager 4.0. Maybe the skins are the same. As for now, the eq won't work again even with the manager version 3 0.9. I'm puzzled because I know it worked when I received the unit. So far it sounds good anyway so I'm leaving this aside.

    2) the garbled text was shown in the unit, not RRUITool. In mi case I have a "Media Library" button for the ipod screen whereas other skins have buttons for playlist, artist, albums, etc. But that screen that appear on many of the skins that I've downloaded mainly from china-rns does not show up on the "linkpod" app. I see now that i have not attached the picture

    3) will do. As soon as I get my notebook back where I have the edited skin...

    For issues 2 and 3. As soon as I get my notebook back I will try to add screenshots of what appears on the screen and how I see it on my unit.
    I appreciate your dedication as well. Thanks again

    Ps: is there a config ini setting that indicates what iPod version, app, screen etc should It use? I just found the option support_ipod_video which if set to 1 shows a video button between audio and podcast on the linkpod app.
     
  9. Sebasian

    Sebasian New Member

    Joined:
    Nov 18, 2016
    7
    0
    0
    Location:
    Argentina
    Vehicle:
    2017 Tesla Model X
    Model:
    N/A
    Well.. so much for testing.

    I tried to put a manager.exe for version 2.96.6 I think for the Citroen C4 which shares much with the Peugeot. Now I cannot go back to the 3.0.9 or 4.0 since whenever I run update.exe the desktop wont come up...Also the ipod does not works... :(
    Will try with the cecmd.exe method tomorrow, at least to rename the old 2.96.6 version and go back to the 4th.
    So far the manager.exe for version 2.96.6 brings up the iPod screen that is on the skins downloaded from china-rns, and not the newer one with the Media Library Button.

    Update: Back to manager 4.0 with CECMD and going to the desktop
     

    Attached Files:

    #669 Sebasian, Dec 4, 2016
    Last edited: Dec 4, 2016
  10. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    Hi Sebasian,

    thanks for the new info.

    1) So from what you said now it's not so sure anymore if your unit does support EQ. To find out, you will need to run one of the MCU firmware update tool (without updating the firmware of course). This tool will report the radio chip model and that would tell us if EQ is supported. If I remember, TEF6624 Audio chip only have the 3 bands equalizer. Check it out.

    2) The picture you attached seems to show that manager.exe does not know how to handle the skin graphics properly. When it is the case the unit just falls back to its default internal skin. So may be the skin needs to be fixed.

    3) OK; will wait.

    4) iPod settings... Keys are added to the config.ini file very often so it's hard to keep track of every change RR made and which ones are supported. There is also a ipod_usb key (0,1) but I think it's related to the fact that previous unit versions had a plug in the back (which was not a standard usb). Not sure if there are any other key for ipod. Also I believe the choice of using ipod screen A versus B is based on the manager.exe version; not controlled by the skin itself. I also suspect that ID functions from both screens are actually available in manager.exe. This means that in theory, one should be able to copy-paste the functions ID from the unused screen to the used screen and make it work. But that would require further testing. That's why I said: if you can find a skin that works for you then we can probably copy-paste the functions to another skin using the RRUITool as long as it's the same manager.exe.

    Hope that helps.
     
  11. MottiF

    MottiF New Member

    Joined:
    Oct 30, 2016
    8
    0
    0
    Location:
    Middle East
    Vehicle:
    Other Non-Hybrid
    Model:
    N/A
    Hi Bulle
    You say that "we can probably copy-paste the functions to another skin using the RRUITool".
    I understand that you're referring to behavior, or functionality, not just graphical appearance.
    How is this done with RRUITool? If you already explained it, please refer to the appropriate blog's page.
    I am still struggling to improve the iPod screen : make the lists scrollable and wheel controlled.
    Thanks,
    MottiF
     
  12. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    Hi MottiF,

    here is a *short* explanation.

    The RRUITool can read a .rrui binary file and generate an equivalent pseudo-formatted editable .txt file.
    You can then edit that formatted .txt file to your taste.
    Then the RRUITool can read back your txt file and generate a new .rrui file (skin).

    To change the .txt file you need to know how to handle the RRUI file format.
    The RRUI skin file contains a list of possible screens for the unit.
    Some of those screens are not necessarily enabled depending on your unit hardware (like the equalizer screen).
    Each screen is in fact a list of UI elements that represents not only the visual (associated graphics) but also its behaviour.
    The behaviour describes how it reacts visually and also how it reacts inside the manager.exe.
    This is basically a ID function (number) that is interpreted and executed by manager.exe.
    So you can change the ID function of a UI element; manager.exe will now execute a different function.
    Obviously you can not change the code of the function itself because it resides inside manager.exe.
    Not so much control you say but at least in this way we can copy-paste from skin to skin some of the behaviours we like.

    The long explanation is inside the Help file that comes with the tool. Click on Help in the RRUITool Menu.
    You will find there a bit more explanations along with the *known* RRUI description format.
    (I say *known* because there are still a few fields which we are not 100% sure...)

    Remember that editing those skins with the RRUITool is a hack.
    Those skin screens are in fact Windows CE windows with Windows messages (ID function).
    So they were designed with a specific behaviour in mind.
    So any change you made might actually break that design.

    So do your testing properly!
     
  13. MottiF

    MottiF New Member

    Joined:
    Oct 30, 2016
    8
    0
    0
    Location:
    Middle East
    Vehicle:
    Other Non-Hybrid
    Model:
    N/A
    Thanks Bulle
    What is "the ID function of a UI element" ?
    For example, is this the function ID of element 0 ?
    //// Element #0 ID: 00c9
    c9 00 00 00

    Is there a difference in behavior between
    EP2=000a0001
    and
    EP2=00000001

    SP=0
    and
    SP=1

    these are the differences I found in the iPod list screen in the 2 skins I uploaded a while ago, besides differences related to color, font, and picture id.
     
  14. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    1) Yes; this is equivalent to a Windows ID that will eventually receive a Windows message. So for example, when this UI element (or ID) receives a Click (touch) message, manager.exe will execute some specific code (or function) for that UI element.

    2) Should be. At least in terms of visual appearance. But EP2 seems to be dependant on the element itself. So this means that the same value might produce different behaviors depending on the element which receives that message. That's what I meant by you need to experiment. Some of those fields are actually a placeholder for combinations of different values and RR probably add more values with the new skins. You can check with the old RRUIEditor to see what they are but again the new values might not be recognised by this old editor version.

    3) You probably meant SP1. This is the 3D style for a window. Never used it so I don't know if it is working or not. These window control styles are all explained in the doc itself; you can either read about them at the beginning of the skin .txt file or in the Help menu in the RRUITool.
     
  15. MottiF

    MottiF New Member

    Joined:
    Oct 30, 2016
    8
    0
    0
    Location:
    Middle East
    Vehicle:
    Other Non-Hybrid
    Model:
    N/A
    Bulle,
    Regarding the iPod lists screen problem:
    In all the skins I tested, I found 2 main types: The first has iPod lists that are full, meaning, contain the complete index list, but are not wheel controlled. The second is wheel controlled (can be scrolled and selected from wheel), but contain only 30 items.
    I also found that in every skin of the "first" type, the iPod list screen has tab order = 0. In every skin that allows iPod list wheel control, the tab order of the iPod list element is set to 1.
    Also, I took one of the "first" type skins, changed only one byte (the tab order), and the effect was lists limited to 30 items, but wheel controlled.
    In my opinion, the only way to explain it is : either it's a blunt bug in Manager.exe, or there's some other setting (EP2, etc.) that causes this limitation only when tab order is set to > 0.
    Can you think of any way to figure out if there's another setting that causes this strange behavior?
    Are you aware of any tool that can be used to un-assemble Manager.exe ? Is it doable?
    Regards,
    MottiF.
     
  16. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    Nice work MottiF!

    So now we know a little bit more about the iPod implementation; the list allocation and the wheel controlled feature are dependant.
    They shouldn't be of course.

    1) So yes may be a blunt bug. And maybe worst; instead of reusing or improving the existing code they branched away based on the tab order but in the process *forgot* to implement all the wheel controlled messages; really too bad. Not much we can do here.

    2) About the settings... Normally the Windows styles are used just for controlling some visual aspects. Of course, a programmer can decide to implement his own interpretation (like the tab order) but then it becomes difficult to find out the new meaning of the field. I would be surprised anyway if the programmer encoded the list maximum value in there. No I'm afraid that what you see is what you get; the first version was limited to 30 but wheel controlled; the second has a new (may be dynamic) list but lacks the wheel-controlled feature.

    3) There are a couple of Windows CE ARM disassembler and even decompiler available on the net but most of them are unreliable, incomplete and hard to use. But there is one called IDA by https://www.hex-rays.com that really shines above all the others.
    Could be expensive; you have to check what they offer nowadays.

    Back to your problem, to *fix* this, I would probably keep the second type skin ( tab order=1 to get the wheel control feature) and find the code spot in manager.exe where the allocation list is done and change the value to a better value; hard to find (even with IDA) but easy to change. We may find out later that this does not work or causes other problems but I would give it a try.
    There is no problem in editing or modifying manager.exe; I did it for editing the RDS type and everything was fine.
    Only problem with this approach (if it works) is you have to change manager.exe for each UI version you use... But that's doable.

    Thanks again for sharing your find.
    Hope that helps; let us know!
     
  17. Sebasian

    Sebasian New Member

    Joined:
    Nov 18, 2016
    7
    0
    0
    Location:
    Argentina
    Vehicle:
    2017 Tesla Model X
    Model:
    N/A
    1), I'm digging up the MCU firmware update tool to test it. as soon as I get it I'll go back.

    2) My thought. in your post about "some rr skins" you posted some that need fixing. I'm tweaking them. Still playing around until I find a skin that does what I need.

    3) I'm giving up on this, I rather use an existing skin and customize it than adding the code for a non existing screen, there are many (such as 2nd row video out, and other stuff)

    4) So far I'm doing that. thanks for all your help

    I'm adding a skin (work in progress) based on the Golf7.rrui,
     

    Attached Files:

  18. Bulle

    Bulle Member

    Joined:
    Nov 5, 2011
    378
    49
    0
    Location:
    Canada
    Vehicle:
    2011 Prius
    Yes, very nice. Golf for some reason has very elegant skins.
     
  19. Sebasian

    Sebasian New Member

    Joined:
    Nov 18, 2016
    7
    0
    0
    Location:
    Argentina
    Vehicle:
    2017 Tesla Model X
    Model:
    N/A
    Helllo

    I've burning the midnight oil I think... I've used the images of the excellent Customskin3 from bronco501 at china-rns and edited the Peugeot 3008 skin to customize it to my liking.
    A few screens missing yet and pending tweaks to the volume+ - buttons and exit/minimize, the rear screens options and the reverse screen with camera are to be done. but it works.

    Based on the original 3008 skin I mainly did:
    • Edited the skin using RRUIEditor
    • I've used RRUITool to save the TXT file
    • Notepad++ in order to find the screen to modify
    • Find the IDTEXT value as a reference (from RRUIEditor lang.txt) and replace the items "ID: 0000" with the correct ID for the button, menu, etc.
    • Saved the skin again using RRUITool
    So with no more prologue find the skin attached.
     

    Attached Files:

  20. MottiF

    MottiF New Member

    Joined:
    Oct 30, 2016
    8
    0
    0
    Location:
    Middle East
    Vehicle:
    Other Non-Hybrid
    Model:
    N/A
    Hi Bulle,

    I got a price quote for IDA disassembler. It costs, believe it or not, 2700$.
    There are some other free alternatives which I can try.
    From your experience, can you give some general guidelines for how to start searching the relevant code (calling a specific function id/screen)?

    Another issue, relevant to all Android users, and not specific to Road Rover:
    Apparently, one of the latest Android versions causes many problems in bluetooth. I found that my Android 7.1.1 no longer syncs contacts with the car HU.
    My older phone, running Android 6.0, syncs contacts with no problem. The web is full of complaints about this, regardless of phone or car maker.
    I found out that if I share contacts from the phone to the connected bt device (which is the car), the contact list is getting populated.
    But as soon as it's done, the RR software immediately clears the contact list, and initiates a phonebook download, which fails.
    So, the question is: Is there a way to prevent RR software from downloading the phonebook? I found the config.ini bt_pb_num. Do you know what it's used for?

    Thanks,
    MottiF