Honda Insight Forum banner

Controlling the Instrument Cluster's Display

74942 Views 470 Replies 65 Participants Last post by  Mario


A little project I'm working on. :) (Sorry for the horrid picture!)

Here's the elevator pitch: Directly control the LCD panel with a microcontroller to display custom information on the instrument cluster. The microcontroller will also read the data that would normally be going to the LCD and can choose to display that info or custom info.

Maybe you want to display OBDII parameters where the MPG is. Maybe you want to change the charge, assist, and SOC gauges to accurately reflect amps in/out, real battery SOC, etc.

I've got a few other ideas as well. Once I'm finished with this project I'll open-source everything I've learned and perhaps produce some PCBs to sell. We'll see!

I have work and other projects as well, so it may be slow going at times. But I'll try to give updates fairly regularly.
I don't think this has ever been done before. I hope you guys are excited!
If anybody is or wants to work on something similar, I'll be glad to share what I know; just ask.
See less See more
  • Like
Reactions: 5
101 - 120 of 471 Posts
Panel mod

This sound like a great option for a much more interpretive and customizable display. I would definitely be interested in purchasing one, thanks JGW
2
Got the boards a couple days ago and populated one of them tonight! Man, it takes forever. There's so many components! I don't have tools to assemble PCBs automatically like mudder so it takes much longer.

I then wrote a simple program to just blink the onboard LED to confirm the microcontroller's functioning. Works fine so far! :)

Sorry for the poor pictures, this thing is hard to photograph, being both dark-colored and shiny.



Here's how it's going to sit inside the cluster. You can see the LCD plugs into the bottom of the board, and the cluster plugs into the middle of the board.
There will be double-sided tape on the bottom to stick it down. That long flex cable will also eventually be replaced by a custom one I'll make that's just the right length.



Onwards to programming!
See less See more
Looking good and professional!
Very Cool, would you supply these as self assembly to keep costs down. I'd definitely be interested in one if so!
Looks like you and I are at about the same juncture in our respective design processes ;). Congrats on the successful bringup. Yes, I love having a pick and place machine... I built the first Linsight PCB in less than an hour, and the second one in less than 15 minutes. 450+ components!
2
Very Cool, would you supply these as self assembly to keep costs down. I'd definitely be interested in one if so!
I won't be providing self-assembly kits, but it will all be open-source, so you can order PCBs and parts and assemble one yourself if you really want to!

Looks like you and I are at about the same juncture in our respective design processes ;). Congrats on the successful bringup. Yes, I love having a pick and place machine... I built the first Linsight PCB in less than an hour, and the second one in less than 15 minutes. 450+ components!
Nice! I really need to get/build myself a pick-and-place... I bought the parts for an h-bot a while ago, just haven't gotten around to making the thing. Next project...



Just been chipping away at the software the past week. Discovered a couple hardware mistakes (the flat flex connection coming from the cluster is reversed... I swear I triple-checked the orientation on that), but nothing so bad as to keep me from programming.

Been bringing up pieces of the hardware one at a time. I've been doing the screen first, and reading the information coming from the cluster. I can read the analog gauges, so I can get RPM, or displayed fuel level, etc. Still working on the function to read the digits.

Here's the gauge sitting on my desk with debug signals hooked up everywhere. A logic analyzer is crucial to this kind of work. :)



This picture doesn't look terribly interesting because it's just what the gauge shows on startup. The difference is, the display isn't actually hooked up to the cluster, it's hooked up to my board, and my board is plugged in to the cluster. So this demonstrates that I'm able to both successfully read the serial data from the cluster and write it to the display. It's taken dozens of hours of work just to get to this point! Now that I've got the basic framework, though, the programming will go faster.

See less See more
I won't be providing self-assembly kits, but it will all be open-source, so you can order PCBs and parts and assemble one yourself if you really want to!
Excellent, I'm cheap and PCB assembly is something I'm good at :)

