Announcement

Collapse
No announcement yet.

Integrating ECU Master ADU7 into OEM DME

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

    Integrating ECU Master ADU7 into OEM DME

    Heya everybody.

    Currently looking at options regarding the race car and one thing i've been wanting to do is integrate a ECU Master ADU7 dash and PMU, whilst for now, retaining the stock DME. Having never done CAN or similar, i'm definitely treading new waters on my end.

    Having reached out to ECUM, the ADU7 does not natively support the BMW CAN protocol, however they mentioned that with a .dbc file, it can be done, but not much info beyond that. Doing some quick searching, i did find a .dbc file on Github, however not sure if that is the correct type to be imported.

    My previous experience with Standalones has been Holley stuff and that's about as easy as it gets, haha.

    If somebody has experience or could point me towards somebody familiar with ECU Master and the BMW side of things, i'd greatly appreciate it.

    Thanks!

    #2
    I have done a few PMU installs.
    Do you know what you want to control via CAN with the stock ECU?
    There is no point in monitoring all CAN data if you're not going to use it all.

    Comment


      #3
      Regarding OEM CAN data, it probably won't be much beyond RPM, Throttle Position and Water Temperature that is worth pulling for the ADU. The water temp then allows both monitoring and fan trigger in the PMU. Fuel level might be interesting, however that is already wonky with the E36 transfer pump, so i may just monitor that differently.

      Separate sensors for Oil Temp and Pressure will be added since the OEM temp will go stupid without the ambient temp sensor and pressure wise, there is just a switch so figure doesn't make much sense to monitor those.

      Everything else body wise, such as running lights, headlights, wipers and those functions i'd throw on the PMU as well, replacing as much of the body control side as possible. Definitely need to dive into the wiring to make sure i'm not going too deep, hah.

      Comment


        #4
        Oiltemp is present unfiltered and unbuffered on the can bus at 0x545 byte 4. Also some fellas here made mss54 spit out more useful data on the can. I think heinzboehmer is running that program code with his Gauge.S

        Comment


          #5
          Originally posted by PenguinScotty View Post
          Regarding OEM CAN data, it probably won't be much beyond RPM, Throttle Position and Water Temperature that is worth pulling for the ADU. The water temp then allows both monitoring and fan trigger in the PMU. Fuel level might be interesting, however that is already wonky with the E36 transfer pump, so i may just monitor that differently.

          Separate sensors for Oil Temp and Pressure will be added since the OEM temp will go stupid without the ambient temp sensor and pressure wise, there is just a switch so figure doesn't make much sense to monitor those.

          Everything else body wise, such as running lights, headlights, wipers and those functions i'd throw on the PMU as well, replacing as much of the body control side as possible. Definitely need to dive into the wiring to make sure i'm not going too deep, hah.
          For this I would directly input the 4 addresses that you need in the ECUMaster software.
          Much simpler than building a .dbc file.

          The excel present in the Github has the data that you need.

          The point of the data sharing on the bus is that you don't need to add extra sensors sensors and just grab the data that the ECU processes.

          You can (and probably should) make a test wiring of the ADU on the bus and see if you are able to program it to read.
          I have no idea if both high and low lines of the bus are available on the OBD port of an E46, but I've made harnesses for that purpose that work great on GM vehicles. You can tap the power and ground directly off of the OBD port, those displays do not draw any significant amperage. Add a fuse if you're worried.
          Last edited by Bebop; 08-06-2025, 04:54 AM.

          Comment


            #6
            Chatgpt is pretty helpful in making custom dbc files. You should absolutely verify what it's saying, but it can give you a good starting place.

            > Prompt: Could you build me a dbc file that I can import into the ECU Master ADU7 dash for an e46 m3. I would like to monitor RPM, throttle position, water temperature, and oil temperature. Note that oil temperature is 0x545 byte 4.

            Output:


            Sure! Here's a basic .dbc (CAN database) file tailored for an E46 M3 that contains the four key signals you want to monitor via an ECU Master ADU7 dash:

            RPM
            Throttle Position
            Water Temperature
            Oil Temperature

            These signals are typically found on the BMW E46 M3 CAN bus (at 500kbps). The CAN IDs and signal layout provided here are based on common reverse-engineered data from the MSS54 DME. If you’re using a standalone ECU or a CAN bridge, let me know — the setup might change.


            Signal CAN ID Start Bit Length (bits) Byte Order Factor Offset Unit​
            RPM 0x316 16 16 Big Endian 0.25 0 RPM
            Throttle Pos % 0x1A6 16 8 Big Endian 0.4 0 %
            Water Temp 0x329 8 8 Big Endian 1 -48 °C
            Oil Temp 0x545 24 8 Big Endian 1 -48 °C

            Code:
            VERSION "E46 M3 Basic CAN"
            
            NS_ :
            NS_DESC_
            CM_
            BA_DEF_
            BA_
            VAL_
            CAT_DEF_
            CAT_
            FILTER
            BA_DEF_DEF_
            EV_DATA_
            ENVVAR_DATA_
            SGTYPE_
            SGTYPE_VAL_
            BA_SGTYPE_
            BA_DEF_SGTYPE_
            BA_DEF_DEF_SGTYPE_
            SIG_TYPE_REF_
            VAL_TABLE_
            SIG_GROUP_
            SIG_VALTYPE_
            SIGTYPE_ATTR_
            SIGTYPE_VALTYPE_
            BO_TX_BU_
            BA_DEF_REL_
            BA_REL_
            BA_DEF_DEF_REL_
            BU_SG_REL_
            BU_EV_REL_
            BU_BO_REL_
            SG_MUL_VAL_
            
            BU_: DME
            
            BO_ 790 RPM: 8 DME
            SG_ EngineRPM : 16|16@1+ (0.25,0) [0|16383.75] "RPM" DME
            
            BO_ 422 Throttle: 8 DME
            SG_ ThrottlePosition : 16|8@1+ (0.4,0) [0|100] "%" DME
            
            BO_ 809 WaterTemp: 8 DME
            SG_ WaterTemp : 8|8@1+ (1,-48) [-48|207] "C" DME
            
            BO_ 1349 OilTemp: 8 DME
            SG_ OilTemp : 24|8@1+ (1,-48) [-48|207] "C" DME
            ​
            Notes:
            -CAN ID 0x545 = Decimal 1349, so that’s reflected in the message block.
            -If you're monitoring this via a CAN sniffer, OilTemp will show up in the 5th byte (byte 0 = first byte), raw value = (Temp + 48).
            -If you'd like this as a downloadable .dbc file, I can generate one for you — just say the word.
            Phoenix Yellow e46m3 Build Thread
            Orient Blue E46 330i ZHP k24/dct/turbo Build Thread

            Comment


              #7
              Genius !

              Comment


                #8
                Thanks for all the info everybody!

                Didn't even think to consult ChatGPT for that, that's great to know! Will definitely verify, helps a ton to get the ball rolling though.

                Now i just need to figure out how to wire the wipers tot he PDM, hah.

                Appreciate all the input!

                Comment

                Working...
                X