Motronic 1.7, M70 vs. M42/M43

Author Topic: Motronic 1.7, M70 vs. M42/M43  (Read 8971 times)

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Motronic 1.7, M70 vs. M42/M43
« on: August 08, 2021, 07:21:54 AM »
Hello all,

first I would like to introduce myself. My name is Heinrich, I'm 39 and I'm from Stuttgart, Germany. Since 2006 I own a BMW 850i from 1991 with a M70 engine.

As you may know, 2x Motronic 1.7 were used on this engine, but together with two ignition distributors. The main feature of Motronic 1.7 is the omission of an ignition distributor, where instead each cylinder has its own electronically triggered ignition coil. But just not on the M70.

Here some info about the control (same on both DME):

Injection: The injection of the engine is solved in such a way that there are two groups with three injectors each. One group is supplied by pin 32 (odd cylinders) and the second group by pin 3 (even cylinders).

Ignition: The ignition coil is connected to pin 25.
Speed sensor: connected to pins 67 and 68.
Cylinder detection: connected to pins 16 and 44.

The rest of the perophery is rather uninteresting.

After studying the wiring diagrams of an E36, I noticed that it basically has the same pins for sensors (cam / crank shaft) and actuators (injectors, ignition coils), but with ignition coils accordingly multiple channels. I assume that the unused channels of the ignition in DME are not populated.

Therefore the question, what do you think, would it be possible in principle to equip the missing components in the M70 DME and thus connect multiple ignition coils and eliminate the ignition distributor? I would then probably need two triple coils, if I do it exactly as with the injection.

In the next few days I'll get an M70 DME and can post a couple of pictires.
« Last Edit: August 08, 2021, 07:26:57 AM by HeinrichG_V12 »
Regard,
Heinrich

bmwman91

  • Administrator
  • Legendary
  • *****
  • Thank You
  • -Receive: 33
  • Posts: 2798
    • View Profile
    • http://www.e30tuner.com/
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #1 on: August 08, 2021, 06:20:47 PM »
All of the M1.x ECUs (and several M2.x) have the same basic ignition control strategy, which was designed around a single-coil system for a distributor. The multi-channel ones accomplished their task by the addition of a custom Bosch IC (S500 in the case of M1.7 for the M42) which is a 6 channel transistor driver. The ignition dwell signal is hardware-timed in the main 8051 microcontroller by a timer-output channel, and there is only one channel available for this. In a distributed engine, this signal just goes to a coil driver which controls the output transistor for the coil. In the multi-channel engines, this signal goes to S500, and then the MCU (or port expander IC) activates a loosely-timed channel-select signal which determines which of the transistor driver channels is activated, with actual on/off timing being controlled by the precision dwell signal from the MCU. (think of it as a mix of low-precision channel select signals combined with a single high-precision chip-enable signal).

In theory, you could adapt a M1.7 to run half of the M70 if you were able to add an S500 and the required transistors (2 for wasted-spark, or 6 for full coil-per-cylinder). Beyond that you would need to make significant changes to the assembly code to enable control of a multi-channel system, plus some wiring to S500. In a perfect world, all of the PCB traces would be there, the code for the multi-channel system would be running, and all of it was left unused so that you could add the needed components and simply cut a single trace to bypass the single output transistor.

Additionally, there are some hard limits on maximum RPM and dwell times. The stock M42 coils use a dwell time of ~4ms. At 7500RPM, you have 4ms between ignition events, so the single timer output channel from the MCU would be 100% occupied. In a 6 cylinder application, your RPM would be limited to 5000. You could always switch to coils that require a lower dwell time, such as the M54 coils that work well with the M42 and use a ~2ms dwell.

Please do get some good photos of the M70 M1.7 DME. I would really like to see the board layout and components. Over the years I have reverse engineered most of the E30 DME's and the E36 M42's M1.7.2/M1.7.3. All of them are based on identical core hardware (SAB80C515 MCU, custom port expander, S600 signal conditioner & ignition dwell signal buffer, S550 diagnostic interface buffer, etc), with additions here and there for multi-channel ignition, knock detection, etc.


M1.7 reverse engineering:
http://www.m42club.com/forum/index.php?topic=19542.0

M1.7.3 reverse engineering:
https://www.r3vlimited.com/board/forum/e30-technical-forums/engine-drivetrain/alternative-tuning-w-a-r-megasquirt-etc/376767-e30-m42-to-motronic-1-7-3-conversion-project?t=420029

06/05/2011 - 212,354 miles
Visit HERE for a plethora of 318iS stuff and some other randomness.  Would you say I have a, plethora, of pinatas?

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #2 on: August 09, 2021, 04:03:18 AM »
Thank you very much for your very informative answer!
The M70 has two DMEs, one DME controls one bank and they are absolutely identical in hardware and software. So we can simply talk about one DME.

All of the M1.x ECUs (and several M2.x) have the same basic ignition control strategy, which was designed around a single-coil system for a distributor. The multi-channel ones accomplished their task by the addition of a custom Bosch IC (S500 in the case of M1.7 for the M42) which is a 6 channel transistor driver. The ignition dwell signal is hardware-timed in the main 8051 microcontroller by a timer-output channel, and there is only one channel available for this. In a distributed engine, this signal just goes to a coil driver which controls the output transistor for the coil. In the multi-channel engines, this signal goes to S500, and then the MCU (or port expander IC) activates a loosely-timed channel-select signal which determines which of the transistor driver channels is activated, with actual on/off timing being controlled by the precision dwell signal from the MCU. (think of it as a mix of low-precision channel select signals combined with a single high-precision chip-enable signal).

