How To: Install Haltech

I want to start by saying that this originally was a thread in a forum. I have taken out the parts that that pertain to the problem and solution. I did this purposefully to show the thought process, the logic, the problem and the solution.
Currently (New Firmware, Jan 2013) the PS1000 Haltech will read the stock protege cam gear making the modification to the Cam Gear unnecessary.
Here is the timeline…
Originally Posted by BRIAN MP5T
(Edit: Apparently the E6 has a setting called “MAZDA A” which did everything for the FS engine automatically)I am currently setting up a 1000 on a Mazda 2.0 L FSI am running 4 Coils Direct and 4 injectors Sequential.I have a 36 -1 Crank Position Sensor on a Magnetic
and a Magnetic Sensor on the Cam Gear that has three triggers. One by itself and two opposite and close to each other.I understand that the setting I should use is likely 36 -1 + 1 Home but I do not understand how it will know how to trigger the injectors.As I understand, it has to use both the fire the injectors and the coils because it’s a 4 stroke. But where can I adjust for the angle of the Cam sensor, and how do I make it disregard the other magnets.I have read and understand about the missing tooth on the crank, and understand the offset. It’s brilliant. Can someone please shed some insight on how the second input is used.Do I have to drill out the other magnets so there is only one that can be sensed by the haltech? If so is there an offset like the crank sensor from the event, or does it simply know that fuel happens 360 degrees from ignition.I do not see a 36 -1 + 3 Home…I am pretty technical, but I am in uncharted territory as being the only one to do this to a fully striped Protege engine..Cam Position Magnets (3 Each)
Crank Position 36 -1
Originally Posted by Eric Gash@Haltech
Brian, 36-1 +3 unfortunately does not exist in the ECU Manager software. You’ll have to remove all but one trigger even on the camshaft if you want to setup a full sequential ignition and fuel control system. You can determine which magnet or trigger nub to retain by putting the engine at 70* Before TDC Cyl #1 compression stroke. One of the magnets or trigger nubs on the cam sprocket should be near the pickup. Retain this one, delete the others. When you setup the trigger to 36-1 + 1 cam home, it will recognize the cam sensor (home) input as it sync reference, then you simply set your tooth offset and trigger angle so that you’re ignition is occurring at correctly per your timing light and timing marks. Good luck with the project, and if you have any other questions, please don’t hesitate to ask.Eric Gash
Haltech USA Office Manager
Originally Posted by BRIAN MP5T
However,If one of the magnets is not at the correct location, is there an Offset for just the Home?PS.The Home In on the Cam? and the trigger is on the Crank?
I want to get the correct words..Can you also confirm for me that there was never a default trigger setting on the E6 called MazdaA.My friend who is running sequential has it on that setting and has done nothing else to the car or Cam Gears.If that is already in the Haltech Database, would it not be rather easy to reverse engineer the E6 Software and duplicate it in the new?
Originally Posted by HaltechScott
Hello Brian,I have spoken to Claudio about your trigger issue. These was a setting called Mazda A in the E6X software, this was imported from a previous version of custom firmware and never documented. I realize this is not great, but as it happened 8 years ago there is not much I can do about it now.Eric is also correct in stating that this trigger is not supported in the Platinum software.
You must modify the cam sensor if you want full sequential operation (as eric has stated by having only 1 tooth on the cam) or running half cycle operation using only the crank sensor.the cam sensor, sync sensor, home sensor are the same thing
the trigger, ref, crank trigger are the same thing
Originally Posted by BRIAN MP5T
EDIT: I referencing this PDF in the “I was reading” reference.…or%20setup.pdfI was reading that the Cam Position sensor on some older models did not have to actually be “exactly positioned” It has to occur before the Crank position sensor event so that the ECU can start the correct firing order, so it knows that Cylinder 1 is coming up.Please consider this then…I believe that the missing tooth on the crank 36 -1 is 67 Degrees from TDC Cyl 1.
Will the Cam Position event have to occur before that Crank Missing Tooth, or just some time before TDC Cyl 1 in order for the ECU to function.
If I can make them occur at exactly the same time, is this preferred, or is it better to have the Cam Event Occur just before/after the missing tooth Event on the Crank.So basically what I am asking is when does the ECU have to receive the Cam Position for the 36 -1 +1Home in relationship to the Crank missing tooth.
(Before/Same/After) If I have to make a gear for this car with one magnet, might as well place it in the ideal place.Thanks very much for your help so far, I started modding a Mazda to be the first to do stuff. I have never been disappointed and it has never been simple.I would not have it any other way.I will make this work with your input and then document the process to assist other Mazda Owners.
Originally Posted by HaltechScott
You would want the Cam signal to occur around 5 or less teeth before the missing crank teeth. This way you will have a reasonable tooth offset and the engine will start a little faster.I think its great what you are doing – Good luck with it.
Originally Posted by BRIAN MP5T
Perfect, there’s the answer.The ECU Will not care if it is not at an exact angle, but should be 5 before the Crank event.Thanks very much. I’ll post final results and what the gear looks like when it’s done..Good thing I have 3 Engines to steal parts from.Cheers

