PDA

View Full Version : Gauge Cluster Calibrator



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.

Heineken
14-06-2020, 09:29 AM
KiCad's next step is the PCB designer. It does not feature an auto-router but manual routing is sufficient with such a relatively low complexity circuit. A raster size of 2.54 mm is chosen (to match the prototype PCB boards used at a later stage). Resolving the rat nests was rather successful resulting in a nice one-layer PCB design:

13941

KiCad offers a nice 3D render feature of the populated circuit board. It's quite motivating to see the potential final result without actually building it up:

13942

The two-step-process of creating a circuit diagram that is turned into a layout works out well. A circuit diagram is easy to understand and the corresponding layout easy to implement.
KiCad or similar tools ensure no errors are introduced in the process which reduces the risk compared to a more traditional pen-and-paper approach.

Etching or ordering a board right away would be too risky considering my failure rate so it was decided to realize it by means of a universal prototype PCB.
Not a difficult task, just a lot of counting, wiring and a bit of solder work:

13943

13944

After connecting to an Arduino the programming could be completed (frequency control, button logic, de-bouncing, etc.). A first prototype testing on the uncalibrated cluster looked like this:


https://www.youtube.com/watch?v=6Hiq26a8ymo

Nevertheless there was still significant work to do. Namely drilling the case, installing the LEDs, buttons and switches as well as wiring everything up.
In addition, it was figured out that the previously used Arduino Uno runs on 12 V but it's linear voltage regulator runs way too hot when enabling the relay.
That issue was solved by switching to a Freaduino. It's fully compatible but utilizes a switching power supply that runs much cooler.

Let's continue with the casing. The front plate design is printed on paper, taped to the housing cover and used as a drilling template.

13945

It's printed a second time on transparent Laser printing foil (mirrored), cut-out and taped onto the cover in reverse - protecting the letters from scratches.
After all the parts are installed the foil shows almost no movement which hopefully gives it a long life.

13946

The wiring was done using jumper cables and shrink tubing. It attaches to the pin headers on the board and can be easily separated if required.

13947

Now the user interface can be tested:


https://www.youtube.com/watch?v=6hJ7u0cnVwE

The calibration steps would be as such:



Selecting the highest frequency
Adjust the variable resistor for a match of the dial
Select the lowest frequency
Adjust the second variable resistor
Re-check the highest frequency and potentially adapt
Check all intermedia values


Continuing with the resistors for the small gauges. Supplying the cluster with 13.8 V (the dials are somewhat sensitive to supply voltage) they seem to require rather uncommon values:



Temperature - L: 130 Ω, M: 29 Ω, H: 20 Ω
Oil pressure - 0: 76 Ω, 4: 33 Ω, 8: 13 Ω
Fuel - 0: 90 Ω, ˝: 30 Ω, 1: 7.5 Ω


Realizing these resulted in overall 17 resistors to be connected. The oil and temperature gauges load the resistors with ~1 W and therefore require larger resistors, in addition.
As there was no obvious way to fit them into the housing it was decided to put them along the cables towards the cluster. It's not beautiful but it works ..

13948

To make the tester's wire harness more flexible a supply voltage and a ground wire was added to each side. These can be used to test other parts of the circuit (like warning lamps).

13949

Unfortunately all of this did not went as smooth as it's written here. It took more than a month to realize it.
The front plate design had to be changed completely after it turned out that the switches couldn't be installed the way it was intended (two cases had to be scrapped).
Numerous versions of the circuit and layout were made fixing various issues and even one that would have killed the Arduino right away.
Three orders were required until all the parts were finally on board.

Investing all this effort for a single cluster is a bit over the top but it was fun nevertheless :) .. at least I'm able to replace the capacitors now.

Heineken
14-06-2020, 11:06 AM
As there was so much effort involved in creating the tester I would like to let others benefit from it as well.
I'm open to providing identical or modified copies (e.g. different frequencies, deletion of mini-gauge support, larger case, kmph vs. mph, etc.) to those interested.

Note that it's just a hobby project but I'm nevertheless looking forward to any requests or ideas :)

Bill Of Materials (BOM) - not heavily optimized


Quantity
Name
Description
Item Number
Cost
Overall Cost


1
Case
ABS plastic housing 115x90x55 mm
460311
3.85 €
3.85 €


1
LED Clips
5 mm, 10 pieces
442573
0.55 €
0.55 €


