So the gauge cluster in my Corolla no longer agrees with the engine I put in it. The tach only goes to 8k and is incompatible with COP ignition, and the speedo is cable driven. I decided I wanted a new cluster.
My first intention was to use an S2000 cluster. Picked one up on ebay, bought connectors and pins, and started looking at what would be involved in mounting it and driving it. There's a company called JSP Fab who makes a mounting bezel, but it puts I'm not happy with it. Driving it would involve something like an Arduino to convert inputs into something the cluster can talk to. After some soul searching I decided to build my own dash with the arduino and some displays.
A few days later, here's a functioning prototype:
The wirey thing on the left is an arduino uno with two shields on top of it. You can kinda see that it's a stack of three PCBs. The middle shield is a CAN Bus shield from Seeedstudio and on top of it is a MakerShield from MakerShed with a breadboard adhesived to it. On top of the breadboard is an Adafruit Ultimate GPS brekout board. It is what I'm using to read my speed. The display is a RGB backlight positive 20x4 character display. Right now the assembly is being driven by my Megasquirt 3 hooked up to a JimStim. The Arduino talks to the Megasquirt via CAN Bus, which means there are only two wires connecting the arduino to the Megasquirt. Any data the Megasquirt sees or generates can be sent over CAN Bus and read by the Arduino. Right now it is reading RPM, lambda (air to fuel ratio), and water temperature. The GPS sends the Arduino position and speed information over a two wire serial connection. It takes it a bit to get a fix, so I'll probably be putting in a battery backup for the GPS unit and also getting a digital speed sensor for the transmission. Fuel level comes from the regular fuel sender. If I ever have to open up the fuel tank I'll try to install a strip level sensor.
The screen is about 3 in long and 1 in tall. Right now the bar at the top is RPM, with 0 on the left and redline on the far right. Below that on the left is a numerical RPM read out. On the right is speed. There's nothing there until it starts moving, so it's blank right now. Below that is lambda, next to it is a bar read out for oil pressure and then fuel level. At the bottom is water temperature.
I'm thinking about having a larger screen for the tach and speedo only. It would be a 40x4, so it would be the same screen, only twice as long. The current screen would then be only for ancillary information. I'm also thinking of switching to a full LCD.
To temporarily mount the screen I grabbed a piece of masonite, pulled the bezel off the original gauge cluster, and used some double-sided tape.
I need to put some warning and indicator lights. I would like lights which have the proper symbols. I saw a bunch which would work well from UK vendors like these. I'm curious if anyone has found anything here in the US which would work.
The next step for me will be smooshing all of that Arduino into a case so I can continue prototyping on the car without risking losing a connection. I ordered DIP sockets and CAN Bus chips. I'm going to pair those with an Arduino Micro. Here are the major components in an enclosure I have on hand. It looks like everything will fit ncicely. I should have room for DB9 or DB15 connectors between the enclosure and the chassis harness and the enclosure and the display.
So I went back and started putting my circuit together with the components I'm going to use on a breadboard.