Hi all,
I am creating this thread to ask for help with working on a DIY Toyota VAST Igniter alternative.
The short of it is...
I am looking for people who currently own engines with the Toyota VAST system and can submit oscilloscope readings from their igniter. If you can, please reply with the make, model, year, engine, igniter PN, and pinout for the scope readings. Scope shots should be taken with NE as the trigger, then any other signals indexed off of that. Voltage, pulse width, rise time, anything helps!
I am in the process of creating a PCB that will cover a majority of the VAST systems for people either looking to keep the stock ignition system, or want to replace their faulty OEM unit.
Now for the long version...
I have a relatively stock 1987 Toyota Pickup with the 22-RTE. Currently it's down waiting for the ECU to be repaired and for the igniter to be tested. As part of the diagnosis, I found that the igniter could be faulty and that led me down the rabbit hole of the Toyota VAST system.
For those who haven't had to replace an igniter on one of Toyota's older engines, they are quickly becoming unobtanium. The stock ECU requires them to function pretty much anywhere above idle, and aftermarket options are very limited. There's currently only a few ways to replace an igniter: Find one on a grey market site or forum ($300+ used), import one from overseas ($300+ used or $600+ NOS), try to use an aftermarket one (~$30-$500 and not reliable), or swap the entire ECU to something that doesn't use VAST for ignition control.
Some common suggestions from people are to swap to an MSD 6AL or FAST ignition system, but they both require you to retain the stock igniter so it doesn't make much sense to do that either.
The overall system is simple conceptually and clever too. At startup, the igniter assumes control of the ignition timing and dwell. It also generates the timing signal for the ECU, which is usually called NE. Once the engine is started, the ECU receives the NE signal and begins sending the IGt (Ignition Time) signal to the igniter. While the dwell is still controlled by the igniter, the actual firing point of the coil is now controlled by the ECU. Once the coil has fired, the igniter sends the IGf (Ignition Fired) signal back to the ECU. Now begins the weirdness...
The IGf signal and how it is sent has changed a couple times over the years. The original version used the CMF or Counter Magnetic Force as they called it, from the coil primary to detect that the coil had successfully discharged. This generates a short, constant pulse width signal, AFTER the coil has fired. The newer version, which they still use on their coil-on-plug system, generates an IGf signal DURING the positive cycle of the IGt signal. This detects the current flowing through the coil and once it hits a certain current threshold it begins to hold. This is similar to the hold current we see on injector drivers. There are documents floating around online about how this system works, and explains it better than I can!
Also each VAST system is slightly different in the timing of everything due to different engines, and some also have a second VR sensor sending signal to the ECU. Really lovely stuff of course.
So the solution is (hopefully) simple. A VR sensor IC will generate our NE signal from the distributor. This is piped out of the igniter module and also into a microcontroller. The microcontroller controls spark timing on startup, coil dwell, spark timing from IGt, and the IGf signal as it monitors the coil current. The coil is controlled by a FAN1100 IGBT driver and ISL9V3040P3 IGBT. The FAN1100 lets us hold current on the IGBT as well as shut down the coil safely if no falling edge is sent in time. There are also buffers and an analog switch (to switch between the NE signal and the MCU signal).
This will be my second go at this after trying a first time using all discrete analog logic following Toyota's patents. I got close, but having a microcontroller allows for some modularity that a custom circuit doesn't really allow. You could in theory also change the timing to be different than what the ECU requests...
Let me know if you have any questions.
As promised here is the GitHub link. I will continue to add updates there as well.
https://github.com/jephilp/22RE_Igniter