s2000 cluster project

orthello

The Dutch Guy
how to enable the KPH/MPH switch:
change location $5D and $5F to $00. The cluster still defaults to KPH if it loses power,
but as long as the + Battery supply is maintained it will stay in the last mode your
had it in (and same goes for the illumination level etc).

Milage:
Start = $C0
End = $FF
 
Last edited:

tuned86

New Member
Tacho signal

By any chance does anyone know what the tacho input signal to the cluster is receiving?

E.g. is it a 5V, 12V square wave form or voltage spike.

I am guessing its either 5V or 12V from driven from the ECU output?
 

orthello

The Dutch Guy
Please read the thread. Everything. Really everything is to be found on one of the 16 previous pages.

VSS is a 0V - 5V 50% square signal @ 39 times the frequency of the 'old' Honda VSS signal.
 
Last edited:

tuned86

New Member
revs

Sorry, i should clarify as I was referring to 'tacho' as the the rpm meter. I couldn't find the ignition signal type after reading, hence I asked the question.

Page 1:
5 BLU (RPM signal input) --------------------------------- BLU (D13 Igniter Unit)

So I am assuming the s2k rpm meter receives an input from the 'igniter unit' (most likely a IG-) on the integras?

Thanks for your time.
 


Last edited:

tuned86

New Member
Found toyota ignitor output IG- 12V square waves. If the honda ignitors are similiar nippon denso units then it might be the same. Will check my EG later.

Recreated CRO.
[/IMG]
 

orthello

The Dutch Guy
Ah... RPM. I see. Nothing is written about that because that is the very standard 12V igniter (unit) signal.

It's a blue wire comming straight from the ignitor inut. ECU is NOT involved in this case because the ECU is connect to another terminal of the igniter unit/module. In an OBD0 and/or OBD1setup this is.

In case of an S2000 this signal IS received from the ECU. This is because each cilinder has its own igniter/coil.

note:
But.... in all the cases the wire is blue. But then still... always check if the signal is a pulse. In some cases there might be a blu wire comming from the alternator!!!
 

orthello

The Dutch Guy
Unfortunatly the 'magic connector' also is power supply to different other electronics, which started talking to the EEPROM too.
So... removed the EEPROM from the cluster hardware. With some tweaking I was able to put it in my programmer and backup and change the content of the EEPROM.

Enabled the MPH/KMH button, and added 200000 km to the ODO reading. It was 36000 and now reads 234000 km. So it matches the ODO reading of my CRX.

For prove and a demo of the button: my YouTube channel
 


tuned86

New Member
Thats so cool that you guys can reprogram this stuff, now you got a sync'd odometer :) Does the odometer count appropraitely, because on some cars the odometer is separate to the speedo, but im thinking the s2000 is the same due to it using the VSS in.

I wonder why the cluster needs 4 +12v connections as well? seems like 3 too many?
 

orthello

The Dutch Guy
cluster needs only two +12v connections. one switched to turn everything on/off and one constant for backup power. illumination level and mph/kmh settings are lost when there is no backup power. odo and trip are always save. also without power.

odo, trip, speed and service indicator are all depending on the same vss signal.
it's even like this... internaly the cluster works/calculates with kms.
when the display is reading miles it's only the displayed values that is in miles. it remains kms in the memory.
 
Last edited:

tuned86

New Member
I am thumbling my way through this but hopefully you knowledgeable guys can provide some guidance here :)

I also graduated with a computer science degree but haven't done programming since i graduated...so I am pretty much a newbie for all those folks in similar situation. Anyway after a few days of reading up, I wanted to start this project.

From what I gather:

You can use a PIC16F877A (microcontroller which will receive the input, process and generate output - with assistance of a ossillator to the cluster - drive the tacho) Reason for 877A was PWM ability I assume? for ECT.

I guess my first step is to create a test bench top.

I was thinking of using a 12v power supply from a printer to connect it to my main (240v) and use it as Source VCC. bad idea?

(using an AP1 cluster to get it lighted up)
* B5 connected to 12v continuous
* B4 connected to 12v ignition switch (can use a regular on/off switch to simulate)
* B8 grounded

Turn on switch for B4, and it should light up...

To start programmer your own microcontroller

Parts:
* PIC16F877A ($10-$15)
* Serial RS232 programmer (JDM type?) ($15-20)
* ICProg (program to load software to PIC) Free
* few other bits and bobs to make the circuit work (~$50)
* Source code (time consuming part but certainly possible)
 

orthello

