This has been my project over the past 4 months or so. I thought I should make a thread to document the project.
After the SweepOTron board
, my previous project, I learned the basics of electronics design and layout.
As I was designing that board, I was thinking about how cool it would be to emulate the non-linear compressed tachometer action of a STACK cluster for my track NB1:
After I got the SweepOTron board on my AWD cluster working and installed
in my MSM, I decided to try and take on the project of making a custom cluster for the NB1.
I thought I would have to use some kind of microcontroller to make the scale non-linear. I thought I could use an Arduino, but had never used a programmable microcontroller like it before. I liked the small ones that Sparkfun sold, so I ordered a couple.
I also thought I could use the same gauge controller
that I used on the SweepOTron by forcing a voltage from the microcontroller to manually point the needle where I wanted it, but it turned out there was an even better option. Theres another gauge controller
that could be controlled via SPI serial connection, which it turns out the Arduino supports natively.
I ordered a bunch of parts and hacked it all together until I could control the gauge from the Arduino. This was a huge coup for me, since this was uncharted territory.
I also got lucky and found that the FreqMeasure library
would do exactly what I needed in terms of reading in the RPM of the engine. The RPM was fed in from the tach at 12V, but the Arduino only ran at 5V, so I used a way-overkill optocoupler circuit to drive the RPM input.
At this point, I was feeling confident enough that this would work to have Adam @ revlimiter.net make me a custom set of gauges with a compressed tachometer.
We designed some gauge faces that were a true homage to the STACK gauges
We went back and forth and finally settled on a design down to the fonts and thickness and length of the tick marks.
In the meantime, I started the layout of the actual board. I decided it was above my abilities to put the Arduino directly onto a custom board, so I designed the board to socket the Sparkfun Arduino onto a simpler board. The board, which I called SuperSweep, had an automotive 5V/12V regulator, some power stabilization caps, and the gauge controller and optocoupler. I also ran two of the general I/O pins to a separate header in case I thought of something in the future.
With the Arduino board installed
Old busted on left, new hotness on right
When the new faces arrived, I was incredibly pleased. The oil pressure gauge isn't installed in this picture because I'm using an NA gauge and sender and had to modify the housing to fit.
I had to tweak the scale and offset in the Arduino code to get it right, but it ended up working out extremely well
I also decided that since I already had the RPM input on the Arduino, I should make use of it and impement a shift light.
I found a super-bright LED
that fit into a drilled-out bulb holder, and replaced the seatbelt light. I used the 6101 LED for the red shift light. I needed to solder a current limiting resistor in series, but the LED was much brighter than the incandescent bulbs.
I wrote some code so it would be steady above a certain RPM and flash at a higher RPM. I was absolutely shocked when it worked the first time.
I eventually discovered that the whole board was too deep so I couldnt mount the cluster flush, so I had to replace the connector sockets with right angle versions and replace the standoffs with slightly shorter versions to reduce the height.
Finally today I got it all put back together.
With wiring harness and CEL relocated
The cluster does a simple staging sweep on startup
And the shift light works great, though it's hard to show while revving in neutral.