Go Down

Topic: Can it be done... Arduino-based full Digital Auto Instrument Cluster (Read 12263 times) previous topic - next topic

guardian of light

First off, for PCBs, http://dorkbotpdx.org/wiki/pcb_order . Cheaper than hell, three boards for the price of one. Also, he'll check out your eagle files so you don't try and send off a board with serious errors (no drill layer, like I did :-P.) Second, the MAX72xx can control any arbitrary arrangement of LEDs up to 64.
Entrepreneurship, Arduino, Ham Radio & General Wannabe Hackery

Twtr: @mltd_alexander


There are quite a few good options.  I've heard good things about Dorkbot, BatchPCB can come cheap if you're willing to wait a little longer on it.  I got mine done at SeedStudios and I paied like 38 bucks for 10 boards 3"x4"

Okay, made 2 more schematics, one for the tach (that I'm posting), and one for the odometer, which is a total of 3 now.  I was going to post up the one for the speedometer, but I realized I need to fix a mistake I made in both it and the odometer schematic, being that the digits on the LED displays are labeled left to right and the display controls on the MAX72XX series run right to left  :~ .

Another problem is that I seem to be stuck with ExpressPCB and need to get the PCB designs made up before I can transfer them out to another program to be converted into the Gerber format.  Free Eagle doesn't have the board sizes I'd prefer, and I'm sure it's going to take me more than 30 days to get everything taken care of in the PCB and SCH designs, which is how long the free trial of full Eagle lasts (this is a back-burner project, only working on it a couple hours a day max).  I would use PCBArtist, which seems to have the proper output files, but then I would need to manually input nearly EVERY component I'm using (no LM3917, MAX72xx, MPX4250, etc in the library), which is a big headache and time constraint.  As it is, I will need to manually make the outlines and pinouts for the LED displays in ExpressPCB...

Tach schematic...  Well, I have it on my laptop here, but I can't figure out how to post it :eek: . 


Free Eagle doesn't have the board sizes I'd prefer,

How large do you want? It does a fair size board.

Rob Gray aka the GRAYnomad www.robgray.com

Well, I'd like to try to get at least most of the actual displays on one board, connected to the brains by something like a ribbon connector...  One is 5 1/2" by 14", and the other is 5 1/4" by 18" (2 separate clusters, one at a time, though, starting with the 14" cluster).  And then for the 5 1/2 by 14, there is a separate card going with it because of the shape of the cluster housing, approximately 5 1/2" square with cut-offs (speedometer/odometer).  I could divide the large 14" board up, as in the stock gauge face cards, but that would mean more connectors and money...  I was hoping one large board and one large connector would work.

BTW, would a simple socket for the Nano work on the main "brain" board?  If so, what kind of socket is it?  I can't seem to find a package outline description.

I think I'll post the tach schematic on Photobucket and then post a link...  Seems like it would be easier that way.


Kicad is free and works pretty well, only problem is some components aren't there, but adding is easy
The only problem I see is atleast for batchpcb the max size is 15" which also is quite expensive at 2.50$ sq in
not sure about the other places, it may be cheapest to just use perfboard and spend some time wiring


As each display will be driven by a 3- or 4-wire link can't you split the PCBs up?

Rob Gray aka the GRAYnomad www.robgray.com

What I'm actually looking to do is to make the display "brain" on one or more (thinking less than 3, possibly) main boards, with the inputs, Nano, and display driver chips, and then have a second (or 3rd, in the case of the wider cluster) board that contains all of the actual displays, with ribbon cables (I have a LOT of old IDE hard drive cables) connecting them.  I don't think I'm going to have room in the circles (3 7/8" diameter) in the wide cluster to have the chips along with the 7-seg displays, and I know I won't in the smaller cluster (the one with the single 19" wide board).

What I've got drawn up for the displays (on graph paper) is:
Speedometer:  3/4 of the circle's outer diameter ring with T1 LEDs (32 LEDs), 3 digit 7-segment display at .40" digit height, 2 DIP8 4-digit 7-segment displays for the odometer (eBay item...  Need small 7-seg displays).
Tachometer:  Same as above except only one 4-digit 7-segment display instead of the 3 digit and dual DIP8 displays.
Fuel and vacuum gauges: 10 T1 3/4 LEDs (or T1's, whichever fits and looks the best) in a single row along 1/3 of the remaining 2 circles.
Coolant/air temp and battery voltage:  Same as fuel gauge with the addition of a 3-digit 7-seg display, along another 1/3 of each of the remaining circles.
Oil pressure:  Same as above except with a 2-digit (may need 2 single displays as I can't find a dual with the same intensity as the others) 7-segment display, along the final 1/3 of the "engine health" circle (oil pressure, coolant temp, manifold vacuum gauge).  I could adjust the intensities of each gauge accordingly, but the remaining gauges would be so dim that they would practically go out when I dim the gauges to go with the interior lights when it's night (I usually set the interior dimmer to 50% brightness).

I'm hoping I can fit it all in.  I'll continue with Express PCB for the moment to get the layouts figured out (already starting to lay out the PCB's and only need to finish 2 more schematics), and then copy over to whatever program I'll be using to produce the necessary Gerber and layout files.

Guess I'll continue with splitting up the gauges into individual cards.  Probably better that way anyways, even though it's going to cost more with more connectors and such.  I'll try the KiCAD, I guess, as well.  Seems like I'm going to need to make chips in the CAD programs other than ExpressSCH/PCB anyways.


You could use some right angle headers and right angle sockets to connect boards next to each other, it would allow you to have smaller boards that fit together without wires

Okay, I downloaded KiCAD and it took forever to get it going as I had a bit of difficulty figuring out how to set up the libraries and what not, but it's got all of the required schematic layouts and footprints now.  I'm almost done drawing up the "brain board", but I am confused on the SPI connections.  The Arduino has the connections labeled as SS, SCK, MOSI, and MISO, and the MAX7219's have the usual DIN, DOUT, LOAD, and CLK pins.  I think the SCK goes to the CLK pin, but the others I can't figure out.  Also, I currently have the DOUT pins of the MAX7219s connected to the DIN on the next 7219.  Is this right?

Also, can I use the 5V bus off of the Arduino for all of the chips, or should I use a separate LM7805?

I ordered a Nano off of eBay a couple of hours ago.  I suppose it will be here sometime in the next week or so, and then I can go out and get a decent sized breadboard from RadioShack for putting one gauge together at a time and working on the programming, once I get the necessary LED displays.


MISO -> DOUT of last 7219 (only if you need to read back from the MAX7219s, otherwise nc)
SS -> nc
any IO pin -> LOAD (you control this with your code to load the data after the shifting it done)

I currently have the DOUT pins of the MAX7219s connected to the DIN on the next 7219.  Is this right?


Rob Gray aka the GRAYnomad www.robgray.com


you can load as many chips as you want on the Arduino (or any other) voltage regulator up to it's maximum current capacity.  That's approx 800ma on the arduino if it's plugged in thru Vin, or 500ma if powered via USB.


Thoughts and opinions on speedometer design are this, semicircular linear bargraph display with fast response time and digital display in the center with a somewhat slower response time such that you don't get the zipping '8' during rapid speed changes. The same philosophy would apply to the tachometer and oil pressure as well, as both parametes can vary widely and rapidly with acceleration.

Well, I don't know about your car, but the oil pressure in mine doesn't vary that much when the engine is hot, maybe about 15 PSI difference between idle and 4000 RPM, and 30 PSI between hot and cold idle (which starts at 70)...  May be different since I've rebuilt the lower end.
Once I get into the programming, the update rate on the speedo and tach will be adjusted accordingly.
Got the Nano today (wasn't expecting it for 2 weeks yet).  Didn't realize it was so tiny...  Just wish the Chinese that shipped it would have put it on one of those foam blocks first to protect the pins (it's bare in an anti-static bag).  I'll go out later this week and get a breadboard from RadioShack so that I have some way of getting the pins protected for the moment.  Then I'll see about getting a couple MAX7219s and LED displays to get going, probably once my tax papers show up and that gets done.


This might be a useful document toward your goals, I do not know if you already have it or not.
It is the CAN 2.0 specification.

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131