Announcement

Collapse
No announcement yet.

Documentary - Motronic 1.7 DIY Reverse Engineering

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

    #31
    I used to be really into MS back in the day - I was one of the first to run an MS3 kit when it came out, I built MS1/MS2 PnP setups before it was even a thing, etc. My M20 still runs MS3 (mostly reliably), but honestly - I've been playing with OEM computers for the last 5 years or so, and I don't think I could go back.. at least, not on something that wasn't a complete toy/science experiment.

    After several years of constant tweaking just to keep it from driving me crazy (I daily drove with it for years, all 4 seasons, as my only car), I just could never do that again. There are some things, like startup, coast down, and idle, where the OEM computer 'just works' that you will almost never get right on something tuned from scratch. Sure, people will say theirs is fine - but I doubt many people here have put anywhere near as many miles or driven in as many conditions on Megasquirt as I have, so I don't really buy it.

    I've been working on a BMW tuning platform for the last two years - currently the oldest I support is MS45. I'd love to support these old Motronics but there's only so much time in a day..
    Build thread

    Bimmerlabs

    Comment


      #32
      Neat. Are most of the mid-90's and early 00's systems 8052-based, or something else entirely?

      Transaction Feedback: LINK

      Comment


        #33
        I received the 990 DME today. Yup, it is a cousin to the 175 DME, but there are differences. A lot of the IC's are updated versions of the previous ones, there's the A250 knock processor board, and one of the 6-channel mid-current drivers (S470) is no longer present.

        I have not gone though enough to say for sure, but I feel like regular M1.7 might be a more capable system because it seems a lot more generic (designed to run a lot of different engines) versus M1.7.2 which looks like it is a lot more specific to the M42 and it has a lot less unused outputs and IO's.



        Rasp, can you give a summary of your thoughts on the benefits/limits of M1.7, M1.7.2 and M1.7.3? I know you said that you feel that M1.7.3 is possibly the best option to run on the M42, and I would be interested to know more.

        Transaction Feedback: LINK

        Comment


          #34
          Originally posted by bmwman91
          Very cool! So when you did full disassembly projects, did you go through the ASM code and make all of your own comments and re-name things to make more sense to you?
          Yes, I have some info about variables and math functions used everywhere in listing, will share this info later. Code matched to diag and DTC not too big :) My circle of interests is migration to M1.7.3 (done), migration to "modern" injectors (done), migration to MAF (in progress) and then migration to MAP (in future).

          Originally posted by bmwman91
          Rasp, can you give a summary of your thoughts on the benefits/limits of M1.7, M1.7.2 and M1.7.3? I know you said that you feel that M1.7.3 is possibly the best option to run on the M42, and I would be interested to know more.
          Ok.

          Benefits M1.7.2:
          1) Knock detection system, seriously just this fact is enought for migration.
          2) Updated software - many things are reworked, for example Wall film (Acceleration enrichment), after start enrichment, overheat enrichment (it not used, but can de configured :) )

          Benefits M1.7.3:
          1) M1.7.3 is final edition of M1.7 :)
          2) It has more interesting schematic (I guess some slightly more I/O pins)
          3) It has 64K EPROM and no need to clean original firmware for adding some custom code (like in M1.7.2 - it has very little empty space inside 32K EPROM)
          4) It has new modern (and cheap) IAC valve with two windings like E46 M43 (of course any M1.7 can be modified by software and hardare to use it, but this is an additional job)
          5) It use new modern injectors which can be directly replaced by another BMW injectors, for example I'm use M52B25 injectors for my M43 engine (of course any M1.7 can be modified for software to use same injectors, but its a lot of calibration work for fuel enrichment, wall film compensation, dead-time, e.t.c. this work no one will do and no one will do correctly)
          6) It use correct VAF limp mode by throttle which can be used with individual throttle bodies, unlike other M1.7
          7) It use IAT compensation tables for ignithion, which not bad if you wants turbo...
          8) It use both models for Wall Film compensation (Acceleration enrichment) by throttle and by load, which good if you want add MAP in load factor calculation.
          9) and a lot of other differencies in software.
          Last edited by Rasp; 01-25-2018, 10:41 PM.

          Comment


            #35
            Thanks. So basically, one big improvement is that the injector constants in M1.7.3 actually work in the way that you would expect (since changing them in M1.x does not properly adjust for different injectors and you still have to remap everything)?

            Can you run full sequential injection with M1.7.3 (individual injector control)? There are not enough CCP/PWM outputs on S700 to do it, but it looks like S702 has extra PWM pins which are not used in M1.7 so it could be possible there.

            Overall, it sounds like the fueling model is a lot more advanced in M1.7.3 if it is actually using TPS% for more than switch points. But I thought that even M1.7 did some sort of wall film compensation?

            I guess that if I am going to do a lot more work on this, maybe I should consider M1.7.3 going forward since I would imagine that there are going to be big differences in the firmware. What microcontroller does it use? 80C535 which has no internal ROM, and then everything on the external 27C512 EPROM?
            Last edited by bmwman91; 01-25-2018, 10:50 PM.

            Transaction Feedback: LINK

            Comment


              #36
              Alrighty, I found the wiring diagrams for the E36 with M1.7.3. It looks like it supports full sequential injection, along with all of the software improvements that you mentioned. I had thought about M5.2 at one point since I really wanted sequential injection, but there is so little information out there for it! Obviously sequential injection requires harness modifications, but that is fine.




              One more question about the M1.7.3 DME's. There seem to be a lot of BMW part numbers for these, with newer ones superseding the old ones. Some seem to be flash based with the version listed as BMS43 instead of M1.7.3. Any ideas on what the differences are between all these PNs, and does it even matter?


              Two flavors seem to be common eBay...12141432060 and 12141432519.
              Last edited by bmwman91; 01-25-2018, 11:12 PM.

              Transaction Feedback: LINK

              Comment


                #37
                Originally posted by bmwman91
                So basically, one big improvement is that the injector constants in M1.7.3 actually work in the way that you would expect (since changing them in M1.x does not properly adjust for different injectors and you still have to remap everything)?
                No one of BMW Motronic has "injector constant" (FGAT0), I'm add custom code for this, works perfectly (because I'm give this few lines from M4.3 and put in necessary place :) ) Changes injector from EV1 (1 stream) to EV4 (4 stream, atomisation shower) is not just change FGAT0 and everything is done :) M1.7.3 configured for "modern" injectors in stock and work perfect and smooth in any temperature.

                Originally posted by bmwman91
                Can you run full sequential injection with M1.7.3 (individual injector control)? There are not enough CCP/PWM outputs on S700 to do it, but it looks like S702 has extra PWM pins which are not used in M1.7 so it could be possible there.
                Yes, need to use S702 like in M2.3.2, but there is need for completely change schematic and what is the need for this? Full sequential injection needed for economy 0.5-0.7 liters of fuel and for use extremely big injectors with turbo (because minimal injection time can not may be enough to maintain acceptable idle RPM).

                Originally posted by bmwman91
                But I thought that even M1.7 did some sort of wall film compensation?
                Yes, like all previous Bosch systems - by Load (theoretical time injection), but not like in M1.7.2

                Originally posted by bmwman91
                What microcontroller does it use? 80C535 which has no internal ROM, and then everything on the external 27C512 EPROM?
                80C535 with 27C512.

                Comment


                  #38
                  Originally posted by bmwman91 View Post
                  Alrighty, I found the wiring diagrams for the E36 with M1.7.3. It looks like it supports full sequential injection, along with all of the software improvements that you mentioned. I had thought about M5.2 at one point since I really wanted sequential injection, but there is so little information out there for it! Obviously sequential injection requires harness modifications, but that is fine.
                  No, M1.7.3 is not supports full sequential injection, but prepared for this much more than older Motronics.

                  Originally posted by bmwman91
                  One more question about the M1.7.3 DME's. There seem to be a lot of BMW part numbers for these, with newer ones superseding the old ones.
                  BMS43, BMS46 is completely different system on Motorolla CPU, like MSS50 and MSS54.

                  M1.7.3 is 660 and 661 DMEs. Buy any from this and you will have M1.7.3, doesnt matter on engine and p/n.

                  Comment


                    #39
                    I see. So M1.7.3 really is just an improved version of M1.7 with many of the functions fine-tuned for better running.

                    How is the programming different for the 1-stream vs 4-stream injectors? Are the switch on/off times different (injector lag / dead time), or is it that the improved atomization of the 4-stream ones ends up requiring different injection time since the fuel is used more efficiently?

                    Good to know that full sequential injection might not actually give any benefit. I have just always been curious about it. So M1.7.3 in the wiring diagrams shows that each injector is connected to an individual DME pin (pins 3, 4, 31, 32). Are they still fired in pairs? My assumption was that it would be better to do the fuel injection during the intake stroke on every cylinder to ensure that it atomizes the same way in each one, rather than firing one pairs where one is during the intake stroke and the other is during the power stroke (meaning that the fuel sits at the closed port and maybe ends up in a puddle or as a concentrated vapor region). Then again, the M42 seems to run pretty well with batched injection and I assume that if it was a big problem that BMW would not have done it. Maybe?


                    And apologies in advance for the many very basic questions related to actually tuning these things. I have lots of experience with electronics and embedded systems...just not with automotive ones! When it comes to the practical side of this, I am totally clueless! But, since I at least know how to deal with some of the hardware, I can think about doing a full reverse engineering of M1.7.3 if I can find a good deal on one...shipping gets expensive from Europe!
                    Last edited by bmwman91; 01-26-2018, 12:47 AM.

                    Transaction Feedback: LINK

                    Comment


                      #40
                      Originally posted by bmwman91
                      How is the programming different for the 1-stream vs 4-stream injectors? Are the switch on/off times different (injector lag / dead time), or is it that the improved atomization of the 4-stream ones ends up requiring different injection time since the fuel is used more efficiently?
                      Different dead-time, minimum time, all enrichments (warmup, acceleration), also I'm noticed that fuel tables different too, but perhaps, it can be not depends to injector type.

                      Originally posted by bmwman91
                      Good to know that full sequential injection might not actually give any benefit. I have just always been curious about it.
                      In fact, full sequential injection is better than semi-sequential, because it is possible to set the injection phase, and not to hit the closed valve. But it is necessary to modificate hardware and software then correctly set up... As a result, we get Motronic M2 from M1 :) and this give some little benefits with fuel economy and injector open time.

                      Originally posted by bmwman91
                      So M1.7.3 in the wiring diagrams shows that each injector is connected to an individual DME pin (pins 3, 4, 31, 32). Are they still fired in pairs?
                      Yes, they still fired in pairs, but have two injector drivers for lowering heating (official explain of this changes from M1.7.2).

                      Originally posted by bmwman91
                      My assumption was that it would be better to do the fuel injection during the intake stroke on every cylinder to ensure that it atomizes the same way in each one, rather than firing one pairs where one is during the intake stroke and the other is during the power stroke (meaning that the fuel sits at the closed port and maybe ends up in a puddle or as a concentrated vapor region). Then again, the M42 seems to run pretty well with batched injection and I assume that if it was a big problem that BMW would not have done it. Maybe?
                      It would be better in theory, but it doesnt in practice :) And for M1 Bosch or BMW decide use semi-sequential injection with VAF (lower range system), and for M2 full sequential injection with MAF (middle range system). In future M1 is given huge update for M1.5.2 and M1.5.4 (M2 produce is end at this time) - new 80517 CPU, full sequential injection, step or moment IAC, MAF or MAP and became cheapest system, used in chinese and russian cars under license.

                      Originally posted by bmwman91
                      And apologies in advance for the many very basic questions related to actually tuning these things.
                      Nevermind, we all the novices here :)

                      Comment


                        #41
                        1) EDIT: I am dumb and mis-read the wiring diagram. The dual temperature switch is not in the engine, it's the one in the radiator which is used to indicate the need for the auxiliary fan. The thermistors for the instrument cluster and ECU have been combined into a single unit now, rather than being two separate ones, and this dual thermistor part looks to be a direct swap into the M12 threaded hole in the head. The old location for the instrument cluster sender can just be plugged with an M14 bung. So I guess that the only remaining question is whether the NTC curve is the same for the E30 cluster sender and the late M43 sender? This is something that I can measure fairly easily.


                        2) The other obvious required change to the harness is to deal with the 4 injector outputs, but if things are fired in pairs, it would be relatively simple to make the jump internally in the ECU and still use the existing wires. I have the terminal extractor tools, so moving wires to different positions is easy.



                        3) Regarding the ignition coils that the M43 uses, do you know what the primary current peak is? On the stock M42 coils, it is ~8A with ~4ms dwell. If the M43 coils have less current, then it could be risky for the driver transistors.


                        4) All of the other stuff related to EWS, EGS, ABS, ASC, etc is easy to disable from what you have mentioned. The vehicle inspections in the state I live in require that there be no displayed fault codes (check engine light) on cars as old as mine, so they will never connect a diagnostic tool, but they do want to see that the check light works and is off when running. Basically, the car has to look and run as if it is on all original equipment. It is all very stupid because they do not actually check anything important like lights, tires, other safety equipment, etc. It is supposed to be for emissions control, which is fine, and they do use the exhaust gas measurement tool to look for excessive emissions, but they also do this visual check and will your car fail if anything looks not-original, no matter how clean the exhaust is. My car has always burned very clean, but every time I have to spend a day moving parts around to "look" correct. STUPID! Sorry, I just had to rant a little.....

                        5) Tell me about what you want to do with the MAF. I have been running my own custom converter for many years now, and there are certain differences between a VAM and a MAF which would require significant rewriting of the ECU software. Mainly, the MAF is MUCH faster and more sensitive. I briefly worked with the MS3 community on dealing with this, and they ultimately dealt with the large intake pulse behavior (mostly an issue on 4 cylinder engines) by taking measurements over a specific range of crankshaft angles and averaging the value. In my case, since I had no access to the software, I build a stand-alone DSP box which takes the MAF signal and IAT, and converts to the equivalent VAF signal (kg/hr to m3/hr in real time using temperature, using PV=nRT) and applying a custom FIR low-pass filter to damp out the intake pulses. There is more to it, and the mechanical VAM sensor had some funny resonant behaviors which the ECU was originally tuned for, but that is the quick summary.
                        Last edited by bmwman91; 01-26-2018, 11:41 AM.

                        Transaction Feedback: LINK

                        Comment


                          #42
                          1) Do not need any another temperature sensors besides your stock, M1.7.3 will work with standart NTC temperature sensor for M1.7 DME, after patch. On my system this works just like this (M1.7.3 has NTC sensor calibration for air temperature sensor in VAF, I use this calibration both for air and coolant sensor as in M1.7.2)

                          2) Maybe you can just short-circuit this output and all works fine. But I'm recommend buy M44 harness and get injectors, knock sensors, IAC valve parts.

                          3) All works fine with M42 early and later coils and with M52 coils too (COP).

                          4) Only EWS from your list need to be disabled, all other is not connected to M1.7.3, just same equipment as in M1.7.

                          5) Only OEM algorhytms from M1.7 M70 and M1.5.4, I will talk about this later.
                          Last edited by Rasp; 01-26-2018, 01:23 PM.

                          Comment


                            #43
                            1) Nice, thanks. Yes, I keep forgetting that all of the mapping can be corrected, so there is much less need to mess with hardware. I am a hardware guy, not so much software, so my brain keeps looking in the wrong place!

                            2) Hmmm, maybe...the E36 has the DME in the engine compartment and the E30 has it inside the glove box. I wonder how different the harness length is? I very much want to avoid doing lots of cutting/splicing on the harness since OEM harness quality is very good.

                            I absolutely want to add knock sensors, and probably the IAC valve since the E30 idle stability is not the best sometimes. I am not sure if it is because of the old IAC valve, or because the ignition timing methods it uses to control idle are not so good. I also have data logs showing a direct relationship between the STFT lambda oscillations and RPM oscillations at idle.

                            3) Nice! I am actually running M54 coils now for my COP setup (fun fact, I invented the M42 COP conversion that is all over the place now).

                            4) Sounds good!

                            5) Awesome. I am very curious to know how they did it in the OEM system. The methods I worked with in my external converter require too many CPU cycles to possibly be used in the ECU.

                            Is there any possibility (or benefit) of running M1.5.4 or M5.2 on the M42/43, or is there not point to it? Just curious since you mentioned M1.5.x being much more advanced than any other M1.x systems, and I would assume that M5.2 is also a lot more advanced.


                            Also, I have a couple of M1.7.3 units on order from eBay Germany. Thankfully they seem to be common and not too expensive! One can be for functional work, and the other can be sacrificed for hardware reverse engineering.

                            Transaction Feedback: LINK

                            Comment


                              #44
                              It would be really neat to see the kind of adaptability you're talking about implemented in these later motronic units. They're definitely well engineered and high quality pieces of equipment.

                              Originally posted by nando View Post
                              There are some things, like startup, coast down, and idle, where the OEM computer 'just works' that you will almost never get right on something tuned from scratch
                              Well of course not, you don't have temperature controlled rooms, a dyno with a brake, extensive test equipment and a team of people tuning your megasquirted car, it's unreasonable to expect OE quality results from maybe a couple dozen total hours of tweaking only in the conditions the weather provides for you. I don't think anyone who has ever built or tuned a megasquirt box would argue that megasquirt systems tuned by amateur tuners are anywhere near as good as what you'd get out of a system like these motronic units which were designed by a team of engineers with a big budget and a company behind them, tuned by a team of engineers and tuners with all of the best equipment.

                              IG @turbovarg
                              '91 318is, M20 turbo
                              [CoTM: 4-18]
                              '94 525iT slicktop, M50B30 + S362SX-E, 600WHP DD or bust
                              - updated 1-26

                              Comment


                                #45
                                Good points. MS is very respectable as a system considering that it started entirely with enthusiasts, and even though it is a commercial product now, it is still largely a community effort in many ways. $1000+ is a bit of cash for a system, but compared to the completely closed-source options out there, it is still a decent deal.

                                I have had my concerns about using MS, largely because of points that you and nando raised. This applies both to the software side and its ability to control things to an OEM-quality level, and even moreso regarding the hardware. Working in the electronics industry, and now having fully torn down the Motronic, the build quality is well above all of the older MS systems, and probably still way above MS3Pro. Again, this is not to say that MS3Pro is bad, but just that it is not going to hold a candle to something a multi-billion dollar hardware company develops. Even with the fact that M1.7 pre-dates basic best practices like ground/power planes and thermal reliefs in vias, the quality of the overall design is excellent and the components used go way beyond "automotive spec" as you typically find on DigiKey. Bosch's volumes alone mean that the price breaks it gets on high-grade parts allow it to build extremely rugged systems for a lot less than the MS folks would be able to, not to mention the fact that Bosch can commission custom silicon.

                                As for the software which gives great idle stability, coasting, etc, you are absolutely right that there is no comparison between a community effort and an entire department filled with engineers whose entire career focuses on these algorithms and they are well-paid to do it.

                                Transaction Feedback: LINK

                                Comment

                                Working...
                                X