Okay, so it is that first the output channel is selected and then the ignition signal is fired, that makes sense and sounds logical.

In theory, you could adapt a M1.7 to run half of the M70 if you were able to add an S500 and the required transistors (2 for wasted-spark, or 6 for full coil-per-cylinder). Beyond that you would need to make significant changes to the assembly code to enable control of a multi-channel system, plus some wiring to S500. In a perfect world, all of the PCB traces would be there, the code for the multi-channel system would be running, and all of it was left unused so that you could add the needed components and simply cut a single trace to bypass the single output transistor.

A colleague from the 8-series forum has already done something like this. His statement was that he just added a driver IC (I assume he means the S500 here) and the Darlington transistors and controls a 3x2 coil pack with it. It works as a test installation on the table, but not in the car. (I think because he has not added a cam sensor...). However, it is all information from him, which is a pity, but okay... This statement means to me that the base operating system directly can handle multiple ignition coils already and it was only downgraded to a single ignition coil by the absence of the S500 and additional darlingtor transistors. Which really makes sense, because a 6 cylinder engine ignites every 60° of the camshaft, whether it has an ignition distributor or not. This means that I only need the "output select signal". I think this "output select signal" should be easy to measure with an oscilloscope or a logic analyzer.

Do you agree with this?

Additionally, there are some hard limits on maximum RPM and dwell times. The stock M42 coils use a dwell time of ~4ms. At 7500RPM, you have 4ms between ignition events, so the single timer output channel from the MCU would be 100% occupied. In a 6 cylinder application, your RPM would be limited to 5000. You could always switch to coils that require a lower dwell time, such as the M54 coils that work well with the M42 and use a ~2ms dwell.

This is also very important information, thank you! My goal would be to use a Bosch 0221503002 (equals to Bremi ZS301) coil pack and run motor as wasted spark. Or I could take the ignition coils from the M54 and connect them in pairs.

That would mean I need three darlington transistors. What are they? BIP373?

Please do get some good photos of the M70 M1.7 DME. I would really like to see the board layout and components. Over the years I have reverse engineered most of the E30 DME's and the E36 M42's M1.7.2/M1.7.3. All of them are based on identical core hardware (SAB80C515 MCU, custom port expander, S600 signal conditioner & ignition dwell signal buffer, S550 diagnostic interface buffer, etc), with additions here and there for multi-channel ignition, knock detection, etc.

I will definitely do that and post the pictures here. I think I will get my DME in the next few days.

M1.7 reverse engineering:
http://www.m42club.com/forum/index.php?topic=19542.0

M1.7.3 reverse engineering:
https://www.r3vlimited.com/board/forum/e30-technical-forums/engine-drivetrain/alternative-tuning-w-a-r-megasquirt-etc/376767-e30-m42-to-motronic-1-7-3-conversion-project?t=420029

I found these two threads by chance via google and they are also the reason why I signed up here. It is an insane work that you have done there, RESPECT!
Regard,
Heinrich

bmwman91

  • Administrator
  • Legendary
  • *****
  • Thank You
  • -Receive: 33
  • Posts: 2798
    • View Profile
    • http://www.e30tuner.com/
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #3 on: August 10, 2021, 12:30:37 AM »
A colleague from the 8-series forum has already done something like this. His statement was that he just added a driver IC (I assume he means the S500 here) and the Darlington transistors and controls a 3x2 coil pack with it. It works as a test installation on the table, but not in the car. (I think because he has not added a cam sensor...). However, it is all information from him, which is a pity, but okay... This statement means to me that the base operating system directly can handle multiple ignition coils already and it was only downgraded to a single ignition coil by the absence of the S500 and additional darlingtor transistors. Which really makes sense, because a 6 cylinder engine ignites every 60° of the camshaft, whether it has an ignition distributor or not. This means that I only need the "output select signal". I think this "output select signal" should be easy to measure with an oscilloscope or a logic analyzer.

Do you agree with this?
Yes, you will definitely need to get in there with an oscilloscope or LA to ensure that the output select signals are indeed active. There are multiple versions of the IC with reference designator S500, with the E30 M1.7 chip being a QFP and the E36 M1.7.2/3 being a SOIC, but they work the same way. If you decide to run a wasted spark setup, then the camshaft sensor is not needed, but if you are going to all this trouble then it seems like it would be nice to be able to run "true" coil per cylinder ignition!

Once you are able to get the DME and open it up, we can figure out what is possible.


This is also very important information, thank you! My goal would be to use a Bosch 0221503002 (equals to Bremi ZS301) coil pack and run motor as wasted spark. Or I could take the ignition coils from the M54 and connect them in pairs.
I cannot really make a coil recommendation since I do not know a lot about what options are out there, but I do know that the M54 coils work well with ~2.4ms dwell times, and my car runs very nicely like that. If the ZS301 has data available about dwell times, then that looks like the most straightforward path for you since it does not require a cam position sensor.


