Heineken
13-06-2020, 09:33 PM
Even though working-at-home, home-schooling and home-kindergarten doesn't leave much spare time it's important to have a bit of a hobby for a change. Since I'm working through the ECUs related to capacitor replacement it's now the gauge cluster's turn. Replacing its capacitors pro-actively is especially important as leaks can cause shorts which have already destroyed whole clusters (http://www.nsxprime.com/forum/showthread.php/191324-Smoke-from-the-steering-column-cannot-find-the-culprit?p=1872804&viewfull=1#post1872804) and even burned down cars (according to rumours).
13931
The gauge cluster is fully electrified (no mechanical links) but not a (CAN-) bus system yet. As a result, the signals driving the tacho- and speedometer are rectangle pulses with a defined frequency. These pulses are converted to voltages by an analogue circuit which drives the needles. This circuit needs calibration after a replacement of the capacitors, a job for the two variable resistors on each half of the cluster PCBs.
Unless there's access to a dyno these input signals need to be simulated to be able to calibrate the gauges. Calibrating them by means of a test drive on a closed circuit is possible, too but certainly not advisable on public roads. Jacking the car up might be possible as well but in case of my 1997 AT it caused the traction control system to kick in and needs matching gear/RPM ratio values as well as a separate RPM gauge ..
The first issue to come across is the pins on the gauge. These changed several times across build years and differ based on region, too. Luckily the tachometer/speedometer pins seem to differ on build year only so information from the repair manual as well as the Electrical Troubleshooting manual can be used.
13932
13933
To drive the tachometer on a 1997-2002 cluster only these three pins on the left green connector (when looking a the dials) are required:
Power Supply – A13
Ground – A27
Tachometer Signal – A28
The Electric Troubleshooting manual does not offer further information on the type of signal that is provided from the engine ECU to the cluster but the repair contains the missing link at the iPGM-FI section:
13934
The cluster is supplied with an open collector style setup controlled by a rather simple transistor circuit creating a near 12 V rectangle signal. The frequency of the signal can be calculated as such: RPM = Hz * 20 (e.g. 40 Hz for 800 RPM) - a common standard.
Looking at the speedometer, it's the right green connector's turn with these pins:
Power Supply – B2
Ground – B7
Speed Signal – B22
The repair manual mentions that it's a 5 V rectangle signal. The frequency is according to the Japanese standard implemented at Honda: km/h = Hz * 1.41.
A somewhat important difference from the tachometer is that the 5V are supplied from the cluster and pulled-down to ~0 V by the Vehicle Speed Sensor (VSS).
Creating a tester for these signals is not exactly complicated and considering a minimalistic approach not even necessary (it's sufficient to buy a cheap 5-12 V digital PWM generator from AliExpress) but my target was to provide an easy to use version that helps to speed-up the calibration process as well as to re-activate my somewhat rusty electronics know-how :)
The amateur's choice of microcontroller for such a task is typically an Arduino Uno as it's quick to set up, easy to program, has good support for rectangle signals as well as for all the additionally required elements such as LEDs, buttons and the like. Before reaching that point, though we need to check what's necessary to actually drive the cluster and create a working prototype of these circuits.
Starting with the speedometer we need to drive a transistor by means of the Arduino to pull down the 5 V from the cluster at the required frequency. As we are not dealing with high frequencies an S8050 is sufficient for this task:
13935
Using a few lines of code (utilizing the TimerOne Arduino library), jumper cables and crocodile clips the dial shows the expected ~100 km/h at 71 Hz :D
13936
The tachometer needs a 12 V rectangle input and therefore the circuit is a little different:
13937
A successful test confirms a working prototype (100 Hz equals 2000 RPM):
13938
During the actual calibration it's required to quickly switch between low and high calibration values. The change should therefore be quick and easy, preferably by means of a button press. There is a need to switch between speedo- and tachometer and their respective calibration values. If possible we could add a few switches to test the small gauges (oil pressure, temperature and fuel), too.
After the decision for an ABS plastic housing with the dimensions of 115 x 90 x 55 mm a quick check on how much space is actually available for buttons, LEDs and switches (due to wall thickness, switch/button size and other factors) was done. The front plate design was drawn in Inkscape (https://inkscape.org) as it creates 1:1 scaled PDF prints which allow to draw everything using their real dimensions.
13939
A front plate design on its own is not sufficient of course as there is the need for the driver circuits, connecting to the Arduino, etc. To accomplish that task another free program is used: KiCad (https://kicad-pcb.org/). It's a little complicated at first (a tutorial is highly recommended) but quite powerful, too. Work starts by creating a circuit diagram and later moving to a PCB layout:
13940
A 5 V relay switches the Arduino's output based on the top switch's position to the corresponding speedo- or tachometer driver circuit. The Arduino reads back the relay state to provide the matching calibration frequency which is selected by means of the push button and displayed on six individual LEDs.
The small gauges (oil, temperature and fuel) require specific resistance values towards ground, nothing more. Unfortunately, these values are rather strange (resulting in 17 pieces overall) and at least the oil and temperature ones require a wattage of >1 W which makes them quite large, too. We are going to have a more detailed look at them later.
13931
The gauge cluster is fully electrified (no mechanical links) but not a (CAN-) bus system yet. As a result, the signals driving the tacho- and speedometer are rectangle pulses with a defined frequency. These pulses are converted to voltages by an analogue circuit which drives the needles. This circuit needs calibration after a replacement of the capacitors, a job for the two variable resistors on each half of the cluster PCBs.
Unless there's access to a dyno these input signals need to be simulated to be able to calibrate the gauges. Calibrating them by means of a test drive on a closed circuit is possible, too but certainly not advisable on public roads. Jacking the car up might be possible as well but in case of my 1997 AT it caused the traction control system to kick in and needs matching gear/RPM ratio values as well as a separate RPM gauge ..
The first issue to come across is the pins on the gauge. These changed several times across build years and differ based on region, too. Luckily the tachometer/speedometer pins seem to differ on build year only so information from the repair manual as well as the Electrical Troubleshooting manual can be used.
13932
13933
To drive the tachometer on a 1997-2002 cluster only these three pins on the left green connector (when looking a the dials) are required:
Power Supply – A13
Ground – A27
Tachometer Signal – A28
The Electric Troubleshooting manual does not offer further information on the type of signal that is provided from the engine ECU to the cluster but the repair contains the missing link at the iPGM-FI section:
13934
The cluster is supplied with an open collector style setup controlled by a rather simple transistor circuit creating a near 12 V rectangle signal. The frequency of the signal can be calculated as such: RPM = Hz * 20 (e.g. 40 Hz for 800 RPM) - a common standard.
Looking at the speedometer, it's the right green connector's turn with these pins:
Power Supply – B2
Ground – B7
Speed Signal – B22
The repair manual mentions that it's a 5 V rectangle signal. The frequency is according to the Japanese standard implemented at Honda: km/h = Hz * 1.41.
A somewhat important difference from the tachometer is that the 5V are supplied from the cluster and pulled-down to ~0 V by the Vehicle Speed Sensor (VSS).
Creating a tester for these signals is not exactly complicated and considering a minimalistic approach not even necessary (it's sufficient to buy a cheap 5-12 V digital PWM generator from AliExpress) but my target was to provide an easy to use version that helps to speed-up the calibration process as well as to re-activate my somewhat rusty electronics know-how :)
The amateur's choice of microcontroller for such a task is typically an Arduino Uno as it's quick to set up, easy to program, has good support for rectangle signals as well as for all the additionally required elements such as LEDs, buttons and the like. Before reaching that point, though we need to check what's necessary to actually drive the cluster and create a working prototype of these circuits.
Starting with the speedometer we need to drive a transistor by means of the Arduino to pull down the 5 V from the cluster at the required frequency. As we are not dealing with high frequencies an S8050 is sufficient for this task:
13935
Using a few lines of code (utilizing the TimerOne Arduino library), jumper cables and crocodile clips the dial shows the expected ~100 km/h at 71 Hz :D
13936
The tachometer needs a 12 V rectangle input and therefore the circuit is a little different:
13937
A successful test confirms a working prototype (100 Hz equals 2000 RPM):
13938
During the actual calibration it's required to quickly switch between low and high calibration values. The change should therefore be quick and easy, preferably by means of a button press. There is a need to switch between speedo- and tachometer and their respective calibration values. If possible we could add a few switches to test the small gauges (oil pressure, temperature and fuel), too.
After the decision for an ABS plastic housing with the dimensions of 115 x 90 x 55 mm a quick check on how much space is actually available for buttons, LEDs and switches (due to wall thickness, switch/button size and other factors) was done. The front plate design was drawn in Inkscape (https://inkscape.org) as it creates 1:1 scaled PDF prints which allow to draw everything using their real dimensions.
13939
A front plate design on its own is not sufficient of course as there is the need for the driver circuits, connecting to the Arduino, etc. To accomplish that task another free program is used: KiCad (https://kicad-pcb.org/). It's a little complicated at first (a tutorial is highly recommended) but quite powerful, too. Work starts by creating a circuit diagram and later moving to a PCB layout:
13940
A 5 V relay switches the Arduino's output based on the top switch's position to the corresponding speedo- or tachometer driver circuit. The Arduino reads back the relay state to provide the matching calibration frequency which is selected by means of the push button and displayed on six individual LEDs.
The small gauges (oil, temperature and fuel) require specific resistance values towards ground, nothing more. Unfortunately, these values are rather strange (resulting in 17 pieces overall) and at least the oil and temperature ones require a wattage of >1 W which makes them quite large, too. We are going to have a more detailed look at them later.