Trionic 8 Features

Hi I am currently working on setting up an EMU PRO 8 for a Saab 2 L Turbo Engine from the mid nineties, these engines were equipped with a very interesting and unique technology called ionic sensing, this technology basically turns the spark plug into something similar to an in cylinder pressure sensor by running 80V through the spark plug electrodes at all times but when sparking it can measure an ionic current which is dependent on pressure and temperature inside the cylinder, this information then is fed into an ignition module and used to identify if there was a combustion event or if there was knock, you can use this information to replace a few sensors such as the knock sensor, you could also use the information created by the ignition module to determine if a combustion event has happened so you get a mis fire sensor and an implicit camshaft sensor,

What information does the system use? The system uses the ignition triggers from the ECU and the ionic currents generated by the spark plugs.

What information does the system generate? The system creates 3 digital outputs that are fed into the ECU:

-One digital signal is used to communicate knock detection according to some reverse engineering I found on the internet, the knock signal is reported with a series of 50us pulses, more pulses meaning more detonation

-The other two digital signals are combustion signals, one for cylinders 1 and 3, and the other one for cylinders 2 and 4, this digital signals will be true when there is a combustion event in either one of the two cylinders the signal is covering, these signals are used to replace the camshaft sensor and to get a misfire sensor

Here a screenshot of the digital channels I am logging for combustion detection, you can see two mis fire occurrences on cylinder 3

I would like to understand if it would be possible to configure the EMU PRO 8 to do exactly the same things the OEM ECU does, here is a list of things I would like to do: Together with helpful screenshots

  • Use the combustion digital signals to replace the camshaft sensor I am currently running, in order to do this I would need the engine to start on a wasted spark scheme, and then identify if cylinder 1 or 4 was on a power stroke depending on which digital signals the ECU gets and use this information to sync, I can share the oscilloscope file. This would be extremely helpful for me since the current camshaft sensor I have is inside a distributor that gets in the way for us to be able to install a larger turbo

  • Use the digital knock signal as a knock sensor, I have yet to collect oscilloscope data for this one but based on the internet information I found this signal uses 50us digital pulses to communicate knock, the more pulses the higher the knock, 50us pulses would be a 20KHz frequency, the software has a knock sensor option of 19.98 KHz so I am assuming this might be possible but I would like to get confirmation, once I have the base map on a more mature state I will collect some oscilloscope data while running different timings and looking for knock and what does it do to this signal.

  • Use the combustion signals to throw a misfire error message indicating which cylinder is misfiring, by logging the 2 combustion digital signals at 500 Hz I can see when a specific cylinder is misfiring in the log file but it would be extremely helpful to have something that throws a live message, the OEM ECU tracks two different kinds of misfire on each cylinder, EWMA (Exponentially Weighted Moving Average) and DCY (not sure what that means), to me it sounds like EWMA should work fine but I would be curious to hear if there is any other better way.

Knocking signal 50us time base

  • Burn off procedure: The OEM ECU performs a burn off procedure to burn off impurities off the spark plugs, in order to do this it fires the coils 210 times per second for 5 seconds, is there a way I can write logic to have the ECU do this?

Here is the link to somebody that did reverse engineering on this system a few years ago, source of what I know about the knock function:

https://wiki.rusefi.com/Saab-Trionic-8-Combustion-Detection-Module-on-Mazda-Miata-running-rusEFI/

We currently don’t have an option for a wasted spark start, but it’s now a high-priority feature to implement for the subsequent updates. With that, you should be able to use the available signal for engine synchronization.

Pulses are 50 us, but the period of the signal is 100us.
That means the frequency is 10 kHz.

You can try connecting that signal to the knock sensor input, set the frequency around 10 kHz, and check if you can get something valuable from it. In theory, it should work. If there are no pulses, the signal integration should give zero, and if there are pulses, there should be some non-zero value.

That is something we probably won’t be implementing. There is no other system like that on the market, so this would be a feature for a niche engine in a niche car. And it’s not a trivial implementation because it must be done in sync with the engine’s rotation. We have a lot of features to implement with a much higher request count. We simply don’t have time to spend on a feature like that.

Thanks for the answers, really looking forward to the update with wasted spark start enabled, I will follow your recommendation on the knock signal and share findings when available,

on the misfire detection I understand, do you think it would be possible for me to write some logic functions to do something similar? I was thinking maybe start three counters at the same time one for Cyl 1 and 3, one for Cyl 2 and 4 and another one for Engine revolutions, maybe do this counter every 30 seconds and at the end of the counter, divide Cyl 1 and 3 by the number of revolutions, theoretically if there was no misfires the counters would end up being the exact same number so I would just get one, but if there was some misfires it would be a number smaller to 1, then use a configurable threshold and report an error flag if the number ever goes under the threshold?

What about the burn-off procedure on my third post? Is this something I could do in any way?

Thanks in advance!