Here is the my solution.

The magnet hit 7 to 5 teeth before the Crank Missing tooth.

The new timing mark was added on the left..

I will still clean it up a bit..

I was able to verify that the timing will in fact be picked up by both sensors in correct order. It is looking very promising.

36-1 +Home Will allow Full Direct Fire and Sequential Injection.

I still have most of the wiring harness to install, but it is going fast.




Wiring for Haltech Sport 1000/2000 ECU to a Protege with FS Engine

Throttle Position Sensor

Haltech Orange Wire +5v to Blue with Red Line on stock sensor harness wire
Haltech Black to Black on stock sensor harness wire
Haltech White to Green with Black Stripe on stock sensor harness wire

Remember to calibrate the sensor with the software.

Cam Position Sensor.

It is what is known as a RELUCTOR. It has only two wires. + –

Haltech Yellow to Green on stock sensor harness wire
Haltech Green to Grey on stock sensor harness wire

CRANK Position Sensor.

It is also a RELUCTOR.

NOTE: There are only two wires that are used by the Haltech, The third is a Shield that goes to ground.

HaltechYellow to Red on stock harness wire
Green to Green on stock harness wire

RISING RATE Reluctor for Trigger with No GAIN, No Filter.

RISING RATE Reluctor for HOME with No GAIN, No Filter.


It is so cool, I had a cam sensor attached to the Haltech that was not attached to the car. I was able to fool it with a ferrous metal part (Ratchet Handle) to see the counter rise on the Laptop. As soon as the Haltech detects movement on the sensor it fires the fuel pump, triggers power to the coils and the injectors. If you only trigger it once, it fires the pump and shuts off, if you trigger it over and over, the pump stays on (Like it’s supposed to)

It’s so refreshing to see the parts work like they are supposed to.


I just hooked up the starter to verify that the Trigger and Home sensor work on the car.

If I had the Fuses in for the Coils and Injectors, it would have tried to start for real.

See Picture, Home Counter, Trigger Counter near Bottom Middle..

The 4 Home, means that the engine did 8 Revolutions or four full cycles.
The 255 Triggers is divided by 8 as 31 and some decimal. Which is fine because it should be around 245 – 280 (Due to when I stopped cranking the starter)

This means that the math that the ECU is doing, is exactly the math I was expecting.

The Cam gear modification work, a Reluctor sensor has a unique property, the signal becomes stronger as speed is increased. So if this low speed test has no trouble, then it will only get better when the car is actually running.

I am still waiting on a WBO2 controller to run the engine..

Originally Posted by BRIAN MP5T
The Cam gear modification work, a Reluctor sensor has a unique property, the signal becomes stronger as speed is increased. So if this low speed test has no trouble, then it will only get better when the car is actually running.

This would explain why some folks have had starting problems with the E6X, and a slightly weak battery.

Originally Posted by LinuxRacr

Yes, the faster the car turns over on the starter, the better the signal is.

The Reluctor generates a sine wave of AC current from 0.2Vac to as much as 100Vac.

