Reimagining the Porsche 928 Instrument Cluster - Part 3

The original plan for this project was simple: replace the clock in my 1987 Porsche 928 S4 with three small digital gauges displaying information I actually wanted to see.

That was it.

Three gauges.

In Part One, I built the first version and got it into the car. In Part Two, the project began its entirely predictable expansion from a few digital gauges into something resembling a vehicle monitoring system.

And now, somewhat remarkably, I can say that the thing I originally set out to build is actually finished.

Phase One is complete.

The gauges finally work

The original goal was to display three things in the centre console: time, battery voltage and fuel pressure.

The time display eventually acquired GPS, speed and odometer functionality because apparently displaying the time wasn't complicated enough.

Battery voltage was the first actual vehicle measurement to make it onto the gauges. That required some calibration, but once dialed-in it proved accurate enough that the display closely follows measurements taken directly with a multimeter.

Fuel pressure was the last missing piece.

This one required a pressure transducer in the engine bay, an analog-to-digital converter (ADC) and an ESP32 to read the signal and transmit the data wirelessly to the ESP32 running the displays in the cabin.

There were, naturally, some detours.

A faulty pressure sender convinced me for a while that my electronics were wrong. An ADC later decided that analog-to-digital conversion wasn't sufficiently challenging and briefly experimented with becoming a heating element. At one point the engine-bay ESP32 got itself stuck in a boot loop.

Eventually, though, everything started behaving.

The fuel pressure reading is now calibrated, transmitted wirelessly from the engine bay and displayed correctly on the gauge.

So for the first time since I started this project, all of the original functionality is working.

I posted a short video of the finished gauges on Instagram and, somewhat unexpectedly for a video of three tiny screens in a 39-year-old Porsche, it passed 6,000 views.

Apparently I'm not the only person who finds this stuff interesting.

“The Spaghetti Monster”. It’s not pretty, but that’s not what prototypes are about.

From spaghetti monster to circuit board

While I've been developing the software and getting the sensors working, there's been another version of this project slowly taking shape.

A proper PCB.

The prototype electronics have done their job remarkably well, but calling them elegant would require a fairly generous definition of the word.

The engine-bay hardware currently consists of development boards, breakout boards, wiring, connectors and assorted electronics that accumulated organically as I added features.

It works.

It also looks slightly like something you'd find behind a panel immediately before someone says, "Well, there's your problem."

The PCB is intended to turn all of that into something much closer to a finished automotive module.

Instead of separate modules connected together, the new board brings the ESP32, analog-to-digital conversion, automotive power conditioning and protection, and the sensor interfaces together onto one board.

More importantly, it has been designed around where this project is going rather than just what it does today.

There are inputs for additional pressure and temperature sensors, protected auxiliary analog inputs, CAN capability, and enough ADC capacity to accommodate considerably more information from the car.

And recently, one more thing found its way onto the board: a microSD card.

Because apparently simply knowing what the car is doing isn't enough anymore. Now I want data. Having years of experience in the vehicle telemetry and insights field, this stuff is my bread and butter. Let’s start turning that data into information.

This is very close to the final version of the PCB. I tried to add enough inputs that I don’t kick myself by limiting future functionality

From displaying data to recording it

This is where Phase Two starts getting interesting.

A gauge is very good at answering a particular question:

What is happening right now?

Fuel pressure is 38 psi. Battery voltage is 13.8 volts. Oil pressure is 40 psi.

Useful information, certainly. But each of those measurements becomes considerably more interesting when you can put it in context.

  • What was the oil pressure when the engine was at this temperature yesterday?

  • What does it normally produce at this RPM?

  • Is battery voltage behaving differently than it did six months ago?

  • Is the engine taking longer to crank?

  • Is starter current increasing?

  • Has something slowly changed?

Those aren't really gauge questions anymore - they're data questions.

And once the system can record sensor data to the SD card, I can start answering them.

What's next?

There are several additional sensors I want to add.

Oil pressure is high on the list, as is coolant temperature. I'd also like to measure manifold pressure/vacuum, and eventually bring wideband oxygen data into the system.

CAN support is built into the new PCB design as well, partly because I'd rather give Future Adam the option than discover six months from now that he desperately wants it.

Future Adam already has enough grievances with Present Adam.

But one of the experiments I'm particularly interested in has nothing to do with another gauge.

I want to measure starter current.

I've already been looking at a Hall-effect current sensor capable of measuring the very large currents involved during cranking. The interesting part isn't displaying that number on the dashboard. I'm not entirely sure what I'd do with a starter-current gauge while simultaneously turning the key.

The interesting part is recording it.

Every engine start could potentially produce a small dataset: current draw, battery voltage, cranking duration, temperature and eventually other operating conditions.

One start probably tells me very little. A hundred starts might tell a lot.

If cranking current gradually increases, battery voltage begins sagging further under the same conditions, or the engine consistently takes longer to start, the system could potentially identify that trend long before it becomes obvious from the driver's seat.

The same idea applies to the other sensors.

Oil pressure by itself is useful. Oil pressure combined with engine temperature, RPM and historical data from this particular engine is much more useful.

Instead of simply warning that oil pressure has fallen below some arbitrary threshold, the system could eventually say something closer to:

Oil pressure is lower than usual for this engine at this temperature.

That's a very different kind of instrument.

Three gauges became something else

I started this project because I wanted three digital gauges in the centre console of my 928.

And, technically, that's what I now have.

They display the information I originally wanted. They're installed in the car. The engine-bay sensor system is working. Data is being transmitted wirelessly. Phase One is done.

I could stop here ...but I can't stop here. Because somewhere along the way, the project stopped being about building gauges. The programmer/tinkerer/geek in me wants to see how far this can go. And if I can turn it into something robust and repeatable, perhaps it doesn't have to remain a one-off project for my own car.

The displays are increasingly just the visible part of something larger: a system capable of collecting information from the car, recording it, comparing measurements over time and, eventually, recognizing when something isn't behaving the way it normally does.

Phase One was about answering a simple question: What is the car doing right now?

Phase Two is going to be about a much more interesting one: Is what it's doing normal?

Next
Next

Reimagining the Porsche 928 Instrument Cluster – Part Two