Announcement

Collapse
No announcement yet.

BMW IBus-Heads

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • BMW IBus-Heads

    This is more for myself, but I figured I would share in case someone wanted to do something similar.

    ** Edit: See the bottom of the last post for the new version **

    After seeing what CDRSkull had done with IbusComM, I've made some modifications myself. I've removed my CD changer from my BMW which removes it from the mode menu as an option. To get it back so I can use the DSP's digital input, I've set an option in the .ini for CD Emulation. Usage is simply CDEmulation=true/false. If you still have your CD changer, you will want to set it to false so IbusComM doesn't fight with your radio over the bus.

    Using RR's SDK, I've also implemented native RR commands. Simply place the following line in the appropriate section - RRCommand = "RRNEXT" (or "RRPREV", etc.). The default KeyboardMap="xx" operates independent of the RR commands, so in theory, you could have a single button perform two separate functions such as sending a keyboard shortcut to one application and sending a native RR command to RR.

    And lastly, I've set up IbusComm to send track names and xm channel names to the textbar in the instrument cluster. You will need the high cluster for this to work, but the source could be modified to send the text to the mid. Also, the xm channel names will only appear if xm.skin is currently selected, otherwise it will display artist/track. This one's a work in progress. I hard coded the behavior for testing but will eventually provide some options in the config file. This is my first VB project so it's slow going for me (The last programming language I learned was a bit of Fortran in the early 90's). That being said, my additions to the code are pretty ugly so I'm including the source in the distribution for those who want to change things.

    Here's a couple pictures (please ignore the dust!):






    See my install here:
    540i / 320i Mods

    Get a free and lightweight blog here

    iPhone Hacks

    Thought Soup

  • #2
    That is so sweeet. It makes me want to put a computer in my 540i.

    Jon

    P.S. Do you have a V1 with the StealthOne unit?

    Comment


    • #3
      does it work for an e46? I have read that e46 cluster is not able to display text. Is that true? I have installed de IBUS software from CDR and it is integrated with my steering wheel controls.
      Thanks for your help

      Comment


      • #4
        Originally posted by thestoogeo
        That is so sweeet. It makes me want to put a computer in my 540i.

        Jon

        P.S. Do you have a V1 with the StealthOne unit?
        Thanks! No StealthOne in the car. I tend to take the long way lately - just to enjoy the mods. The arrows don't normally appear with the text, but I've got a burned out foglight that I haven't replaced yet.

        Originally posted by aal2000
        does it work for an e46? I have read that e46 cluster is not able to display text. Is that true?
        I don't see any reason why it wouldn't work *provided* that you have the high cluster installed in your E46 - not the one with the outline of the vehicle (low cluster). It should look similar to mine in the photos. Most likely, it's only an option on the 3 in conjunction with factory navigation. I know the 5's and 7's can get it without the nav, but I don't think the 3's can. It won't hurt anything to try it, though. The other modules on the ibus will simply ignore the data packet as the ones I'm sending are specifically addressed to the cluster.
        See my install here:
        540i / 320i Mods

        Get a free and lightweight blog here

        iPhone Hacks

        Thought Soup

        Comment


        • #5
          I've attached a revision - v1.0.60. I used a single apostrophe to mark the beginning and end of the track name text. As you can guess, when an apostrophe appears in a song title, the subroutine stops processing, builds the packet, and sends the name cut off.

          Oops!



          Now this is a little better!

          See my install here:
          540i / 320i Mods

          Get a free and lightweight blog here

          iPhone Hacks

          Thought Soup

          Comment


          • #6
            hey darth

            big thumbs up for doing the song names, love it how did you get rr to communicate with ibuscomm?

            I've got a couple of questions for you, since youv'e been at this thing.

            Like you, I've got an E39 but I haver a touch screen replacing my MID/TAPE combo. I've currently got the mid hanging off the side which is very annoying to my leg, and aesthetically. I'd like to remove it completely, but the MID has an important function. It sends a command every 10 seconds to the radio to make sure the radio stays on. This is different to other E39's that have an AMP in the back. My AMP is in the tape headunit

            Anyway, I've got the command that is required and have tested sending it using ibuscomm. I modified the ini file in your rar file to send a configured msgID of AMP_EMULATION, insteal of CD_POLL. This turns the AMP on when the MID's connected so I'm half way there. I now need a way of sending that every 10 seconds (or sooner). Any ideas how I can do that? It would be good if I could send two messages together when the CD is being polled. I tried to just put another entry to do that, but the second entry is ignored.

            I'm also thinking of how to emulate a scan forward/back on mp3's. I can see that the steering wheel's next/prev events are different for pressing, and releasing. I've been thinking of writing an app that would listen to these from ibuscomm and would diffrentiate between double clicks, single clicks, and holds. The reason I'd like this is because I only have vol+- and track+- on my wheel, so reusing them would be good.

            Finally, do you know how a button click on RR can be mapped to an ibuscommand through ibuscomm? i'd like to get RR to also control the volume, bass/treble, fader etc, and an OBC emulator would be cool too.

            Thanks a load!
            Current:
            [BMW E46 ///M3 Convertible]

            Previous:
            [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

            Comment


            • #7
              sama, is your CD changer still installed? If so, then your solution is easy and can be done with just a simple mod of the .ini. Under the CD message ID section just change the poll respond message to your mid message like so:

              Instead of:
              [ID:CD_POLLRESP]
              MsgTemplate="1804FF0200E1"
              Label="CD Poll Resp"

              make it:
              [ID:CD_POLLRESP]
              MsgTemplate=" insert your amp message here"
              Label="Amp emulate"

              The radio automatically broadcasts the CD poll every ten seconds whether or not you are currently using it. If your changer is still installed, it will respond on it's own so you can alter the response message in ibuscomm to send your amp message. The reason you don't see the message in the log file twice is because ibuscomm doesn't parse the CD_POLLRESP message that the CD changer sends back - you only see ibuscomm's response.

              If it's not installed, then you will need to add a timer subroutine to ibuscomm.frm in the source and recompile. If you send me your amp message template, I can add it for you with a toggle in the .ini.

              As for communication, I used the modules in the SDK example that Guino provides with RR (Thanks Guino!). I did very little more than just cut and paste them into the ibuscomm source and use a timer to monitor the current state of the trackname. Whenever it changes for any reason, ibuscomm builds the appropriate packet and sends it to the cluster.

              I've actually been thinking about how to send a command to Ibuscomm from an RR event (click or otherwise). RR can use sendkeys or sendmessage in the same way that Ibuscomm can so it would be a matter of keying ibuscomm on those events. Seems doable to me. I don't know that my knowledge of VB is up to the challenge, but I'm sure there are others around here who could whip it out pretty quick.

              IBuscomm can already differentiate between clicks and holds, just add a new message template to the .ini under the steering wheel section for the hold event and specify the action you want to send to RR.

              Let me know how the amp thing goes.
              See my install here:
              540i / 320i Mods

              Get a free and lightweight blog here

              iPhone Hacks

              Thought Soup

              Comment


              • #8
                hey darth

                thanks for the super prompt reply and the good idea. I got it working at once with the CD changer thing. I don't actualy have a CD changer, but I do have a soundlinx adaptor that uses the ibus to emulate a cd changer to allow an RCA AUX input. So allowing the adaptor to do the cd emulation, and ibuscomm to do the amp emulation worked a treat....

                however...

                the track names are now displayed for a fraction of a second, before the adaptor takes over and displays "CD 01-" or similar. I would acutally like to remove the ibus capability of that adaptor and just let it do the aux input (it balances the input so I'm keeping it for that). I would rather the ibus is completely managed by the computer as it's more flexibility.

                the msg template is

                [ID:AMP_EMULATE]
                MsgTemplate="C0036801AA"
                Label="AMP Emulation"

                If you could put in a timer subrouting I would love you forever!

                about the display... have you tried to animate it? like scroll the title in or simliar. some track names are a tad too long and are truncated. it would be nice if it scrolled them. I'm actually a programmer and can do this if I'm to learn a bit about VB (I plan to at some point... but then I've planned to for a couple of years now ). It would be super cool to have it also say:

                "Camera in 50m"
                ...
                "Camera in 40m"
                ...
                "Camera in 30m"

                I'm sure the GPS SDK guys can help out with this. the lon/lat can be retreived via the ibus.
                Current:
                [BMW E46 ///M3 Convertible]

                Previous:
                [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

                Comment


                • #9
                  Incredible work - I'm going to try to get this to work in my E46. I too would like to try to get it to scroll the text if too wide.
                  My install log
                  My "selling entire system" thread

                  Comment


                  • #10
                    hey sama, give this version a whirl. the toggle is in the .ini - AMPEmulation=true/false.

                    Hark, I've got an idea or two for scrolling the text - should have something together in the next few days.
                    See my install here:
                    540i / 320i Mods

                    Get a free and lightweight blog here

                    iPhone Hacks

                    Thought Soup

                    Comment


                    • #11
                      I love you forever

                      will try it shortly.

                      I've hit another booboo! when I remove the ibus wire from the sound linx adaptor, something happens to the sound. I think the adaptor is usng the 12v supply from the ibus to do something. I'll try to provide 12v from the other wire and hope that this way, I can bypass the adatpor's ibus intrusion, but still use it's leveling capability.
                      Current:
                      [BMW E46 ///M3 Convertible]

                      Previous:
                      [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

                      Comment


                      • #12
                        I would imagine that the adapter is actually processing/sending messages so it may not function properly without the ibus connection.

                        When the CD 01- comes up on the cluster that is actually the radio responding to the steering wheel button press. It sends a broadcast message to all modules on the ibus based on the selected source - ie. when CD is selected, you get the CD 01- and station frequency for the FM radio. It's possible that it doesn't do anything when the tape source is selected, but I don't own any tapes so I can't test it. Unfortunately, there really isn't anything that can be done about it. It works in reverse for me, the CD 01- comes up and then the trackname message blots it out.

                        Attached is the latest version - nothing new in it, I've just been cleaning up my code a little. (Can you tell my wife has been out of town?!!!)
                        Attached Files
                        See my install here:
                        540i / 320i Mods

                        Get a free and lightweight blog here

                        iPhone Hacks

                        Thought Soup

                        Comment


                        • #13
                          works! everything's as I like it now. though I did have to restart ibus comm a couple of times so it can put the cd mode back on. but that's fine. having manual buttons to do those thigns would be lovely.

                          another issue I noticed is that when ibuscomm is on, it steals focus. so where I wanted to use notepad whilst it was on, I would only get a second or two before focus would be lost. This also seeps into roadrunner when trying to switch on visuliation/external apps. do u get that at all?

                          I think I'll have to install .net soon and get familiar with this code.

                          many thanks for your continued support. my g/f also feels the lack of attention from my "other baby"
                          Current:
                          [BMW E46 ///M3 Convertible]

                          Previous:
                          [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

                          Comment


                          • #14
                            If you have the "AppCaptionSendEventTo" control set in the .ini, then prior to sending a keyboard map event ibuscomm will force the target window into the foreground. I just leave it set to ="". Ibuscomm will then send the keys to whatever application is on top, but RR stays nicely in focus for me and hasn't been an issue. (RR & Ibuscomm are the only two applications running on my pc, though.) I did notice in the code that I had implemented the same structure prior to sending the RRCommands and it isn't needed so I'll correct that in the next rev. If you're using just the RRcommands, then that should solve your problem.

                            I'll take a look at the need to restart on the CD option issue as well. The current code doesn't support anything other than software contention management (which is basically just a timer) so there are times when the bus might be crowded enough to cause collisions and packet corruption. At some point I'll implement the DSR / DTR contention method which should clear most of that up.

                            Glad to hear it's working for you so far (mostly, anyway). It's written in VB6 so you may have to make some changes for it to work under .net - I've got no clue though, like I said, I'm no programmer! Nonetheless, it has been a good learning experience.
                            See my install here:
                            540i / 320i Mods

                            Get a free and lightweight blog here

                            iPhone Hacks

                            Thought Soup

                            Comment


                            • #15
                              I have the AppCap... setting to "" also. have you tried winamp visualisation at all? that flics on for a second, then disappears.

                              Regarding the contention, my ibus does freak out it seems every now and then... or the radio gets overloaded or something 'cos i just hear some beeps through the speakers, then after a while the sound resumes.

                              So far it's working as you say, so I'm happy I'm getting VB6 this minute, so I can start messin with it too!

                              thanks for all the help, I'll keep you posted with any developments/regressions
                              Current:
                              [BMW E46 ///M3 Convertible]

                              Previous:
                              [BMW E31 850CSi]|[BMW E39 535i]|[BMW HVAC Research]|[IBUS Scrolling Text]|[BMPuter]|[Velocity]|[TomTom]|[Vision]|[Space Navigator Driver]|[Super Fast Boot]

                              Comment

                              Working...
                              X