As the metal blade on the 36-1 comes close, there is a Vac Peak up, and as the blade leaves, it generates an equal dip in Vac, creating on AC Current cycle or pulse. 35 full pulses per crank rotation, 70 Full pulses per full Event Cycle of 4 cylinders firing.

The faster, the better and more consistent.

Also, any deformity in the 36-1 gear will throw a spanner into the mix. If one tooth has been bent, left or right, it will create a pulse of lesser strength, it will be seen by the ECU as the missing tooth.

Ok, So I want to document something that I am working on right now..

I sent this on the Haltech Forum.

Originally Posted by BRIAN MP5T
Alright Tech Staff, I have another question.In preparation to start the engine for the first time, I wanted to verify that the Trigger and Home both work and give consistent readings.
The numbers worked out every time so I was happy.
I then noticed that the tachometer on the IQ3 goes BANANAS.
I then took a screen capture of the trace.The White Line is the Tachometer
The Green is the Fuel Pressure
Red is just the TPSSome of the other like the EGT are not connected yet so please disregard the 600 Deg EGT.
The WBO2 are also not connected.I have read that a Reluctor becomes a better stronger signal the faster it works, so Cranking the engine should be the worst case scenario. Sub 400 Rpm (Please Correct me if I have bad information)I did some math and on a 36-1 +1 Home the number of Triggers Vs the Number of Homes looks good every time. Obviously, if the ECU is dropping teeth on the 36-1 tooth wheel, it would probably not understand…My Main concern is, Will this RPM spike create a problem, is is Normal, is it a sign of something that is very wrong.I have played with the filter, 0 1 2 3. it changes it a bit, but there are still spikes in the Tachometer Signal.My next plan is to confirm that the wire is shielded all the way to the sensor.Any information or ideas would be helpful.

And Made some setting changes… I still believe that the Home and Trigger are working, but I can’t explain the Spike in RPM.

Today I was able to get this.

Originally Posted by BRIAN MP5T
Teeth are not bent, Made sure the shielding was 100%I added the Miss Counter and The Trigger between Home Counter.The first try I got the same thing, I inverted to Falling and not rising (The opposite of how I have wired it, I checked three times) and got this which is exactly what I wanted to see.
(Note: The Oil Pressure is finally rising as well which is nice to see..)I tried again after 1 min, and got some spikes with the same settings. Not many and they were after some cranking that would have probably started the car.(Is it possible that a fresh and fully charged battery is just spinning the car faster and making a better signal the first time)It’s still much better and I have not gotten better results with the Filters.Is there anything else I could try?Thanks in advance. Once I nail this down, I’m sure the Haltech will be exactly what I need.

Most Recent Update.

Originally Posted by BRIAN MP5T
So, I am still at it, I think it’s fixed. I went for the overkill solution on the wiring shielding where the Haltech wire meets the stock wire.The Haltech wire has a cable wire core and foil around.
The Stock Mazda wire has a series of exposed wires that wrap around the two wires inside like a Co-Ax cable.With some time I was able to totally isolate the center two connections in their own heatshrink.
Then as ghetto as it sounds, took foil and neatly wrapped the unshielded connection from ECU wire to Sensor making sure that both ends touched the original shielding.
Then with a 10″ Piece of double walled heatshrink, I covered the entire thing. When heated the glue inside seals both ends.The line is the RPM and honestly, I’m no tech, but I expect a starter cranking a motor through compression to bounce like that.. Correct me if I don’t make sense..Can you at Haltech let me know if the Trigger and Home numbers make sense for a 36-1 +Home?
Alright, things continue to improve.Eric Gash at Haltech suggested I play with the Trigger Voltage Map.I was able to get a totally perfect RPM signal every time, after an initial spike that i think will prove to be a systemic normal.The final settings will be updated once the car is running well and I can confirm them.I also spent about one hour making sure that all the timing settings are correct in the ECU. That the Home Occurs 5 teeth before the missing tooth. That the Tooth Offset is 3 and 66 Degrees (Based off measurements that I will verify with a timing light)Here is a new screen shot.