Are there any extra lights etc in the cluster that are unused That this could give access to? I havn't pulled apart my Insight cluster, but the S2000 has a number of indicator bulbs connected on the PCB which are not actually used in the std vehicle.
quick question: are the "m," "p," and "h" characters in "mph" fixed or variable? If variable, that would be very cool, as each three letter OBDIIC&C parameter, such as "Ikw" or "Tps" could replace "mph" and the readout could be the parameter value. Or, at least, that's the idea...
Excellent, I'm cheap and PCB assembly is something I'm good at :)

Are there any extra lights etc in the cluster that are unused That this could give access to? I havn't pulled apart my Insight cluster, but the S2000 has a number of indicator bulbs connected on the PCB which are not actually used in the std vehicle.
There aren't unused lights, but there are unused spaces for lights (you'll have to get the bulbs separately). If you want to use one, you'll need to install a bulb and wire the bulb to my PCB (I'll have instructions on how to do this). You can see one space here, there's another on the other side:



Source: http://www.insightcentral.net/forum...ng/20884-long-writeup-trip-button-repair.html

Those bulbs are used on different-region cars, like Canadian cars have a DRL indicator bulb, I believe.
My board has two 12V outputs that you'll be able to configure to come on under whatever condition you want - I'm thinking of making a lean burn indicator on the dash. :)
However, you can't just install a bulb and wire it up. There are little pieces of plastic that have the icons screen-printed on them. You'll have to add a hole in that mask in order to let any light through. I'll have pictures and instructions on how to do this after I try it.

quick question: are the "m," "p," and "h" characters in "mph" fixed or variable? If variable, that would be very cool, as each three letter OBDIIC&C parameter, such as "Ikw" or "Tps" could replace "mph" and the readout could be the parameter value. Or, at least, that's the idea...
No, and m, p, and h aren't even individually-controllable. It's all one icon. Remember the digit map I posted - every single element on the screen is on in this picture, so it can't possibly show anything more than this.
http://i.imgur.com/Hvc27KH.jpg
See less See more
I'm thinking of making a lean burn indicator on the dash.
As others have mentioned, why not use the "auto-stop" LED to indicate lean burn status? We don't need the OEM flashing behavior to tell us when the engine is off (0rpm and dead quite are redundant indicators).
As others have mentioned, why not use the "auto-stop" LED to indicate lean burn status? We don't need the OEM flashing behavior to tell us when the engine is off (0rpm and dead quite are redundant indicators).
Of course, that will be the default configuration. I was talking personally for myself, I want to make an indicator like we have indicators that say ABS, SRS, etc. I'm going to make one that says LB in green.
Unfortunately, the segments in the '100' are not all controllable, only the middle digit is. So you could show 180, 140, 60, 8, etc but nothing more granular than that. In other words, the 1 and last 0 in that 100 can only be 1 and 0 (or off), respectively.