The Dutch Guy
Ok... my steps...
I used a 16F877A because this is my development platform. It has all common used peripherals on board and therefor I allways start with this controller. When I'm ready I take a look at the result and decide which controler(s) to use in the final version.

You only need to 'translate' two signals. Which is ECT (Engine Coolant Temperatur) and VSS (Vehicle Speed Sensor)
ECT is an analog input signal and an PWM-ish output.
VSS is a digital-ish input signal and a digital output signal.

For this converter job I decided to use two controlers for the final version. I'm not that experienced with embedded software yet.
Because the generated ECT signal is a bit odd, I'm not able to save much CPU time to proces the incomming VSS signals. So doing translation in different controllers was the easiest way for me. It can also save you money from a controller point of view. My final versions will be with a 12F675 for the ECT conversion and a 16F628A for the VSS conversion. Both controlers together are cheaper then one 16F877A ;)
And another point from my side... I use a free version of PicBasic. This free version is limited to 50 lines of code. I wasn't able to put both conversions in just 50 lines of code (including config and declaration lines)

You should be able to create a converter with less then $20 of parts ;) (excluding a chip progger)

To make it even more odd.... I use the PWM module to create an accurate 50% square wave for VSS translation :D The PWM module can be fed with a very precise frequency value and do it's job... without using CPU time. VSS input is an external interupt.

Oh... be carefull.... the PWM module has frequency limits. It can generate frequencies up to 35535Hz.
The low limit is depending on the clock frequency. I'm using a 4MHz crystal. @4MHz the PWM can not create frequencies lower then 245Hz. As a result of this you are not able to show a speed lower then 10Km/h (6MPH)
So what I have done to solve this issue... I multiply the desired frequency by 4. This way speed measurements of 3km/h (1~2 MPH) are within reach. But... the output frequency is now 4 times higher then desired. By adding a 7490 counter IC, configured to do a frequency division by 4, you can again correct the signal to meet desired specs for the gauge. And this way you ARE able to generate a frequency lower then 245Hz, although the pic isn't.
Multiply by 8 will give you the ability to measure even lower speeds BUT.... it also make the PWM reach it's upper limit at 160km/h (100MPH) A 4 multieplier/divider setup was the best consension to have an almost full scale converter with PWM use. It now measures 3km/h up to 300km/h.

You don't have to do anything with the tacho signal. It's the standard Tacho signal from the module. Honda is still using the same specs for that signal as they did in the 1990's :D

12V power supply is fine. I use an old PC power supply and tied B4 and B5 together. On a dev board saving illumination and kmh/mph settings isn't that important.
You also need a very very stable 5V supply for the converter/controller. I tapped into the S2000 PCB as it has a very very stable 5V on board.

I use the Willem programmer (www.willem.org) It has ICSP capabilities, which makes it possible to program the controller without removing from the board. I already had the Willem progger before I started this S2000 gauge project. There are other simpler proggers if you only want to do ICSP stuff.

You have 240V mains? Were are you from?

It is a long post. I'm not sure what it did and/or didn't tell. So if there are more questions.... ask them.

For ECT conversion...
I read the analog input.
Based on this analog input I lookup the time the output should be low.
High output is always 30ms.
Set output to high, wait for 30ms
Set output to low, wait for ***ms
Read analog input
Lookup low time
Set output high, wait for 30ms
Set output low, etc. etc. etc.


For VSS conversion...
Read pulse
if timer stopped, start timer and wait for next pulse
else read timer value (this is the time between two input pulses)
calculate desired output frequency
set PWM to the desired frequency
wait for the next pulse.
if no next pulse is received (timeout after say 1.5 to 2 seconds) stop PWM module and timer.


so the output is something like:
 
Last edited:

konerri

New Member
^ what i am saying is that and EEPROM holds data basically. So there should be a memory location where the millage of the cluter is stored. If you know exactly where this memory location is....you can change the the value in just that location and not disturb anything else.
 

orthello

The Dutch Guy
And what I'm saying is that I already have changed the milage and I already have provided the memory location for that ;)

how to enable the KPH/MPH switch:
change location $5D and $5F to $00. The cluster still defaults to KPH if it loses power,
but as long as the + Battery supply is maintained it will stay in the last mode your
had it in (and same goes for the illumination level etc).

Milage:
Start = $C0
End = $FF
 

tuned86

New Member
I'm from Australia :)

Lots of useful information there! You've also given me more to learn keke. Let me read it over-over again and digest before asking premature questions :)
 
Top