Purple MAP.
Yellow Oil Pressure.
Green Fuel Pressure.
Tan Tachometer.

I’m going to post up some Observations here about the install.

The new ECU has various Inputs and Outputs for tons of different things.

The Digital Pulsed Outputs (DPO), there are 6 that are spare after the injectors and coils. These are used to Drive items like Fans, Warning lights, the Mazda Alternator voltage regulator, NITROUS OXIDE!, FMIC Spray, VTEC…

These require Relays.

Important: Once the ECU is turned off, the DPO will by default, turn the item on. It’s just the way it’s made.

Eg. The Fan is hooked to a relay, when the car is switched off, if the relay is connected directly to the battery, it will turn on and stay on.
Easy Fix, The Main Power for the Fan relay should come from the ignition switch. You only need to do this for DPO items.

These outputs are set up as On/Off switches and controlled by the software. You tell it what is hooked to the wire, it shows you a menu that makes sense for the item selected.

These Switch to Ground.
This means that both the positive and trigger + sides of the relay can be hooked directly to the keyed ignition, and the Haltech is making the ground, not making the power. The relay trigger is grounded and the item is switched on.

AVI (Inputs)

These are used for WBO2, EGT, OilP, FuelP, OilT.
The TPS, Intake Air, Coolant Temp, and One O2 sensor have their own wires.
There are four available once the install is done.
In my case, there is

WBO2 #2
Oil Pressure
Fuel Pressure

If you need more, then you have to rely on the A-Pillar and then they can not be logged by the Haltech.

A Note on AVI:
If the item is not connected to the ECU, but you have the item enabled in the ECU, it will send a small level of voltage down the wire, this is to simulate the item being there. Once the actual item is there, it will complete the circuit and remove the voltage so the signal can be read. I had a problem with this because I hooked up an item when the ECU was on. I needed to turn the ECU off and on to get a signal. ( There goes an hour )

2000 Km Update:

The Trigger Threshold voltage was modified and it made the signal more stable. Since then the “Miss Counter” has been ZERO.

Reducing the length of the hose to the MAP has greatly increased the speed in which the ECU is able to adjust to higher speed throttle changes. It has reduced the requirement for throttle pumps.

Tuning is much easier with a fixed fuel pressure regulator. Rather than the stock one which rises as the pressure increases, replace it wit a fixed 50Psi regulator. All fuel delivery is linear.


This is a Haltech RA-10

30vy7he eis65d

It is a Variable Reluctor Processor.

It will take the VR sensor outputs which are very weak and susceptible to interference, and change them to a Hall Effect style signal.

At very high RPM I have been getting a misfire. I believe it’s the RV signal cutting out due to the interference with the coils.

I have done everything to get rid of this problem, but could not.

Eric @ Haltech was super cool and proactive in helping. He is sending this unit as we speak.

The idea is that the VR signal is weak, the longer the wire is, the more likely it will be interrupted. So, this box goes in the engine bay, as close as possible to the sensors (Mine will be behind the battery on the right side).

The wires to the sensor will be 6 inches, then the RA-10 gets hooked to the ECU Crank and Cam wires, as Hall Effect, so very very stable.

Had a Question from a forum member about the installation/modification of the timing system.

36-1 +HOME

The Home has to happen on the Cam 5 teeth before the missing tooth occurs on the crank on the rotation before cylinder 1 is ready to begin it’s cycle.

By setting the timing gear like this, it will place the HOME in the correct location. Install as per normal using the new timing mark.

I used a 2 Tooth and 70 Degrees offset.

Let me know if there are problems.

Stolen from Megasquirt

LS1 Coils:

Starting in 1997, General Motors used a new (for them) coil-near-plug ignition system for the then new Corvette LS1 engine. The system features eight coils (one per cylinder) mounted on the valve cover, with short spark plug wires to connect the coils to the spark plugs. The General Motors LS1 coils are not just conventional ignition coils. Instead they are complete single-cylinder ignition systems. They contain all the electronics for dwell limiting, current limiting, etc. These coils are controlled directly by a low voltage, low current signal from the sequencer. There is no intervening ignition module (like an EDIS or GM DIS). Because the LS1 coils have the igniters built in, they make for an easy installation and generate less electromagnetic noise in the other wiring under the hood.