1
Pin Header
1x 40 pins, gold plated, 10 pieces
451551
4.95 €
4.95 €


1
Relay
5 V print double contact print relay HONGFA HFD3/005
340761
1.54 €
1.54 €


1
Resistor Set
E12 Resistor set 0,25 W, 100 pieces
221464
7.25 €
7.25 €


1
Jumper Cables
Male/male jumper cables, 40 pins
511159
2.95 €
2.95 €


1
LED
5 mm, red, 10 pieces
120023
0.35 €
0.35 €


1
Switch Top
ON/ON
420179
0.85 €
0.85 €


3
Switch Bottom
ON/OFF/ON
420180
0.85 €
2.55 €


1
Pushbutton
Push-to-close
420207
0.60 €
0.60 €


1
BNC Connector
For panel installation
450423
0.36 €
0.36 €


1
Power Connector
5.5/2.1 (out of production – needs replacement)
450590
0.55 €
0.55 €


1
Prototype PCB
160 x 200 mm RM 2.54 mm
440260
2.05 €
2.05 €


1
Power socket
4 mm, gold plated, black
450045
0.75 €
0.75 €


1
Power socket
4 mm, gold plated, red
450044
0.75 €
0.75 €


1
Resistor
47 Ω, 5 W, 5 %
221329
0.19 €
0.19 €


1
Resistor
180 Ω, 5 W, 5 %
221335
0.19 €
0.19 €


2
Resistor
120 Ω, 5 W, 5 %
221333
0.19 €
0.38 €


3
Resistor
10 Ω, 5 W, 5 %
221321
0.19 €
0.57 €


1
Resistor
39 Ω, 5 W, 5 %
221328
0.19 €
0.19 €


2
Resistor
68 Ω, 5 W, 5 %
221330
0.19 €
0.38 €


2
Resistor
8.2 Ω, 5 W, 5 %
221320
0.19 €
0.38 €


1
Resistor
5.6 Ω, 5 W, 5 %
221318
0.19 €
0.19 €


1
Resistor
33 Ω, 5 W, 5 %
221327
0.19 €
0.19 €


1
Resistor
12 Ω, 5 W, 5 %
221322
0.19 €
0.19 €


1
Resistor
22 Ω, 5 W, 5 %
221325
0.19 €
0.19 €


1
Resistor
15 Ω, 5 W, 5 %
221323
0.19 €
0.19 €


1
Universal Cable
0.25 mm˛, 25 m, white
560048
2.50 €
2.50 €


1
Shipping
Pollin.de for above items
n/a
5.95 €
5.95 €


1
Freaduino

EF01001
15.40 €
15.40 €


1
Shipping
Komputer.de
n/a
3.50 €
3.50 €


1
Transistors
S8050 5 pieces via ebay.de
various
1.20 €
1.20 €


1
Shipping
ebay.de
n/a
2.00 €
2.00 €


1
Velcro Tape
Self adhesive for Arduino
various
5.99 €
5.99 €


1
Shipping
amazon.de
various
3.99 €
3.99 €


1
Zip ties
100 x 2.5 mm, black, 100 pieces via MaKaShop24.de
1010100002501
0.49 €
0.49 €


1
Shipping
MaKaShop24.de
n/a
3.90 €
3.90 €














Sum:
78.05 €




Available as a download from my server:



Front plate Design (http://lln.prelude.de/~lars/Honda%20NSX%20-%20Gauge%20Calibrator%20Front%20Plate.svg) (licensed according to CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0/deed.en))
KiCAD Project (http://lln.prelude.de/~lars/Honda%20NSX%20-%20Gauge%20Calibrator%20PCB.zip) (licensed according to CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0/deed.en))
Arduino Source Code (http://lln.prelude.de/~lars/Honda%20NSX%20-%20Gauge%20Calibrator%20Source%20Code.zip) (licensed according to GPL V3.0 (http://www.gnu.org/licenses))

goldnsx
14-06-2020, 11:41 AM
Very nice project.

Heineken
14-06-2020, 11:46 AM
.. and a lot of work - Thank you very much :)

RedCarsGoFaster
14-06-2020, 02:51 PM
This is outstanding - first time I’ve heard of something like this being produced outside of Japan. Good work!

I have been thinking of refreshing my gauge cluster for a little while, but the challenges of calibrating the unit have put me off a bit. Of course, complete replacement tachometer gauge and minor gauges are available to bypass this process, but the UK mph gauge seems to be out of production and unavailable everywhere - the only course of action would be to refurbish the UK unit and recalibrate.

I think this deserves some recognition - if all was right with the world you’d receive a couple of quiet enquiries for duplicate units from a handful of NSX specialists. Have you cross-posted to NSXPrime as well?

Heineken
14-06-2020, 03:30 PM
Thank you very much :-)

The post to prime was just completed and both posts now contain links to the sources (GPLed) for those that would like to try to build something completely on their own.
Two requests have already been received. Need to check with everyone individually how the result should look like.

Nice improvements would be:

Add information on pinning for all the different build years (currently missing information on >2002 and <1997)
Provide km/h and mph support
Provide support for limited and non-limited (>180 km/h) clusters in one box (maybe need to re-think the user interface)


Considering the costs for replacement parts (which are nearly as old) a capacitor replacement and re-calibration should be the preferred way to go.
Note that only the large gauges need calibration, the small ones are not intended for calibration.

As the calibrator is now ready to be used, the cap replacement will be next. It's going to be based on a digikey order which can be re-used (after checking for compatibility, of course).

britlude
14-06-2020, 03:48 PM
Nice to see someone else making gadgets and widgets to test nsx systems. With the age of the car now, the knowledge base for original test equipment, and the availability of original test equipment will be naturally falling off, so it's good to see people developing new kit. Now you have the basics sorted, can control the pulse levels at will, it's a small programming step to a showboat sweep display or automatic stepping between defined levels!!! :)

Oh, and note that 2 caps in the dash are bipolar electrolytics....

goldnsx
14-06-2020, 05:24 PM
When I did my gauge cluster years ago I did not recalibrate it, just swapped the caps for new ones and didn't notice any difference before/after. But I did it before it failed...
But it good to know that it's possible to recalibrate it with a tool.

Heineken
14-06-2020, 05:48 PM
Nice to see someone else making gadgets and widgets to test nsx systems. With the age of the car now, the knowledge base for original test equipment, and the availability of original test equipment will be naturally falling off, so it's good to see people developing new kit. Now you have the basics sorted, can control the pulse levels at will, it's a small programming step to a showboat sweep display or automatic stepping between defined levels!!! :)

Oh, and note that 2 caps in the dash are bipolar electrolytics....

There are certainly options for a little extra Bling but probably won't increase usability :D
Maybe adding a "long-press" demo-mode in the future .. who knows .. ?

PS: The caps have been identified and the BP ones detected successfully ;)

Heineken
14-06-2020, 05:49 PM
When I did my gauge cluster years ago I did not recalibrate it, just swapped the caps for new ones and didn't notice any difference before/after. But I did it before it failed...
But it good to know that it's possible to recalibrate it with a tool.


The displayed values on my cluster were slightly too high when checking and spot-on after a minimal calibration.
I'm looking forward to the results after exchanging the caps, too.

britlude
14-06-2020, 07:40 PM
There are certainly options for a little extra Bling but probably won't increase usability :D
Maybe adding a "long-press" demo-mode in the future .. who knows .. ?

I was thinking more along the lines of once the calibration process has been carried out, it would be a nice satisfying double check for it to sequence automatically between the 1000's rpm levels or 10/20mph on the speedo.... :)

It'll also be interesting how much changing the electrolytic caps makes on the calibration, or if they are just for power rail smoothing and heavy duty signal conditioning

ozon02
15-06-2020, 06:12 AM
it's great that you wanted to share the idea on the forum and shared the documentation.
Congratulations!!!

Heineken
15-06-2020, 08:07 PM
I was thinking more along the lines of once the calibration process has been carried out, it would be a nice satisfying double check for it to sequence automatically between the 1000's rpm levels or 10/20mph on the speedo.... :)

It'll also be interesting how much changing the electrolytic caps makes on the calibration, or if they are just for power rail smoothing and heavy duty signal conditioning


Once the caps are exchanged, maybe some of these questions can be answered.
One large cap is very likely for stabilization, most of the others seem to be part of the pulse-to-voltage converters that are used to drive the dials. The remaining ones could be related to the timing of some of the warning lamps (brake light circuit), maybe?

To bad we don't have the full schematics. That would be a nice reverse engineering job but if we start with that my caps will probably be never exchanged ..

Heineken
15-06-2020, 08:08 PM
it's great that you wanted to share the idea on the forum and shared the documentation.
Congratulations!!!


Thanks, hopefully it's going to be helpful :)