That would mean I need three darlington transistors. What are they? BIP373?
The transistors in M1.7 are custom Bosch parts with no commercial part number, and I do not know of an exact equivalent. I think that the BIP373 is not really considered all that good, and there are other newer Darlington type transistors specifically for driving ignition coils like these. The Megasquirt forums have a lot of discussions about the available options. The other option is to find some cheap used Motronic units and take the transistors from them (3 x M42 DMEs, or 2 M5x DMEs).


I found these two threads by chance via google and they are also the reason why I signed up here. It is an insane work that you have done there, RESPECT!

Thanks. Yes, the forum posts have definitely brought in a lot of people! There are a few other people out there who have taken the time to truly take apart Motronic units, but they have not posted anything about it...I figured it was time that everyone got the chance to see how it works!

06/05/2011 - 212,354 miles
Visit HERE for a plethora of 318iS stuff and some other randomness.  Would you say I have a, plethora, of pinatas?

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #4 on: August 10, 2021, 01:28:21 PM »
Yes, you will definitely need to get in there with an oscilloscope or LA to ensure that the output select signals are indeed active. There are multiple versions of the IC with reference designator S500, with the E30 M1.7 chip being a QFP and the E36 M1.7.2/3 being a SOIC, but they work the same way.

I looked at the thread about the Motronic 1.7 (not from 1.7.3) again.  The PCB of my DME looks exactly like the one in the thread.

If you decide to run a wasted spark setup, then the camshaft sensor is not needed, but if you are going to all this trouble then it seems like it would be nice to be able to run "true" coil per cylinder ignition!

Of course, true COP would be a dream if it were possible. But I would also be satisfied with Wasted Spark, the main thing is no distributor.

Once you are able to get the DME and open it up, we can figure out what is possible.

My DME arrived today, I took down a couple of pictures. As I already suspected, S500 is not equipped.

What else do you want to see? Then I can make more detailed pictures.

I cannot really make a coil recommendation since I do not know a lot about what options are out there, but I do know that the M54 coils work well with ~2.4ms dwell times, and my car runs very nicely like that. If the ZS301 has data available about dwell times, then that looks like the most straightforward path for you since it does not require a cam position sensor.

The Megasquirt colleagues like to use the COP from the M54, they are also very good and cheap parts. The data sheet for ZS301 can be requested from Bosch or Bremi, normally it is no problem.

Thanks. Yes, the forum posts have definitely brought in a lot of people! There are a few other people out there who have taken the time to truly take apart Motronic units, but they have not posted anything about it...I figured it was time that everyone got the chance to see how it works!

You have an absolutely cool mindset! Thanks for sharing your insights.
Regard,
Heinrich

bmwman91

  • Administrator
  • Legendary
  • *****
  • Thank You
  • -Receive: 33
  • Posts: 2798
    • View Profile
    • http://www.e30tuner.com/
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #5 on: August 10, 2021, 04:39:39 PM »
Wow, yes it really is the same PCB. I know that the Motronic units were designed to be somewhat generic and usable for multiple applications, and this is the first non-M42 one that I have seen (I know that one or two Alfa Romeo models used M1.7 as well). This also answers a long-time question of mine about what the unpopulated A200 & A250 headers rows are for. Well...sort of...I would have guessed that it was a knock sensor processing board, but it seems that the M70 does not have knock sensors. I would be interested to see the bottom of that sub-PCB that is mounted there, so if you can get squeeze some photos out of there or de-solder it, that would be great.

As far as sourcing an S500, your best option is probably to find a used M1.7 for the M42 on eBay or at an automobile dismantler. I may have a spare M1.7 around which I can pull S500 and 4 of the transistors from, and I could mail them to you if you pay for the shipping costs. The only thing I am uncertain of is the ignition primary current that the ZS301 will require, since it is firing multiple coils at once. I did measure the current waveform on my oscilloscope, and the stock M42 coils seem to draw ~10A at the end of the 4ms dwell (the current increases linearly from zero to 4A over ~4ms with 13.8V applied), but if other coils draw more then there could be an issue with overheating the transistors.

06/05/2011 - 212,354 miles
Visit HERE for a plethora of 318iS stuff and some other randomness.  Would you say I have a, plethora, of pinatas?

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #6 on: August 11, 2021, 02:03:49 PM »
Wow, yes it really is the same PCB. I know that the Motronic units were designed to be somewhat generic and usable for multiple applications, and this is the first non-M42 one that I have seen (I know that one or two Alfa Romeo models used M1.7 as well).

Bosch started moving in the direction of generalization very early on. That means there is exactly one Motronic 1.7, one 1.7.2 and one 1.7.3. They are manufacturer-independent. As far as I know, there is no BMW Motronic, Audi Motronic or anything else. If a manufacturer wanted to have something of their own, then a new generation was made for it, for example Motronic 1.8 was developed for Volvo.

This also answers a long-time question of mine about what the unpopulated A200 & A250 headers rows are for.

An additional board is installed on this header. It could be that it is something M70 specific, some extension or something.

Well...sort of...I would have guessed that it was a knock sensor processing board, but it seems that the M70 does not have knock sensors.