The LS1 coil has 4 connections (as well as the high tension terminal for the spark plug wire, of course):

* A = Coil Primary Ground
* B = Ignition low noise ground from ECU (ground)
* C = Ignition digital signal from ECU (+5V)
* D = +12V Supply to Coil Primary

You may also want:

* General Motors 12562864 coils mounting bracket,
* MSD 32139 PLUG WIRES – SUMMIT MSD-32139, or
1-#85241 Magnecor wire set (the application for these is a 2002 Vortec truck) or various ‘cut to fit’ wires.

The factory installation mounts the coils on the valve covers (4 coils on each valve cover). You may want to duplicate this set-up. On the driver side valve cover you can attach four ¼”-20 x 1” bolts through the stock valve cover (with the hex head inside the valve cover and a nut holding it in place from the top). Then use the threaded portion sticking up to mount the GM coil mounting bracket to the valve cover. Each of the coils can then be mounted using the GM mounting bracket (12562864). Your passenger side valve cover may have an oil fill cap and fresh air inlet for the PVC system which might interfere with the GM mounting bracket. So instead of the GM mounting bracket, you can use ½” x ½” steel tubing as a mounting rails for the passenger side valve cover. ¼”-20 x 1” bolts and nuts can be attached to the tubing for mounting the coils. Carefully locate the bolts so that the coils do not interfere with the oil fill and breather hole. The coils were then attached to the studs.

If you do not mount the coils on the valve cover, take care to put them where:

* there are not exposed to excess heat (especially near the exhaust components),
* they are not likely to be splashed with road water or be hit by debris during any normal operation, and
* where you can easily service and replace (if necessary) the coils and plug wires.

The LS1 built in coil igniters (the amplifier that drives the coil’s primary current based on the sequencer signal) will follow the sequencer signal pulse width. When the signal from the sequencer is high (3 to 5+ Volts – with very little current from the controller, a few dozen milliAmps), the coil current will be building. When the signal from the sequencer is pulled low (shut off), the coil will spark. The duration of the signal from the sequencer determines the dwell (though the coil igniter limits this to no more than ~8 milliseconds).

As the dwell time increases, the peak coil charge current increases. The coil output current is not as linear. The LS1 coils do not fully saturate until around 8 milliseconds, but the spark energy does not increase much when the dwell exceeds 6 milliseconds. So stick with a ‘running’ dwell setting near the design value of 5.6 to 5.8 milliseconds. This will keep the coils cooler and extend their life. Note that MegaSquirt-II uses a nominal dwell setting, called the ‘maximum dwell’, at 12.0 Volts and adjusts this for the continuously measured running voltage (since higher voltages charge the coil more quickly, the dwell is shortened, and conversely, low cranking voltages need extended dwells to properly charge the coil for easy starting).

To get 5.6 milliseconds of running dwell, the nominal dwell parameters should be set to:

Maximum Dwell
6.1 milliseconds

Maximum Spark Duration
2.0 milliseconds
Acceleration Compensation
0.6 milliseconds

Battery Voltage Compensation
Setting    Net Voltage    Dwell Compensation
-4.0    8.0 Volts    2.4 milliseconds
-2.0    10.0 Volts    0.9 milliseconds
0.0    12.0 Volts    0.0 milliseconds
2.0    14.0 Volts    -0.5 milliseconds
4.0    16.0 Volts    -0.9 milliseconds
UPDATE September 2011

This ECU has worked flawlessly. The Support from Haltech has been awesome. They even made additions in the firmware and software based on your requirements.

If you are installing this, or want to discuss the Standalone ECU install let me know.

EDIT 2013:

I ended up changing the LS1 Coils for an AEM System

Information can be found here..


Also, the ECU continues to work perfect. I was able to run a variable electric cooling system with the use of some SSR.

Leave a Reply