I can include the minute-average MPG as an option for the 150, though!
Hey Mario, excellent work on this. I am excited to eventually order one of your boards!
( I don't yet own a cluster from this vehicle, but hey.)

I have a suggestion for that particular request. What I would do to have the 100 area display granular numbers is to flash "-50" _short pause_ "-6-" ( "-" = blank)then a long pause and repeat. This would be an example for "56 miles" I think this would be very easy to read. This way you could display anything you want. If you ended up in the hundreds it would require flashing something like "130" _short pause_ "-8-" for 138.

With this method you could display just about anything you might need for averages and such. Up to 199.

Again, thanks so much for the work you are doing!

Again, sorry for the poor video... I need to get myself a modern camera!

I worked hard all weekend to hammer out firmware bugs and get enough of it working for this quick and dirty demo. I figured I'd put together a board and install it just to start getting some testing. Also to impress you guys. ;)

Nothing's final, everything is subject to change. And this is just showing some hardcoded PIDs in the MPG area. But it's a small taste of what I have planned.
God damn that's nice!
Pretty cool for sure... And pretty amazing how much you've accomplished in what seems to me like not very much time...
God damn that's nice!
Pretty cool for sure... And pretty amazing how much you've accomplished in what seems to me like not very much time...
Thanks! Been spending pretty much all my free time on this project.
While I've done a lot, I still have at least as far to go. Software is like 60% of the effort in this project. Still a LOT to do, lots of stuff I need to optimize, low-level functions I need to implement, etc, etc. Then do all the documentation. It's a fun project, though!

Hey Mario, excellent work on this. I am excited to eventually order one of your boards!
( I don't yet own a cluster from this vehicle, but hey.)

I have a suggestion for that particular request. What I would do to have the 100 area display granular numbers is to flash "-50" _short pause_ "-6-" ( "-" = blank)then a long pause and repeat. This would be an example for "56 miles" I think this would be very easy to read. This way you could display anything you want. If you ended up in the hundreds it would require flashing something like "130" _short pause_ "-8-" for 138.

With this method you could display just about anything you might need for averages and such. Up to 199.

Again, thanks so much for the work you are doing!
That's an interesting idea. I might try it out and see how it feels. And thanks for the praise!
There aren't unused lights, but there are unused spaces for lights (you'll have to get the bulbs separately). If you want to use one, you'll need to install a bulb and wire the bulb to my PCB (I'll have instructions on how to do this). You can see one space here, there's another on the other side:


Those bulbs are used on different-region cars, like Canadian cars have a DRL indicator bulb, I believe.
My board has two 12V outputs that you'll be able to configure to come on under whatever condition you want - I'm thinking of making a lean burn indicator on the dash. :)
However, you can't just install a bulb and wire it up. There are little pieces of plastic that have the icons screen-printed on them. You'll have to add a hole in that mask in order to let any light through. I'll have pictures and instructions on how to do this after I try it.
I was hoping the cluster would be common and those bulb positions for the different region cars would be already wired in and on your board would find them as part of the std cluster electronics. As for the masks, if you have a laser cutter you can etch the black surface away to light through them REALLY nicely, I've done this with honda instrument clusters to label the MPH scale on an imported vehicle before with good success.
youtube video.... Nothing's final, everything is subject to change. And this is just showing some hardcoded PIDs in the MPG area. But it's a small taste of what I have planned.
Looked at your video again and also looked at your image of the display mapping... The way you did the OBD parameters in the FCD mini-screen -- seems like one of the more content-rich applications.

I'm wondering, will it be possible to program the line bar graph at the bottom as well, to correspond to the numerical display of OBD (OBDIIC&C) parameters? So instead of fuel consumption, the line bar graph can show, say, Tps, Afr, Ikw, etc.?
Is it possible to show when the AC compressor is engaged?

Sam
I was hoping the cluster would be common and those bulb positions for the different region cars would be already wired in and on your board would find them as part of the std cluster electronics.
Even if the bulbs were included, the lines to control them don't run to the LCD screen, so you'd still need to do some soldering.

As for the masks, if you have a laser cutter you can etch the black surface away to light through them REALLY nicely, I've done this with honda instrument clusters to label the MPH scale on an imported vehicle before with good success.
That was my plan. :)

I'm wondering, will it be possible to program the line bar graph at the bottom as well, to correspond to the numerical display of OBD (OBDIIC&C) parameters? So instead of fuel consumption, the line bar graph can show, say, Tps, Afr, Ikw, etc.?
Yes! I'm planning on letting you show any parameter on any gauge you want (except the speedometer). So you could put TPS on the fuel gauge or the MPG line graph, or whatever.

Is it possible to show when the AC compressor is engaged?

Sam
Yes, I want to support all OBDIIC&C parameters (using the same numbering scheme as well). Just pick OBDIIC&C parameter 6B, "AirCon Clutch Switch", and decide where on the display it should be shown.
101 - 120 of 471 Posts
Top