No announcement yet.

I-bus reader / writer for Bmw and Mini

  • Filter
  • Time
  • Show
Clear All
new posts

  • I-bus reader / writer for Bmw and Mini

    I'm on the way to make a tiny thing to read and decode I-bus for linux.
    Actually i can't show it working because i can't approach the car enough from home to plug the device, so i will make the reverse and drop this bit of software in the car's computer, if it works ok then i'll release this tiny thing which can be usefull for some bimmer and mini owners.

    So the main panel (black one) is howing connection status and rough data as it comes on the i-bus, the line under shows the sentence and more under the sentence decomposed in it's meaning.

    We also have the possibility to send arbitrary hexadecimal code to the i-bus.
    buttons open and close are acting on the port.

    If all this works as planned then i will also add a logging towards a file to retrieve the sawn codes, this sould avoid writing on paper and would avoid errors as well.

  • #2
    The stream is polluted with some garbage data even if nothing is activated, i nevertheless noticed that the message telling me to insert card in the phone is altered so i suspect that some settings within the virtual serial port are wrong, so i added buttons that allow changing speed and several params within the i-bus reader.

    Now as the messages coming from the i-bus are not clear, i suppose that i have to program something inside which will do the guesswork about data running on the bus...

    The receving is ok, even the conversion into hexa works, i tried at home with the gps which sends data like any other serial device would, when i tried in the car, only fast garbage (ASCII) and decoded Hex is coming but nothing significant enough to be used "as is"...


    • #3
      Here's what i'm talking about....(actually testing with serial usb converter from the gps device) tomorrow morning i'll drop again the thing in the car and check with i-bus...

      So have to check if i find significant keys inside stream of data


      • #4
        have you seen the hacktheibus yahoo group? all the ibus message have already been decoded, and the message format is all there.
        [BMW E46 ///M3 Convertible]

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


        • #5
          Thank you for the advice which could reduce efforts to do something already done i'm not trying to reinvent the wheel

          The first idea is more to build a sniffer for linux, second because most of codes have been discovered that's absolutely right some of them seems still remains in the dark side...and i would like to recover functions from the mid i used to have before the screen was installed, so i'm building this thing.

          Anyway it's not a revolution, only a simple tool to read from a simple serial port
          I'll see tomorrow morning to make a list of "keywords" already discovered and put them in a kind of ini file so the program will be able to identify and deal right with those codes.

          love this one lol > makes me think about things i do and that don't want to work


          • #6
            hehe. I see what you're trying to do now.

            have you seen ibusmonitor? that might help you a little as it shows the source and destination of every message on the ibus, as a live graphical feed. This should allow you to visualise things a little better.

            let me know if you can't find it.
            [BMW E46 ///M3 Convertible]

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


            • #7
              For personal moral reason i prefer to not rip other's work, i have enough very clever remarks about the fact that i'm using other's elements built within linux...(like the kernel LOL !!!) so i prefer to start and do my own work, i'm tired of rants and complaining people because i'm planning to sell my software, but this another topic

              SO...anyway here we are, it seems that this bit of code did the job for what i was looking for, unfortunately i have to visit a company for which i build something tomorrow so i won't have time to play more with the i-bus starting from tomorrow till the next week but what i saw is ok for me.

              Here are pics of it at work

              while idle

              while pressing some buttons

              I integrated the plus / minus buttons and the phone button i used to play/pause song or video from the steering wheel had not enough time to do tries with other buttons and integrate them inside my software, anyway it works like a breeze and is promising

              to see it work within my software it's here, there's a link with a video.

              btw as promised i will also prepare a package of the binary and source files, i'll post them this evening.


              • #8
                cool! keep up the good work
                [BMW E46 ///M3 Convertible]

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


                • #9
                  I thinks it's almost done, it was intended to be a tool to let me access and do something else inside my own software hehe
                  So if some people want to grab those files and maintain them they are welcome i won't go forward with this tiny tool ha ha i definitely like this one >

                  Here are the promised files.

                  They are two rpm packages and one tar archive.


                  You will need to get runtime for your own distro from this place

                  I know, it could be written in c but i don't care, i wanted something to be drafted quickly to let me reach my targets so it has to be written in a snap with graphical interface i can manipulate in my car with the touchscreen, this tool won't remain in my car's system anyway but no one forbids who wants to write it's own thing to be used in console mode


                  • #10
                    not so usabe as is...well at least for the very first version, so you will find here some mods, autoscroll panel, raw panel, clear button, logging raw data in a file to replay or check later and better formatting of displayed data, i also added a filtering but i don't know if in every bmw there is a noisy babbling ibus but mine was polluting my display, you can remove those filters if not needed on your side.

                    I also found with this little bit of code that i-bus is replying with [ack] or [nack] or [eot] which is usefull to check messages status or data exchange in addition to checksum.

                    New source archive, only tarball sorry


                    Please also notice that if you break something with this don't blame me, you are responsible of what you are doing.

                    Notice as well that the picture above is not your friend, the display shows data coming from my gps for tests purpose at home, so the speed and other parameters are wrong for i-bus as shown on the screenshot. They should be 9600, Even, 8,1

                    Good luck


                    • #11
                      Well...after returning the thing in every way, there's no way at the moment to write something that the i-bus can understand. I think that next time i'll rather buy or build a real serial interface instead of USB which sucks.


                      • #12
                        After a good night things are more clear

                        Datasheet of the Melexis, interesting page 4 with timings and how to manage to write enable the interface.
                        I'll check this to see if it can write to the bus or not.