Hohn
Well-known member
I'm not sure where else to put this, so forgive me if this goes somewhere else.
Some of you know I'm active on a prominent oil discussion site and quite passionate about engine lubrication. This is why I always was frustrated that I couldn't see what the oil pressure or temperature was on my 10th generation Accord (with K20c4 engine).
I started looking into ways to get oil pressure or temperature info. But I found myself stuck with a set of challenges and desires that seemingly nothing could meet:
Since there was no off-the shelf option in my LLM-assisted research, I decided to try to make my own. In theory, it's not so hard-- a cheap little Raspberry Pi PICO for $4 as the microprocessor. It takes in the signals from the sensors and put the information on a small display that you can mount. And why not make the display touch screen so you can do things like swap units, reset memory values, or adjust the color or brightness?
The search for good sensors landed me on two that work very well for my purposes.
For pressure, I'm using a Dwyer Omega PX119a. While they have a few variants, I chose a simple 4-20ma current output for a 0-150psi pressure range (about perfect for oil pressure, don't you think?). It's fast , precise, reasonably compact and not too expensive. It also has a 1/8 NPT male interface that is very friendly for integration.
PX119 specs:

For Temperature, I went with a PT1000 RTD from Evo Sensors.
The RTD has good precision (better than a thermocouple) while having sufficient response time and ease of integration. Plus, the EVO product is stainless and has high temperature insulation and such-- it's suitable for under hood environment without special shielding and so forth.
The Raspberry Pi Pico (hereafter just "Pico") needs some intermediaries to work well with the sensors. In the case of the RTD, this is super easy because Adafruit offers a small daughterboard designed specifically to interface with RTDs. The Max 31865 is a great little board and reasonably priced.
The pressure sensor needed a bit more for integration because of the 4-20ma current output. I chose that for its resistance to noise and interference in the mobile application where a straight voltage output might struggle. So the current signal comes back to the main controller board where a shunt resistor network converts that to a voltage value the Pico can handle and understand. I settled on using a nominal 250 ohm shunt to turn the 4-20ma value into 1-5V, but do it inside the controller. Fairly standard practice with these things from what I gather.
However, the Pico can only handle up to 3.3V on the ADC input that will read the pressure. So had to add a voltage divider that would scale it to 3.3V max. I got pretty close to perfect by sorting a bunch of resistors to get the actual values needed.
Anyway, after a month of struggling with PCB layout, cooking a Pico and needing to order a replacement, and many hours of software debugging, I've got my working concept done with bench testing.
Some of you know I'm active on a prominent oil discussion site and quite passionate about engine lubrication. This is why I always was frustrated that I couldn't see what the oil pressure or temperature was on my 10th generation Accord (with K20c4 engine).
I started looking into ways to get oil pressure or temperature info. But I found myself stuck with a set of challenges and desires that seemingly nothing could meet:
- Honda puts nothing on the OBD, and there's no oil pressure or temperature sender anywhere in the OEM sensing. A basic pressure switch is all you get.
- I keep cars a LONG time and try to keep them nice, so I don't want any hole drilling or any kind of interior butchery. Whatever oil pressure or temperature setup I have, I has to be perfectly reversible and leave no trace whatsoever.
- The factory oil pressure switch port is BSPT into the aluminum block and VERY risky to remove and reinstall and there's almost no space around it to tee into anyway. I am going to interface somewhere other than the pressure switch.
- I need the display to be both high resolution (i.e. integer units) and yet responsive. Analog displays don't give good resolution, especially with the tiny 90 degree sweep of most cheap electric gauges.
- Most sending units and sensors are poor quality and quite cheap, even in "premium" gauges. I'd like to have sensors that are more industrial and not so much cheap consumer. Better precision, better robustness, faster response (for pressure).
Since there was no off-the shelf option in my LLM-assisted research, I decided to try to make my own. In theory, it's not so hard-- a cheap little Raspberry Pi PICO for $4 as the microprocessor. It takes in the signals from the sensors and put the information on a small display that you can mount. And why not make the display touch screen so you can do things like swap units, reset memory values, or adjust the color or brightness?
The search for good sensors landed me on two that work very well for my purposes.
For pressure, I'm using a Dwyer Omega PX119a. While they have a few variants, I chose a simple 4-20ma current output for a 0-150psi pressure range (about perfect for oil pressure, don't you think?). It's fast , precise, reasonably compact and not too expensive. It also has a 1/8 NPT male interface that is very friendly for integration.
PX119 specs:

For Temperature, I went with a PT1000 RTD from Evo Sensors.
The RTD has good precision (better than a thermocouple) while having sufficient response time and ease of integration. Plus, the EVO product is stainless and has high temperature insulation and such-- it's suitable for under hood environment without special shielding and so forth.
The Raspberry Pi Pico (hereafter just "Pico") needs some intermediaries to work well with the sensors. In the case of the RTD, this is super easy because Adafruit offers a small daughterboard designed specifically to interface with RTDs. The Max 31865 is a great little board and reasonably priced.
The pressure sensor needed a bit more for integration because of the 4-20ma current output. I chose that for its resistance to noise and interference in the mobile application where a straight voltage output might struggle. So the current signal comes back to the main controller board where a shunt resistor network converts that to a voltage value the Pico can handle and understand. I settled on using a nominal 250 ohm shunt to turn the 4-20ma value into 1-5V, but do it inside the controller. Fairly standard practice with these things from what I gather.
However, the Pico can only handle up to 3.3V on the ADC input that will read the pressure. So had to add a voltage divider that would scale it to 3.3V max. I got pretty close to perfect by sorting a bunch of resistors to get the actual values needed.
Anyway, after a month of struggling with PCB layout, cooking a Pico and needing to order a replacement, and many hours of software debugging, I've got my working concept done with bench testing.