No, the M70 does not have knock sensors. They only came with the M73, but it has a Siemens DME.

I would be interested to see the bottom of that sub-PCB that is mounted there, so if you can get squeeze some photos out of there or de-solder it, that would be great.

With the help I get here, I'm very happy to do it!

As far as sourcing an S500, your best option is probably to find a used M1.7 for the M42 on eBay or at an automobile dismantler.

I think that would be the easiest option. The stupid thing is that I need everything twice, because I have two DME ECUs. But, I can start with this ECU first and then look further. The M42 DME you get here for about 80-90€ the piece.

I may have a spare M1.7 around which I can pull S500 and 4 of the transistors from, and I could mail them to you if you pay for the shipping costs.

Thank you for this offer, I would love to get back to you on it!

The only thing I am uncertain of is the ignition primary current that the ZS301 will require, since it is firing multiple coils at once. I did measure the current waveform on my oscilloscope, and the stock M42 coils seem to draw ~10A at the end of the 4ms dwell (the current increases linearly from zero to 10A over ~4ms with 13.8V applied), but if other coils draw more then there could be an issue with overheating the transistors.

Well, here you could just do without the ignition drivers and use COPs with integrated ignition drivers, there are a couple of them. That means, we can route TTL (?) signals out of the ECU.

Another thing I noticed was that we couldn't use full-seq ignition. The M1.7 has only four outputs and can only drive four channels, but we need six. So we have to go to wasted spark and use three channels.

I removed another spring plate from the heatsink and looked which drivers are installed. The T501 - T504 are the ignition drivers, in my M1.7 only T501 is equipped, T502 - T504 are free. The ICs are Bosch 30014, you can get them on eBay for 8€ each. I have attached a few pictures. But what I absolutely do not understand, if S500 is not installed, how is T501 controlled? Is there a bridge somewhere on the PCB that bypasses S500 and directs the ignition signal directly to T501? Do you know anything about it?

Then, I searched my library a bit and found a very interesting PDF... I attached that to you too. Unfortunately, it is not from my M1.7, but rather from your M1.7 (M42).
« Last Edit: August 11, 2021, 11:15:24 PM by bmwman91 »
Regard,
Heinrich

bmwman91

  • Administrator
  • Legendary
  • *****
  • Thank You
  • -Receive: 33
  • Posts: 2798
    • View Profile
    • http://www.e30tuner.com/
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #7 on: August 11, 2021, 11:45:11 PM »
You are my hero haha! I have a factory schematic for M2.3.2, which was pretty helpful for my reverse engineering of M1.7, but it would appear that you got the original for M1.7! I am super happy to get a copy of this thing.

Good point about the M1.7 only having 4 coil driver circuits, so yes, you will need to use 3 of them to run a wasted spark setup.

