Honda Insight Forum banner

Controlling the Instrument Cluster's Display

74946 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
41 - 60 of 471 Posts
I forwarded these parts to 'my guy'. I'll let you know if he can source them.

Based on my own looking:
STM32G474QET6 is available on aliexpress... for $15.10/each, plus $3.44 shipping.
Mouser is also showing QTY16 still in stock.

ST has QTY7 STM32G473VET6 for sale on their web store.
It sounds to me like some of the changes / features you've added will make this much more useful to those with engine swaps.
Electrically, Pegasus can entirely control the instrument cluster with any ECM via querying data from a serial bus... but I'm sure @Mario isn't going to support that feature for a while.
-VQFN... who's assembling your boards?
-pullups on SCL/SDA? Or at least SDA (use RA3's 10k if nearby).
-QTY3 2.2 uF on +5V seems overkill... only consumers are a buzzer and the LEDs.
-Place 100 nF on +5V by I2C expansion
-My schematic search tool is showing that "LED_SCLK" is actually "LLELDE_D0SSCCLK" @ U1. Could be a problem on my end. Verify "LED_SCLK" net is connected to LED driver.
-That's a small buzzer!
-Can you use U2:9 (Spare) to drive the buzzer (instead of Q1)? Haven't looked at datasheets, but just a thought.
I recommend thru hole for your connectors, but I get that in this case that would interfere with the joystick. If you must use SMT connectors, make the pads as large as possible, to increase adhesion layer between copper and substrate.

How does J1 not get torqued off? Am I not seeing where the pads are on its other side? I only see the 8 pads on one side... and maybe two end pads as well (top and bottom)? Make those end pads large and that'll cut down on the number that get ripped off the pads.
Whenever I'm deciding whether or not a given solder job is achievable by the tinkering masses, I pull out the first soldering iron I ever had... it's a beast, with a huge broad tip. It'll char a PCB in 20 seconds flat. If I can solder the parts with that iron, then I assume most people can solder it with whatever iron they've got.

Given the information you've provided, I suspect most people will be able to solder. Just make sure the soldered wires have an easily separated connector, so that people can mechanically separate Pegasus from the dashboard without having to unsolder the wires. That connector can either be on the Pegasus PCB, or inline.
Is the "signal harness" you mentioned only for the METSCI serial bus?
I got the controller PCBs a few days ago, and had time to assemble the 4 of them today. Tomorrow I will power them on and, assuming the microcontroller works properly, write some code to test everything else to make sure it also works!

View attachment 92145
View attachment 92146
That's a lot of small parts on a small PCB!
I can't remember the last time I specified an 0402 on anything... 0603 is the smallest I'll go, and there you are with quad packs smaller than the 0805s I prefer. I certainly don't use QFN, and am personally annoyed that you can't get the LTC6804 with pin spacing larger than 0.65 mm.

At NI we used parts down to 01005, and 0402 was the default choice... but they had their own manufacturing lines with mucho million dollar equipment.
gotta get with the times.
You're saying this to the guy that's still using Windows 7, and whose primary workstation is from 2009... granted it has 96 GB of RAM and 24 cores, but it's still archaic. When I find a tool that works, I stick with it until it stops working.

I've avoided using any BGAs thus far but likely will on some compact future projects.
IMO you should continue avoiding BGAs forever. We used them all the time at NI, and all the time they were a headache. One of my buddies from Formlabs is at a new startup that sells 3D X-ray equipment to verify all the BGA pads are soldered correctly. We had a more primitive X-ray machine that all our BGA'd boards went through. But even if it's good on day 1, any flexure is going to lift balls off their pads.

Pick-and-place machines are so good these days, 0402s and little QFNs are nothing to them. Shouldn't raise the cost too much over larger components.
In my experience, 0603 is the smallest component a sub-$10k P&P can place well enough to not require any visual inspection prior to reflow. We use 0603 at DD, whereas everything on LiBCM is 0805, SOT23, or larger.

I used to prefer 0603, but after space constraints in a project forced me to go down to 0402, I found they're really not much harder to work with, and a whole lot smaller.
One drawback to 0402 is you can't run a standard 6 mil trace between the pads... not that I endorse that practice, but sometimes you've got to (FYI: LiBCM has zero instances of this cheat).
See less See more
Pegasus could do exactly as you've proposed, but it would take some firmware skills on your end.
@Mario: I think the Pegasus issue I get with LiBCM installed is a noise issue on H-Line. Peter thinks it's due to the longer 4 AWG current cables causing (even more) noise in the IMA bay. Note that LiBCM isn't connected to the H-Line in my car (although it supports it). Anyway, Peter was seeing 'hanging' issues with his OBDIIC&C in his LiBCM-equipped car. He 'fixed' them by:
-placing a 10 nF capacitor between H-Line and GND at the OBDIIC&C PCB.
-adding a 1 kOhm pulling from the H-Line to 5V at the OBDIIC&C PCB.

I suggest you add these provisions to your next PCB (if you haven't done so already).
Congrats on your first home purchase! We've been in ours just over a year now. It's amazing not having to pay rent!
  • Like
Reactions: 1
I would not, however, count on having more free time.
Wait, am I supposed to be maintaining this thing? I thought everything that broke magically fixed itself. Don't I just call the landlor... oh, wait.
  • Like
Reactions: 1
HI, i have question about how i can use the battery meter in my cluster swap in a civic 96 00, measure the battery directly from my car to the cluster G1 insaght 2000
Please verify the following:
1: Are you placing a G1 Honda Insight cluster into a Civic?
2: Is this a Civic Hybrid, or a regular Civic that you added a batter to?
3: What IMA system are you using? Is it an OEM Honda system? If so, is it Insight or Honda?

Depending on your answers to these questions, you'll either need:
A: Pegasus (this thread, but not yet released), or;
B: A METSCI man-in-the-middle. METSCI is the RS485 bus that tells the cluster which IMA info to display.
I also found out that the beeper doesn't go off if you take off your seatbelt while driving! It only does it for a bit when you start the car.
FYI: The beeper NEVER goes off if you unplug the single wire plugged into the back of the door plunger. That's how I prefer it.


Feedback from my quick glance:
You should run separate control lines to RS485 RE~ and DE. I don't remember the reason why off the top of my head, but I do remember I regretted not doing so on the RevA LiBCM PCB.

I'd add a depopulated resistor between RS485 A & B... I know the instrument panel PCB already has one, but if you're planning to solder to those pads, then it would be much easier to just remove the OEM resistor and then already have one populated on your PCB.

What is your ground referenced to? Previously you've mentioned that the next version will have better grounding to prevent ground loops. So are you using GND_ENG or GND_CHASSIS?

Why use logic gates for your inputs? Are they already present in your design? You can get much higher density if you just build the logic yourself (e.g. a single pulldown resistor that drives a single FET gate). Then you don't need bypass capacitance on the logic rails, or the larger logic gates at all. You could probably cut your PCB real estate in half (or more) by using discrete logic, particularly since the digital logic is simply buffering signals. Your BOM would cost for these circuits would also drop considerably.

Probably want a zener on FUEL_SENSE, in case the opamp voltage translation is lost.

I recommend a 100 kOhm resistor between TLV9041SIDBVR pins 4 & 1 (to match the input impedances). Probably not an issue, but it's good design practice.

33 kOhm is a lot of input resistance to FUEL_SENSE. That opamp can drive lower-valued resistors.
See less See more
Interesting, I can see why that's sensible, but I've never seen it done in a unity-gain configuration (nor have I ever done it before). Have you seen issues from not doing that in the past?
The opamp inputs are essentially a current mirror, so in general you want to make the input impedance the same on both sides if possible. This can help reduce distortion and reduce non-linear opamp behavior, and in general stabilizes circuits. Input impedance matching is absolutely required in RF-land, and is also necessary when dealing with linear circuits even at lower frequencies. In this case it's overkill for a unity gain amplifier that only needs a few kHz ABW and doesn't really need to be linear, but if you have the space it's not going to hurt anything. Your existing schematic will work, too.

IIRC, I believe the RevA LiBCM issue I had with connecting RE~ & DE was related to power consumption when the car was off. If Pegasus remains powered when the car is off, you'll certainly want separate control lines. Sean is also correct that you have better control for collision detection if you can independently toggle both lines.
Are you sure the "12V Read Trigger" comparator output is going to have enough time to stabilize between PWM pulses (so you can read the 12V rail)? Tau on the input is 4.7 ms (47kOhm * 100 nF). In your notes on the right it looks like you've thought this through, but you mention worst case 12V sense time is 1.45 ms, which is obviously less than 4.7 ms. I guess you could use the two most recent 12V_SNS_TRIG interrupts to determine the PWM period, and then use that to properly time the ADC S/H (with a future time event).
I'm excited for LiBCM to live vicariously through Pegasus' plethora of I/O expansion headers.
Estimates on layer count? Even 4 layers looks pretty tight... particularly with that MCU slammed into the top right corner.
You should post your power and ground layers, too... poor power and ground always getting left out in design reviews ;). Excited to test out the new hardware soon!
Looking fantastic!
That's a huge upgrade from the previous knob version, which is still holding up just fine after two years.

How much 'fun' did you have sourcing all the parts?
41 - 60 of 471 Posts