Announcement

Collapse
No announcement yet.

E46 M3 cluster swap

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

    #76
    10,000 - lol. Yea - right. At $5 a pop. Good luck with that at buying them in the real world. If you have a souce, I'll give you a handy.

    Here ya go - the smallest foot print trimmer for the least $. Mouser number: 81-PV36Y502C01B00 - $1 each. Took a long time and lots of orders to finally find someone that recommended it. Decent PPM.
    Last edited by george graves; 04-10-2012, 06:22 AM.
    Originally posted by Matt-B
    hey does anyone know anyone who gets upset and makes electronics?

    Comment


      #77
      it's not dead yet :)



      V1.5... the op amp didn't work to power the backlights, it couldn't provide enough current (it worked but they were very dim). I didn't want to deal with it anymore, and I run my lights at full brightness anyway, so I'm going with switching it off the E30 lights with a transistor. I also realized I could max out the # of holes in one board (350) and create a pretty large area for protytpe circuits, in case I want to add something later.

      gas gauge is working, still hacking the calibration of the cluster, but I'm close. the end points are easy but the E46's fuel curve is non-linear, so I have to make it linear like the E30's fuel gauge (basically get 1/2 to equal 1/2).

      speedo/odometer calibration is done. turns out to be pretty easy, I can make it whatever I want. I believe the E46 uses 10 pulses per revolution instead of 9 like traditional BMWs, but that's easily taken care of with the K-factor.

      once the board is done and the fuel gauge is calibrated I can wire it up and work on the faceplate..
      Last edited by nando; 07-13-2012, 09:24 AM.
      Build thread

      Bimmerlabs

      Comment


        #78
        i just read this whole thread. my head hurts now, and i feel like English isn't my first language.
        IG: @Baye30

        FRONT VALENCE IS ZENDER!!! STOP FILLING MY PM BOX PPL!!!

        Comment


          #79
          lol, I didn't think it was that bad :p

          I haven't even posted any of the coding stuff, which wouldn't even be possible without software like NCS Dummy.
          Build thread

          Bimmerlabs

          Comment


            #80
            I didn't think the e30 gauge was linear. Never seemed that way.
            https://www.youtube.com/channel/UC-h...wE3UqwjjmaTrXg

            Comment


              #81
              The output of the senders is pretty straight
              Build thread

              Bimmerlabs

              Comment


                #82
                ahh, the fun part:

                PARZUWEISUNG_FSW : {} 000000C4 001E 0596 {} (FF,FF) {h} {} // TANK_KENNLINIE
                PARZUWEISUNG_PSW1 : 0207 (00,08,11,19,21,00,48,00,99,00,EA,01,3C,01,86,00,0 7,0D,14,18,00,48,00,88,00,C8,01,09,01,33) // 60_l_literskala
                this is the curve(s) for the fuel gauge. there are two ADCs, but I have them wired together (E30 only has one sender anyway).

                the first line basically defines what it is you're calibrating and the format for the data, the second line is the variable & data. in the first line (FF,FF) tells you the data is grouped into 2 byte chunks. so it breaks down like this:

                00,08
                11,19
                21,00
                48,00
                99,00
                EA,01
                3C,01
                86,00
                07,0D
                14,18
                00,48
                00,88
                00,C8
                01,09
                01,33
                converted to decimal:
                8
                4337
                8448
                18432
                39168
                59905
                15361
                34304
                1805
                5114
                72
                138
                200
                265
                307
                the tough part is figuring out what these values mean. the last 5 pars of hex values control ADC1. 2-6 I'm not sure about, but when I changed them ADC2 went totally flat. 7-10 seem to control the endpoints of ADC1. I haven't tried changing the first value (00,08) yet.

                what I need to do: with the E30 gauge set to 1/2 (about 4.5v) the E46 cluster reads about 1/4. empty and full read correctly because they are controlled by the op-amp.

                some interesting bits: inside the cluster, the liters at "full" actually max out at 57. ADC1 reads 0-24l, ADC2 reads 0-33l. the tank actually takes ~64l with the reserve (coincidentally the same as an E30). Using the values above I should be able to make it read however I want, but I haven't got it figured out yet. I'm basically at the stage of trial and error.

                I know there is a pattern there and they definitely look like curves but it's got me pretty stumped.

                on the other hand, setting up the speedometer/odometer was easy.

                CODIERDATENBLOCK : {} 0000007E 000A "KM_Werte"
                PARZUWEISUNG_FSW : {} 0000007F 0001 019E {} (FF) {h} {} // OFFSET_GESAMTWEGSTRECKE
                PARZUWEISUNG_PSW1 : 0007 (5A) // wert_01
                PARZUWEISUNG_PSW1 : 0502 (09) // 7595_imp/mile
                PARZUWEISUNG_PSW1 : 0032 (00) // grundcode_var
                PARZUWEISUNG_FSW : {} 00000080 0002 0559 {} (FF,FF) {h} {} // K_ZAHL_WEG
                PARZUWEISUNG_PSW1 : 00BB (13,30) // 4912_imp/km
                PARZUWEISUNG_PSW1 : 00BD (11,09) // 4797_imp/km
                PARZUWEISUNG_FSW : {} 00000082 0002 055A {} (FF,FF) {h} {} // K_ZAHL_WEG_KOMPL
                PARZUWEISUNG_PSW1 : 00BB (EC,CF) // 4912_imp/km
                PARZUWEISUNG_PSW1 : 00BD (EE,F6) // 4797_imp/km
                PARZUWEISUNG_FSW : {} 00000084 0002 0557 {} (FF,FF) {h} {} // K_ZAHL_TACHO
                PARZUWEISUNG_PSW1 : 0007 (11,09) // wert_01
                PARZUWEISUNG_PSW1 : 00BA (13,61) // 4961_imp/km
                PARZUWEISUNG_PSW1 : 00BD (12,BD) // 4797_imp/km
                PARZUWEISUNG_PSW1 : 00BC (12,EE) // 4846_imp/km
                PARZUWEISUNG_FSW : {} 00000086 0002 0558 {} (FF,FF) {h} {} // K_ZAHL_TACHO_KOMPL
                PARZUWEISUNG_PSW1 : 0007 (EE,F6) // wert_01
                PARZUWEISUNG_PSW1 : 00BA (EC,9E) // 4961_imp/km
                PARZUWEISUNG_PSW1 : 00BD (12,BD) // 4797_imp/km
                PARZUWEISUNG_PSW1 : 00BC (ED,11) // 4846_imp/km
                values in bold are ones I've modified.

                these are pulses/km. I believe the DSC computer sends 10 pulses per revolution (BMW used 9 pulses for many years, but it was a physical wheel pattern rather than a computer signal). using this formula:
                k = (9*63360)/(pi*tire_diameter)
                then converting to KM (multiply by ~.62), and then figuring for a 10 tooth signal where the E30 is sending a 9 tooth signal, I came up with a K factor of approximately 4361 pulses/km.

                Calibrating the odometer and speedometer is merely a matter of convering 4361 to hex. There is one complication, the speedo and odometer settings have a normal and an "inverse" value. I have no idea of the reason for this but it's pretty easy to do.

                K_ZAHL_WEG isthe "normal" k-factor for the odometer.
                K_ZAHL_WEG_KOMPL is the "inverse" k-factor.
                K_ZAHL_TACHO is the "normal" k-factor for the speedometer.
                K_ZAHL_TACHO_KOMPL is the "inverse"

                11,09 is hex for 4361 (ignore the "4797_imp/km on the right, it's very difficult to create your own variables and I decided it's not worth it). basically to "invert" it you just swap 0's for F'ss, 1's for E's, 2's for d's, etc. so the inverse of 11,09 is EE,F6.

                I haven't tested this in a car, obviously, but it appears to work fine on the bench. Fortunately I can change it to pretty much anything I like, so even if my assumptions are wrong I can adjust it later.

                there's one other value:
                OFFSET_GESAMTWEGSTRECKE

                it's supposed to be "total distance offset"; supposedly the "added" value to make the speedo read purposely higher. well, as far as I can tell, that's not true, and it doesn't seem to affect the speedo at all. in fact, the speedo's K factor already has a 5% adder built into it (over the equivalent odometer K-factor). I tried making this value very large and very small and it made no difference, so I'm leaving it as default and working with the K-factors instead.

                there are tons of other variables you can change or modify in the cluster but most of them are simply selecting a different value or turning something on or off, rather than creating custom settings.

                I turned of the (very annoying) beeper/warning, many of the error lights, the SMG display, etc. etc. you can also change the SI indicator interval (either to predefined values or create anything you want). fun stuff.

                it's actually funny how customizeable the cluster is in comparison to the DME.. too bad MSS54 isn't as "simple".
                Build thread

                Bimmerlabs

                Comment


                  #83
                  Originally posted by golde30 View Post
                  i just read this whole thread. my head hurts now, and i feel like English isn't my first language.
                  I'm right there with you..

                  Amazing work!

                  Any chance you'd be willing to make (sell) more once you get it figured out?

                  Comment


                    #84
                    Poop.. double post.

                    Comment


                      #85
                      Making the adapter boards and programming the clusters is the easy part (for me). the difficult part is making it fit inside the E30's dash/cluster housing, which I haven't begun to tackle yet.

                      the PCB's cost about $21 each, the components are maybe $20. I paid $120 for the cluster. I've added a digital oil pressure and wideband gauge. the countless hours of time, R&D, trial and error, testing.. I don't even know :)

                      I think I could probably make more but it wouldn't be cheap. but maybe people doing swaps would be interested? I think the E39 M5 cluster is basically the same thing, if somebody was doing an S62 swap. You also need a DME to run the tachometer, oil temp, and coolant, which wouldn't make sense if all you wanted was the cluster.

                      anyway, I want to finish this one and have everything working before I even begin to think about making more.

                      FWIW, people think that the cluster will throw a checksum error if the LCM is missing or the VIN doesn't match between the cluster/dme etc. They're wrong. :)
                      Build thread

                      Bimmerlabs

                      Comment


                        #86
                        Really happy you bumped this thread!

                        Awesome project man, I bought an E46 M3 parts car not long ago with my partner and I'd love to do this with my car!!

                        I'd love to pick your brain a bit when/if I do get around to this!
                        IG: deniso_nsi Leave me feedback here

                        Comment


                          #87
                          A parts car is definitely the way to go! I don't think my wife would go for that, though. :p

                          I just made 30 different calibration files with differing variables for the fuel gauge to try and pick out what affects what. ugh.
                          Build thread

                          Bimmerlabs

                          Comment


                            #88
                            LOL if I had a wife I don't know if I'd be able to accomplish or pursue the things I'm doing now. I don't have enough time to devote to someone else right now.
                            IG: deniso_nsi Leave me feedback here

                            Comment


                              #89
                              Originally posted by dude8383 View Post
                              LOL if I had a wife I don't know if I'd be able to accomplish or pursue the things I'm doing now. I don't have enough time to devote to someone else right now.
                              Isn't there a little one in the picture too? Nando you must be a horrible father lol :p (seriously though awesome work, no idea how you do it with all your other responsibilities)
                              paint sucks

                              Comment


                                #90
                                I have two kids under 3. one "helps" when the other is napping. lol
                                Build thread

                                Bimmerlabs

                                Comment

                                Working...
                                X