Control of T501 is done directly from S600 via the "ZDG" line. It is the same way that M1.3 and most/all of the other M1.x DMEs worked for distributed engines. If you look at my schematic, you will see that R501 is not populated. That resistor connects the base of T501 to pin 16 of S600 ("ZDG"). In the case of the M42, the "ZDG" signal connects to the "NRS" pin (#1) of S500, which functions as the output enable and is what sets the precise dwell. You will want to remove R501 and install R502 when you do your conversion. I would need to go measure the value, but since you are going to obtain M42 M1.7 units, you can just take the parts I suppose.

Pins 6, 10, 11 & 13 of S500 are what selects the output to activate, and those are low-precision timing signals that activate well before and deactivate well after the end of the dwell period (controlled by S702 which is a port expander peripheral that S700 issues to commands to by treating it as a very high-address in external memory). I assume that S600, which is a totally custom ASIC, is used because pin 16 connects to dedicated circuitry that is intended to provide sufficient base current to a coil driver transistor.

Really, the addition of S500 was a hack by Bosch to extend the functionality of the 8051-based M1.x platform to a few more vehicles, undoubtedly to save money. It works well, so this is not to say that it was a bad solution. It still impresses me that they wrote good enough firmware to be able to run a 6 cylinder engine on an 8-bit core running at 1MHz. Granted, the main loop starts to have difficulty running table look-ups at an optimal rate as you get to higher RPMs, but it is still pretty cool what they accomplished.

One thing that I would really appreciate some help with is getting an idea of what the various pin-name acronyms mean. Obviously they are referring to technical terms in the German language, and internet-translations are not always useful.
- ZDG is easy enough, and I assume part of it is Zündwinkel, which would make sense for what that signal does.

The ones I am really interested in are "KS" and "LL" in the S400/450/470 ICs. Those chips have latching input ("E#" pins) that will remain high after a high input if the corresponding output drives a minimum amount of current. The MCU checks to see if the output lines are held high or not after issuing a control signal, and this is how the ECU can set a code for a bad idle control valve, fuel injector, etc...if the driver IC does not deliver a minimum current, it is assumed that either a wire or the device has gone to an open circuit. The KS and LL lines seem to work as some combination of a master chip-enable, and a selector for whether the minimum current level is low or high for the fault detection. Since you are obviously technical and fluent in German, I am hoping that you can have some ideas for what things mean so that we can understand the function of these ICs better!

Other chips that would be good to understand acronyms for are S550 and S600.

Thanks again for signing up here. Hopefully we can deliver even more knowledge to the community!


I assume you already looked through here, but if not, this Dropbox account has a lot of stuff related to the M1.7.3 project I did. I broke open a lot of the custom Bosch chips and got high magnification images of the silicon dies on the expensive microscope I have access to at work lol.
https://www.dropbox.com/sh/70yvbe8f83ur78b/AABzCRBHXVAGbM8G_Zt4JMGNa?dl=0

06/05/2011 - 212,354 miles
Visit HERE for a plethora of 318iS stuff and some other randomness.  Would you say I have a, plethora, of pinatas?

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #8 on: August 12, 2021, 02:10:34 PM »
You are my hero haha! I have a factory schematic for M2.3.2, which was pretty helpful for my reverse engineering of M1.7, but it would appear that you got the original for M1.7! I am super happy to get a copy of this thing.

I found this schematic somewhere on the internet years ago and saved it, maybe you need it sometime.

Control of T501 is done directly from S600 via the "ZDG" line. It is the same way that M1.3 and most/all of the other M1.x DMEs worked for distributed engines. If you look at my schematic, you will see that R501 is not populated. That resistor connects the base of T501 to pin 16 of S600 ("ZDG"). In the case of the M42, the "ZDG" signal connects to the "NRS" pin (#1) of S500, which functions as the output enable and is what sets the precise dwell. You will want to remove R501 and install R502 when you do your conversion. I would need to go measure the value, but since you are going to obtain M42 M1.7 units, you can just take the parts I suppose.

Where are R501 and R502 located? I have searched the board but found nothing. Or are the parts on the back? My PCB is still screwed to the case.

Really, the addition of S500 was a hack by Bosch to extend the functionality of the 8051-based M1.x platform to a few more vehicles, undoubtedly to save money. It works well, so this is not to say that it was a bad solution. It still impresses me that they wrote good enough firmware to be able to run a 6 cylinder engine on an 8-bit core running at 1MHz. Granted, the main loop starts to have difficulty running table look-ups at an optimal rate as you get to higher RPMs, but it is still pretty cool what they accomplished.

S500 seems to be some kind of multiplexer or something to add the missing channels. This is often done this way and it works.

One thing that I would really appreciate some help with is getting an idea of what the various pin-name acronyms mean. Obviously they are referring to technical terms in the German language, and internet-translations are not always useful.
- ZDG is easy enough, and I assume part of it is Zündwinkel, which would make sense for what that signal does.

The ones I am really interested in are "KS" and "LL" in the S400/450/470 ICs. Those chips have latching input ("E#" pins) that will remain high after a high input if the corresponding output drives a minimum amount of current. The MCU checks to see if the output lines are held high or not after issuing a control signal, and this is how the ECU can set a code for a bad idle control valve, fuel injector, etc...if the driver IC does not deliver a minimum current, it is assumed that either a wire or the device has gone to an open circuit. The KS and LL lines seem to work as some combination of a master chip-enable, and a selector for whether the minimum current level is low or high for the fault detection. Since you are obviously technical and fluent in German, I am hoping that you can have some ideas for what things mean so that we can understand the function of these ICs better!

Other chips that would be good to understand acronyms for are S550 and S600.

Of course, I will have look at these ICs. LL could mean idle, opposite would be VL, means full load.

I assume you already looked through here, but if not, this Dropbox account has a lot of stuff related to the M1.7.3 project I did. I broke open a lot of the custom Bosch chips and got high magnification images of the silicon dies on the expensive microscope I have access to at work lol.
https://www.dropbox.com/sh/70yvbe8f83ur78b/AABzCRBHXVAGbM8G_Zt4JMGNa?dl=0

You are completely crazy, an awesome job!

I have attached the picture of the additional board. Is it enough or do you want to see something else? I googled for the IC labels but found absolutely nothing.

So, we're holding these steps for the rebuild:
1. I buy a M42 M1.7 DME
2. S500 will be installed
3. remove R501 and install R502
4. install T502 and T503
5. replace cylinder identification sensor with cam sensor from M54(?)

I think the biggest challenge for me will be point 5.I need to build an ignition distributor cover where you can install the cam sensor.
I need to build an ignition distributor cover where you can install the cam sensor.

Is it all there or did I forget something?

Regarding T501-T503: there are ignition coils that have an integrated driver (for example Beru ZSE004, three double coils). These are ignited with a 5V TTL signal.

Then, there are still very good and very strong COPs, NGK 48042, here are the specs:
-> coil power: 55mJ
-> secondary voltage: 28-35kV
-> primary current: 15A
-> rise time @14V: 2.4ms
-> dwell: @8V: 2.9ms, @12V: 1.8ms, @16V: 1.3ms

The pinout is also known. They are mainly used in the VW TFSI engines and costs ca 20€ each, so pretty cheap and they don't need an external driver.
Regard,
Heinrich

bmwman91

  • Administrator
  • Legendary
  • *****
  • Thank You
  • -Receive: 33
  • Posts: 2798
    • View Profile
    • http://www.e30tuner.com/
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #9 on: August 12, 2021, 03:37:33 PM »
Yes, R500-506 are on the bottom, along with B501-504. If you want to run TTL-controlled coils, then you do not need any of the T501-504 transistors. M1.7 was in fact designed to also be able to work with the "smart" coil type (integrated driver transistor). If you look at the schematic (mine is much easier to read), you will see that there are a variety of stuffed/not-stuffed resistors and jumpers.

R500: Not quite sure, but I am guessing that this sets a current limit for the Q1-Q6 outputs. When the Q# lines are not connected to a transistor, they will rise to 5V when in the ON state. When connected to a transistor base, with no series resistor, they will rise to ~0.6V in the ON state (which is typical for a transistor base as it will be 1 silicon diode potential above ground) and I assume that S500 has an adjustable internal current limit for that base current. In a "smart" coil setup, you will need to check to see how much current the coil's control line draws. There are some VW "smart pencil coils" which are very popular, but their control line also requires >150mA which has proven to be a challenge for some Megasquirt users. I suppose that you could connect one of the Q# outputs to ground with a standard diode & wire in series and put a current probe on it to see how much current it sources with the "factory" R500 value.

R501 & R502: Used to select between single-coil control for distributor applications.
>> R501 stuffed / R502 not-stuffed = no S500, control of T501 via S600
>> R501 not-stuffed / R502 stuffed = S500, control of T501-T504 via S500

R503-506: These are not-stuffed, and look like pull-down resistors. It is my assumption that these ARE stuffed in implementations with "smart" coils to ensure that the control line does not float high enough to accidentally turn a coil on due to EMI. I am not sure what a good value would be fore these, probably at least 1K, maybe 4.99K or 10K.

B501-504: These are jumpers which will also be stuffed in a "smart" coil application. They connect the Q# outputs of S500 directly to the coil control outputs on the main 88-pin connector.



What sort of cylinder identification sensor is on the M70? RealOEM diagrams indicate that it is an inductive type sensor on one of the high-voltage distributor outputs (cylinder 1). We'll need to see which of the components on the input from pins 16 & 44 are present / not present in order to determine what type of sensor to put in place of the distributor (VR, Hall, etc).



Looking at the pic of your M1.7 board, there are a number of resistors which are stuffed / not-stuffed, and they differ from which ones are/are not on the M42 M1.7. It is clear that many of the top-side differences are due to the M70 using a MAF, versus the M42 with a VAM. It is also the case that I strongly suspect that the A200 daughter board (thank you for the pictures) is a MAF signal processor board, especially now that I see which resistors and jumpers are different on your M1.7. In my car, the VAM output goes to S900 (TVS / protection diode array) and then to AN0 on the MCU. In your case, the resistors and jumpers for that are not present, AN0 is pulled up to 5V and the VAM/MAF signal on pin 41 of the main connector goes up to the daughter board.

Having designed and built my own custom MAF conversion, this makes sense. The VAM is a relatively "slow" sensor and the mass of the flap door inside works very well as a low-pass filter on the intake pulses, providing a nice smooth output even at full throttle openings. A MAF, however, is VERY fast and will easily show every single intake valve opening as a big sinusoidal swing in the output. The issue is, I assume, worse on a 4 cylinder since there is no overlap between intake strokes. But, I bet it is still going to be a problem on a 6 cylinder. So, I am guessing that A200 functions as a digital low-pass filter for the signal. An analog filter would not work well because the MAF output is very non-linear. So A200 probably reads the MAF at a high rate with an ADC, digitally converts the ADC value to a flow rate value, averages that flow rate value, and provides it to the MCU when it is requested (since A200 is connected to the address & dat buses from the MCU).

MAF signal processing was a big challenge at first for Megasquirt too. I remember discussing it in a thread when they were developing the firmware for it. Since sampling the MAF signal at multiple kHz and then averaging it on an interrupt routine is waaaay too computationally demanding, they opted to sample the MAF signal at specific crankshaft angles where it would be expected to be at minimum and maximum values, and then just use the average (middle) value. It seemed to work out pretty well from what I remember. I am not sure why Bosch did not try to implement that algorithm, instead choosing to add cost with A200, but they must have had a good reason. I do not know much about the M70 MAF, but if it is a frequency-output (rather than voltage-output) type, then A200 100% makes sense to me since the MCU definitely lacks the required computing cycles to deal with that.

Can you get some pictures of the A250 pins (6 holes on the right of the A200 photo) on both sides so that I can see which ones have traces connected to them?
« Last Edit: August 12, 2021, 03:39:06 PM by bmwman91 »

06/05/2011 - 212,354 miles
Visit HERE for a plethora of 318iS stuff and some other randomness.  Would you say I have a, plethora, of pinatas?

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #10 on: August 14, 2021, 01:12:53 PM »
Yes, R500-506 are on the bottom, along with B501-504. If you want to run TTL-controlled coils, then you do not need any of the T501-504 transistors. M1.7 was in fact designed to also be able to work with the "smart" coil type (integrated driver transistor). If you look at the schematic (mine is much easier to read), you will see that there are a variety of stuffed/not-stuffed resistors and jumpers.

That's really nice feature.

R500: Not quite sure, but I am guessing that this sets a current limit for the Q1-Q6 outputs. When the Q# lines are not connected to a transistor, they will rise to 5V when in the ON state. When connected to a transistor base, with no series resistor, they will rise to ~0.6V in the ON state (which is typical for a transistor base as it will be 1 silicon diode potential above ground) and I assume that S500 has an adjustable internal current limit for that base current. In a "smart" coil setup, you will need to check to see how much current the coil's control line draws. There are some VW "smart pencil coils" which are very popular, but their control line also requires >150mA which has proven to be a challenge for some Megasquirt users. I suppose that you could connect one of the Q# outputs to ground with a standard diode & wire in series and put a current probe on it to see how much current it sources with the "factory" R500 value.

The ignition coils I want to use have an integrated driver. They have four pins, UBat, GND, signal GND and control signal. Control signal needs a pull up resistor. The current at the control signal is only a few mA, it must be pulled to GND for the coil to ignite (going low input).

R501 & R502: Used to select between single-coil control for distributor applications.
>> R501 stuffed / R502 not-stuffed = no S500, control of T501 via S600
>> R501 not-stuffed / R502 stuffed = S500, control of T501-T504 via S500

So just unsolder R501 and solder R502, that's it.

R503-506: These are not-stuffed, and look like pull-down resistors. It is my assumption that these ARE stuffed in implementations with "smart" coils to ensure that the control line does not float high enough to accidentally turn a coil on due to EMI. I am not sure what a good value would be fore these, probably at least 1K, maybe 4.99K or 10K.

These resistors are in the tag pull down resistors for T501-T504. Since the T501-T504 are npn trasistors, they need a pull down resistor to be safely disabled. S500 then pulls the base to logic 1 and the T501-T504 become conductive. The common values for pull up and pull down resistors are 4k7 or 10k.

B501-504: These are jumpers which will also be stuffed in a "smart" coil application. They connect the Q# outputs of S500 directly to the coil control outputs on the main 88-pin connector.

These resistors are in deed pull down resistors for T501-T504. Since the T501-T504 are npn trasistors, they need a pull down resistor to be safely disabled. S500 then pulls the base to logic 1 and the T501-T504 become conductive. The common values for pull up and pull down resistors are 4k7 or 10k.

The problem is, if I remove the T501-T504 and close B501-B504, I get incorrect polarity at the outputs (going high instead of going low). So I need either an inverting buffer or a n-mosfet at the place of T501-T504. Then I leave the R503-R506 in and leave the B501-B504 open.

What sort of cylinder identification sensor is on the M70? RealOEM diagrams indicate that it is an inductive type sensor on one of the high-voltage distributor outputs (cylinder 1). We'll need to see which of the components on the input from pins 16 & 44 are present / not present in order to determine what type of sensor to put in place of the distributor (VR, Hall, etc).

That's right, it's an induction coil located on the ignition wires of cylinders 6 and 12. Without this sensor, the M70 will not run at all.

Looking at the pic of your M1.7 board, there are a number of resistors which are stuffed / not-stuffed, and they differ from which ones are/are not on the M42 M1.7. It is clear that many of the top-side differences are due to the M70 using a MAF, versus the M42 with a VAM. It is also the case that I strongly suspect that the A200 daughter board (thank you for the pictures) is a MAF signal processor board, especially now that I see which resistors and jumpers are different on your M1.7. In my car, the VAM output goes to S900 (TVS / protection diode array) and then to AN0 on the MCU. In your case, the resistors and jumpers for that are not present, AN0 is pulled up to 5V and the VAM/MAF signal on pin 41 of the main connector goes up to the daughter board.

Having designed and built my own custom MAF conversion, this makes sense. The VAM is a relatively "slow" sensor and the mass of the flap door inside works very well as a low-pass filter on the intake pulses, providing a nice smooth output even at full throttle openings. A MAF, however, is VERY fast and will easily show every single intake valve opening as a big sinusoidal swing in the output. The issue is, I assume, worse on a 4 cylinder since there is no overlap between intake strokes. But, I bet it is still going to be a problem on a 6 cylinder. So, I am guessing that A200 functions as a digital low-pass filter for the signal. An analog filter would not work well because the MAF output is very non-linear. So A200 probably reads the MAF at a high rate with an ADC, digitally converts the ADC value to a flow rate value, averages that flow rate value, and provides it to the MCU when it is requested (since A200 is connected to the address & dat buses from the MCU).

MAF signal processing was a big challenge at first for Megasquirt too. I remember discussing it in a thread when they were developing the firmware for it. Since sampling the MAF signal at multiple kHz and then averaging it on an interrupt routine is waaaay too computationally demanding, they opted to sample the MAF signal at specific crankshaft angles where it would be expected to be at minimum and maximum values, and then just use the average (middle) value. It seemed to work out pretty well from what I remember. I am not sure why Bosch did not try to implement that algorithm, instead choosing to add cost with A200, but they must have had a good reason. I do not know much about the M70 MAF, but if it is a frequency-output (rather than voltage-output) type, then A200 100% makes sense to me since the MCU definitely lacks the required computing cycles to deal with that.

Exactly, M70 has two MAFs, one per bank. These MAFs provide a voltage between 0 and 5v depending on the airflow.

However, the MAFs age and break down because they are burned free again and again.Bosch specifies the lifetime with 10.000 free burning cycles, after that they are defective, or not.  That's why I made a project where I use a digital MAF (HFM7). At the output of this MAF I have a frequency between 1.5kHz and 14kHz, depending on the airflow. From the frequency I calculate the airflow (it is a third degree polynomial) and then the correct voltage for DME (look up table with 1000 values and binary search). Bosch specifies the lifetime with 10.000 free burning cycles, after that they are defective, or not.  That's why I made a project where I use a digital MAF (HFM7). At the output of this MAF I have a frequency between 1.5kHz and 14kHz, depending on the airflow. From the frequency I calculate the airflow (it is a third degree polynomial) and then the correct voltage for DME (look up table with 1000 values and binary search).

Quote
Can you get some pictures of the A250 pins (6 holes on the right of the A200 photo) on both sides so that I can see which ones have traces connected to them?

Check attached pictures, then you can see the "donut" (it's a name for cylinder identification sensor :D ) and two pictures of additional board. And, I took off the back of the case and took a picture of it. The pictures are in the original resolution.

EDIT: Link to the pictures follows!

Can you please tell me the numbers of the DME from the M42 that I need to buy?
Regard,
Heinrich

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #11 on: August 14, 2021, 02:41:16 PM »
I have uploaded all the pictures here again in the original resolution, the forum unfortunately has a size limit. I will upload all pictures now on my Google Drive, you can download them then. Is it okay for you?

Here is the link to google drive: https://drive.google.com/drive/folders/1Gv13E64HiskpqCcS69lAoVeZ1qoTn7cW

I'm from Monday for 10 days on vacation and can not write there unfortunately, because only iPhone with me. So do not be surprised if nothing comes from me.
« Last Edit: August 14, 2021, 04:09:00 PM by HeinrichG_V12 »
Regard,
Heinrich

bmwman91

  • Administrator
  • Legendary
  • *****
  • Thank You
  • -Receive: 33
  • Posts: 2798
    • View Profile
    • http://www.e30tuner.com/
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #12 on: August 15, 2021, 11:05:58 AM »
I see, so yes it seems like the best course of action will be to install additional transistors for the coils' TTL control signals since that will give you the low-side-active signal that you need.

What does the distributor drive shaft/sprocket look like? As you mentioned, it may be tricky to develop an appropriate replacement system with a physical trigger & sensor. Do you have an oscilloscope capture of the signal that is produced by the original inductive pickup?

As far as the MAF, it sounds like you also know a lot about how it works...more than most certainly. Developing the VAM to MAF conversion was definitely a fun little DSP project, and at the time I was able to request data sheets from Bosch for all of the old VAM sensors. I was impressed that they provided them.

Thank you for the higher resolution photos, they are helpful.

Enjoy your holiday!

06/05/2011 - 212,354 miles
Visit HERE for a plethora of 318iS stuff and some other randomness.  Would you say I have a, plethora, of pinatas?

HeinrichG_V12

  • Newbie
  • *
  • Thank You
  • -Receive: 0
  • Posts: 10
  • Freshly Registered!
    • View Profile
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #13 on: August 15, 2021, 02:14:05 PM »
I see, so yes it seems like the best course of action will be to install additional transistors for the coils' TTL control signals since that will give you the low-side-active signal that you need.

Exactly. Simply replace the transistors with n-mosfets (as low side switch) and equip the pull down resistors.

What does the distributor drive shaft/sprocket look like? As you mentioned, it may be tricky to develop an appropriate replacement system with a physical trigger & sensor.

Here you can see the drive shaft and here are the installed rotos.

I think I need to replace the original rotos with one made of iron or a disc with a magnet.
Then, I need a cap that has a VR sensor in it, but properly aligned with the sixth cylinder.
That should be fine. The cap could look like this, for example.

Do you have an oscilloscope capture of the signal that is produced by the original inductive pickup?

No, but it is an easy one to capture. I have my own 100MHz oscilloscope.


As far as the MAF, it sounds like you also know a lot about how it works...more than most certainly. Developing the VAM to MAF conversion was definitely a fun little DSP project, and at the time I was able to request data sheets from Bosch for all of the old VAM sensors. I was impressed that they provided them.

I did the project with a STM32F4, it would have worked with a DSP too, but I have no idea about DSPs, that's why a 32-bit Cortex-M4 with FPU.

Thank you for the higher resolution photos, they are helpful.

You're welcome, thank you!

Enjoy your holiday!

Thank you very much! Could you please give me the numbers of the correct DME M1.7? Or tell the years of construction in which it was installed? Because of the parts acquisition. Then I can already look for it in eBay.
« Last Edit: August 15, 2021, 02:23:44 PM by HeinrichG_V12 »
Regard,
Heinrich

bmwman91

  • Administrator
  • Legendary
  • *****
  • Thank You
  • -Receive: 33
  • Posts: 2798
    • View Profile
    • http://www.e30tuner.com/
Re: Motronic 1.7, M70 vs. M42/M43
« Reply #14 on: August 15, 2021, 11:09:03 PM »
Bosch PN 0261200175 is the E30 M42 DME for 1990-1991 model years.

06/05/2011 - 212,354 miles
Visit HERE for a plethora of 318iS stuff and some other randomness.  Would you say I have a, plethora, of pinatas?