fullymatted.
Back to search
Rennlist

Cheap oil temp guage

Add to repair workspace
Open repair workspace
Original source
120 captured repliesDiscussion pagination complete · Source accounts, not a confirmed diagnosis
THIS DISCUSSION / SOURCE-DERIVED OVERVIEW

Discussion summary

YOUR RESEARCHCheap oil temp guage

Leading reported evidence

Disconnect )

Performed · outcome unconfirmed

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context

Explicit resolution reports before identified causes, performed actions and suggestions. Within each level, matching component labels precede direct query mentions and inherited thread context; successful versus unsuccessful discussion counts, owner confirmations and independent discussion support determine order. This is not a probability of success.

Discussions that performed work without a confirmed outcome
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Performed · outcome unconfirmed

Read the oil temp using Durametric (with the gauge disconnected) then quickly connect the gauge and check Durametric reading again.

Cheap oil temp guage
Frequently discussed work

Adjust 10f up or down if need be

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

FWIW even though the set up with the 45k resistor will match nearly identical to the factory oil temp sensor , there is a calibration mode that I found while playing with the Digital Thermometer and can adjust 10F up or down if need be.

Cheap oil temp guage
Read full discussion summary

Leading evidence: 'Disconnect )' (no explicit attributable resolution; this is a reported action or suggestion). Across 1 matching discussions, The most frequently discussed action is 'Adjust 10f up or down if need be' (1 discussions). For that action, 0 discussions report a resolution and 0 report an unsuccessful attempt. No action has an explicit, attributable resolution report under the current rules. These are forum reports and suggestions, not a confirmed diagnosis.

Source reports, not a diagnosis or a success probability. Counts refer to discussions and can overlap.

Read captured replies

1 matching discussions · 120 captured posts examined · 0 partial discussions

Compare 4 other evidence results

Run small 3 wire (22ga) cable

Performed · outcome unconfirmed

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context

Explicit resolution reports before identified causes, performed actions and suggestions. Within each level, matching component labels precede direct query mentions and inherited thread context; successful versus unsuccessful discussion counts, owner confirmations and independent discussion support determine order. This is not a probability of success.

Discussions that performed work without a confirmed outcome
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Performed · outcome unconfirmed · Original poster

I ran a small 3 wire (22ga) cable to the DME and tapped on to a ground, a 12v switched power , and the oil temp wire (pin 73 on my DME 5.2.2).

Cheap oil temp guage

Use )

Performed · outcome unconfirmed

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context

Explicit resolution reports before identified causes, performed actions and suggestions. Within each level, matching component labels precede direct query mentions and inherited thread context; successful versus unsuccessful discussion counts, owner confirmations and independent discussion support determine order. This is not a probability of success.

Discussions that performed work without a confirmed outcome
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Performed · outcome unconfirmed · Original poster

Just to recap, you need the XH-B305F Digital Thermometer with a 45k ohm resistor install between the 2 sensor wires( cut off B3950 sensor , will not be used).

Cheap oil temp guage

Use arduino in my oil temp gauge thread

Performed · outcome unconfirmed

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context

Explicit resolution reports before identified causes, performed actions and suggestions. Within each level, matching component labels precede direct query mentions and inherited thread context; successful versus unsuccessful discussion counts, owner confirmations and independent discussion support determine order. This is not a probability of success.

Discussions that performed work without a confirmed outcome
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Performed · outcome unconfirmed

I used Arduino in my oil temp gauge thread.

Cheap oil temp guage

Use by the dme

Performed · outcome unconfirmed

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context

Explicit resolution reports before identified causes, performed actions and suggestions. Within each level, matching component labels precede direct query mentions and inherited thread context; successful versus unsuccessful discussion counts, owner confirmations and independent discussion support determine order. This is not a probability of success.

Discussions that performed work without a confirmed outcome
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Performed · outcome unconfirmed · Original poster

The oil temperature is only used by the DME to calculate Vario-cam.The vario-cam on the 3.4L is advanced at idle, then at 1200 rpm it is retarded by 12.5 degrees (25 crank), then at 5120 the intake cam is again advanced 12.5 degrees(25 crank).

Cheap oil temp guage
Frequently discussed actions (10)

These are separate views of the same evidence. Frequency alone does not establish a fix, and these counts must not be added together.

Adjust 10f up or down if need be

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

FWIW even though the set up with the 45k resistor will match nearly identical to the factory oil temp sensor , there is a calibration mode that I found while playing with the Digital Thermometer and can adjust 10F up or down if need be.

Cheap oil temp guage

Adjust curve

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

// coefficient can be tuned to adjust curve.

Cheap oil temp guage

Suggestion · Original poster

// coefficient can be tuned to adjust curve.

Cheap oil temp guage

Suggestion · Original poster

// coefficient can be tuned to adjust curve.

Cheap oil temp guage

Adjust seriesresister (math value)

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

On the bench testing , with a factory NTC oil temp sensor ( true measured at 15k ohm at 25C) and an actual 8k seriesresister( from your information on your thread) produced readings exactly as expected ( 25c at 15kohm and 100c at 1kohm) but on the car the readings were 9 degrees higher than Durametric, So I had to adjust the seriesresister (math value) to 10k to calibrate to match Durametric readings.

Cheap oil temp guage

Check durametric reading

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion

Read the oil temp using Durametric (with the gauge disconnected) then quickly connect the gauge and check Durametric reading again.

Cheap oil temp guage

Disconnect )

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that performed work without a confirmed outcome
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Performed · outcome unconfirmed

Read the oil temp using Durametric (with the gauge disconnected) then quickly connect the gauge and check Durametric reading again.

Cheap oil temp guage

Disconnect gauge had no effect in the voltage

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

.I did do a test with a DVOM connected to the DME signal wire, With the key on cold engine the DVOM was reading 2.5xx volts, then connecting and disconnecting the gauge had no effect in the voltage, so I assume it has no effect on the DME since this is exactly what the DME sees.

Cheap oil temp guage

Repair manuals are

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

Porsche repair manuals are, for numerous reasons ,by far the most challenging of the car manufactures.

Cheap oil temp guage

Replace (because the current

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

but can change voltage per temperature, as is not effected by current change(because the current change is always lower ie more resistance)

Cheap oil temp guage

Replace big arduino board

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion

And once you've tested it, you can replace the big Arduino board with something very samell like the nano (like a USB drive size).

Cheap oil temp guage

Replace cd holder

No successful repair reported for this finding.

0
Reported fixes
0
Unsuccessful attempts
1
Discussions
Read evidence and context
Discussions that contain suggestions
1

0 original-poster resolution reports. Counts can overlap; they are not unique people or a success rate.

0 discussions have direct query context; 0 report a fix in that context. Other evidence may inherit the discussion’s subject.

Suggestion · Original poster

Will use a single DIN blank faceplate to replace the CD holder , then cut the single DIN 76x40mm rectangle for the display.

Cheap oil temp guage
Coverage and how to read this overview

Counts describe captured discussions, not unique people or a diagnosis. Author identities are not reliably stored. Exact duplicate evidence is counted once across matching discussions; one discussion counts at most once per action/state. Multiple repairs reported together remain a combination. Suggestions and failed attempts do not establish a fix. Matches cover whole discussions and can include related faults, model variants and incomplete threads.

120 eligible posts · 0 unverified posts · 1 discussions match the subject in their title or opening post.

  • Rennlist: 1 discussions

0 evidence records excluded for query context · 0 excluded by outcome qualification · 0 adjusted by outcome qualification.

1 acknowledgements have no verified action link; they do not establish a repair result.

Outcome without a verified action link

The 45k resistor that is on the other circuit merely causes a little more current to flow through the 8k internal resistor.(with no change in voltage)

No unique explicit quoted action; no causal link assigned

Generation: 20261026T222516Z · outcome-qualification-6. Deterministic extraction; no AI model inference. How we use sources

POST 1 / ORIGINAL POSTEROriginal post

I have been wanting an inexpensive but accurate digital oil temp gauge that reads the same temp from the factory oil temp/level sender that the DME see's for quite some time.Seeing Ahsai's thread (and thankx to Ahsai for logging and graphing the temp voltage) on his oil temp gauge got me to thinking, but I don't have his electronic skillz to build a circuit board to convert the signal from voltage to degrees. So I got to thinking of how hard would it be for me mentally do the conversion. To my surprise, it is not hard at all. I started off with just one converted value 1.0v=160F Then looking at the curved converted graph I realized that in the range from 160F to 220F there was correlation of about 10F to each 0.10v or 1F for each 0.01v. I have a quick reference card that has 5 values/temps on it, that I keep close the the digital display, and a full conversion value/temp chart on my phone that I can pull up quick that has all values from 2.5v= 96F to 0.10v=290F The digital voltage display is just a small voltmeter that is highly accurate to 0.0001v and uses 4 wires, 2 grounds and 1 12v power and 1 signalv. I ran a small 3 wire (22ga) cable to the DME and tapped on to a ground, a 12v switched power , and the oil temp wire (pin 73 on my DME 5.2.2). On my 99 Coupe I install the display next to the radio in an unused button hole, and on my 99 Cab I mounted the display in the panel at the bottom of the console. This is now one of my favorite gauges, right up there with the Tach and oil pressure. By the way in the pics below the car was just stated and the oil temp is 96F(2.5v) on both cars, they will cruise at about 1.0xxxv - 0.9xxxv warm 160F-170F

POST 2Original post

Nice! Have always wanted an oil temp gauge, well done

POST 3 / ORIGINAL POSTEROriginal post

Yea it would be ideal if it had a plug and play conversion from digital volts to actual temp, but I'm not skilled enough to make a converter box for it. Here is a copy of my cheat sheet reference data.It may be a couple degrees off at some points because I rounded it off to nearest value. But I have driven it long enough that I have most of it memorized.

POST 5 / ORIGINAL POSTEROriginal post

Quotes source post: 14646494

The only volt meter I could find that met my requirement for size, resolution (0.01mv), supply voltage, and mounting, was an this E-Bay (China) one. Main drawback is it takes a long time to arrive. https://www.ebay.com/itm/Red-LED-5-D...72.m2749.l2649 All that's required for mounting is a rectangle hole and it clips in. Accuracy is way more than necessary, I actually would not mind having one with a little less resolution to keep the numbers from constantly moving so fast in the lower digits.

POST 6Original post

Nice job! So what temp does 2.5174v equal? (your cheat sheet doesn't show up...)

POST 7 / ORIGINAL POSTEROriginal post

Quotes source post: 14647186

2.5xxxv = 96F The engine had only been running a short time. Cold starts at 3.5xxxv and fully warmed up is 0.9xxxv I wonder why my cheat sheet is not pulling up. It pulls up on my side, it is a. txt file?

POST 8Original post

You cheat sheet is a text file, I was able to open it in notepad: 0-300 .1-280 .15-270 .20-260 .25-250 .30-240 .35-230 .40-220 .45-215 .50-210 .55-205 .60-200 .65-195 .70-190 .75-185 .80-180 .85-175 .90-170 .95-165 1.00-160 1.10-155 1.20-150 1.30-145 1.40-140 1.50-135 1.60-132 1.70-128 1.80-125 1.90-120 2.00-115 2.10-112 2.20-108 2.30-104 2.40-100 2.50-96

POST 9Original post

How did you connect the voltmeter? Did you connect into existing wires or did you connect all the way back at the oil temp sender?

POST 10 / ORIGINAL POSTEROriginal post

Quotes source post: 14647365

I used a small cable with 3 22ga wires to the DME, then used Posi-Tap connectors to tap on to pin6(ground) pin 54 (12v switched) and pin 73 (oil temp sensor) about 4 inches from the DME. this is on DME 5.2.2(1999).... DME 7.2 (1999 c4 and 2000-2001 e-gas) DME 7.8 (2002-2004)will be different pins.Refer to appropriate wiring diagram.

POST 11Original post

Quotes source post: 14647475

Where did you find the wiring diagram? I want to do the same thing but with oil pressure

POST 12Original post

It would be really simple to use a small arduino mini or equivalent and use a look up table or transfer function to convert this to temperature, also to add a button to swap from F to C https://store.arduino.cc/arduino-micro

POST 13 / ORIGINAL POSTEROriginal post

Quotes source post: 14647676

Here is an online workshop manual , it has the diagrams in it. http://workshop-manuals.com/porsche/

POST 14 / ORIGINAL POSTEROriginal post

Quotes source post: 14647711

Simple?? lol ..ok...I got no idea where to start. I am basic electronic wise such as volts.ohms. resistance,diodes, resisters, transistors, ect,but when you ties a bunch on them together and then put a chip in, I'm lost. If you could come up with a step by step SIMPLE instructions for a plug and play conversion box to put inline for this to display the temp, and take the place of the cheat sheet, it would be great !!

POST 15Original post

Cool setup. I like how it integrates into the bat wing. You are not too far from the last step of using Arduino to implement that voltage to temp conversion. I used Arduino in my oil temp gauge thread. This link shows you how to use Arduino to make a voltmeter. http://www.instructables.com/id/Ardu...Voltage-Meter/ All you need to change is one line of code (the third last line) where voltage is computed. Instead of displaying voltage, you convert it to temp and display the temp instead. And once you've tested it, you can replace the big Arduino board with something very samell like the nano (like a USB drive size).

POST 16 / ORIGINAL POSTEROriginal post

Quotes source post: 14648077

That almost looks doable for me. Hardware wise and only 6 wires..But I have NEVER written any code. I'm sure I could screw that up and get lost, with a wrong word or symbol somewhere. I've done a lot of programming with PIWIS and got way into the TunerPro software for EECIV (TurboCoupe) as far as changing injector flow tables , timing tables, MAF tables, even converting from VAF to MAF, and modified about everything there is to modify on an EECIV computer ,but I have never written a single line of code. I may give this Arduino a go, and see if I can make it happen.

POST 17Original post

Quotes source post: 14647916

I can't find the diagram for a 1999 996 C2. Happy to help with Arduino, just buy it and you will figure it out.

POST 18 / ORIGINAL POSTEROriginal post

Quotes source post: 14648414

It has the DME pinout diagram in there. What diagram do you need? oil pressure? Thanks for the offer to help on the Arduino, I'm sure I will need it !! lol

POST 20Original post

Quotes source post: 14648409

Programming arduino is the easiest thing in the unvierse. If you care capable of connect wires then this wont be a problem. There is a lot of fun stuff you can do if you are creative.

POST 21Original post

Quotes source post: 14647961

Even though I'm well versed I am simply slammed with family and home project stuff right now....alas...very little free time

POST 22 / ORIGINAL POSTEROriginal post

Quotes source post: 14650143

Thats ok... I just read a tutorial on writing computer code. Mainly on the most basic HTML computer code. I think I will give it a try. See if this old dog can learn a new trick !!! lol

POST 23Original post

If you want to learn the basics of Arduino programming, this is a great site (an example) to start with. Almost self-explanatory... https://www.arduino.cc/en/Tutorial/Blink

POST 24 / ORIGINAL POSTEROriginal post

Quotes source post: 14650603

Thankx Ahsai !! You are way more computer savvy than I am. I have watched the video's on the Arduino and read a tutorial on writing HTML computer code. One thing is for sure, my hat's off to anyone who can write computer code. I have memorized a large portion of my cheat sheet and know what my oil temp is at any given time. I have a feeling it is gonna take me a while to master writing a simple computer code. lol

POST 25Original post

On my 99 c2, the dme pin assignment for oil temperature is pin 73, not 74, according to the Bentley manual..

POST 26 / ORIGINAL POSTEROriginal post

Quotes source post: 14714169

Yes you are correct, it is a typo. I have corrected it, thanks for pointing it out !!

POST 27Original post

Quotes source post: 14714782

I'm a software engineer. I've been wanting an excuse to play with Arduino. This may be it. If you're not too far along yet or haven't started, maybe I can help. I write code for a living, just haven't played with Arduino yet.

POST 28 / ORIGINAL POSTEROriginal post

Quotes source post: 14715726

I haven't started with the Arduino yet. While researching for a suitable end game enclosure to house the Arduino and digital display ( I could not find one yet), I stumbled across a digital temp thermometer that may be suitable for our use. The digital temp thermometer is calibrated and uses a B3950 10k ohm NTC sensor, and has an internal resister of 10k as a voltage divider. The factory uses a 8k ohm internal resister as a voltage divider (inside the DME)so with a 45k ohm installed in parallel it will be near the 8k of the factory voltage divide(10k and 45k in parallel is about 8.1k) . Preliminary tests look good with the temp display being about 2 degrees lower than actual at 50-60F and spot on at 120F-160F, I am expecting it to posibly be about 2 degrees high in the upper temps but I could not get an accurate reading with my Fluke infrared at high temps. The steam from the hot water and stainless steel pot were causing really crazy readings from the infrared/laser thermometer.I have to find a more suitable way to test the high temp accuracy, but if within a couple degrees I think it will be acceptable. One caveat of this particular digital temp display is the the temp range will be limited to around 30F to 257F, above 257F it has a high temp warning and just reads HHHH, which for me is not a problem as I have decided that 260F is my absolute shut it down temp and cool it off, call it a day, then do some more oil cooling mods.But some people are more willing to run higher temps up to and over 300F. The oil can take it for a period of time, but on my DD that sees some track time 230-240F is my real comfort zone. The Arduno with the proper code and a nice enclosure would be the best way to go. If I can find a proper enclosure that doesn't require a custom fabricated/hand made enclosure that would make a easy assembly DIY plug and play with only using a cable and the 3 wire hook-up to DME is the end game.I'm retired with a dissablilty and do no heavy work, just taking my time and piddling for therapy and enjoyment.

POST 29Original post

Can you tell us what thermometer you have found?

POST 30Original post

Quotes source post: 14651226

After trying to dig through that manual to find the DME pinout for my car, one thing's for sure: my hat's off to anyone who is a Porsche tech

POST 31 / ORIGINAL POSTEROriginal post

Quotes source post: 14716506

The only one I found that comes close is this XH-B305F on E-bay. It is a USA seller but I'm sure it comes from Asia. Finding one that displays in Fahrenheit in stead of Celsius or Farhenheit/Celsius is very difficult, since most areas of the world use Celsius. And not many of these type things are made in USA. If anyone finds one with like specs/function, but with a nicer/aluminum/carbon-fiber housing, or a nice housing to fit the Adrunio and display, let me know. https://www.ebay.com/itm/Thermometer...72.m2749.l2649

POST 32Original post

What might make more sense than a gauge is something like this: https://www.adafruit.com/product/879 but not sure how you could mount it in a car and not look ghetto.

POST 33 / ORIGINAL POSTEROriginal post

Quotes source post: 14716976

Yes, that is the same problem with the Ardunio, it uses a display like this, and I haven't found a suitable housing that would not have to be custom made to fit. It needs to have a factory like housing that would not have to be hand made/

POST 34 / ORIGINAL POSTEROriginal post

Quotes source post: 14716939

Porsche repair manuals are, for numerous reasons ,by far the most challenging of the car manufactures. I spent 20 years as a Ford Master Technician, 10 years as a Mitsubishi Master Technician, and 14 years as a Porsche Gold Meister Technician, before retiring. I can honestly say Porsche manuals are by far hardest to follow .

POST 35 / ORIGINAL POSTEROriginal post

Well I am very satisfied with this XH-B305F Digital temp display, it is spot on all the way up to the 260F limit. I used some Canoloa Oil in a frying pan on a hot plate, and put an actual factory Porsche oil temp sensor in it while monitoring with the Fluke Infrared/Laser thermometer. It was 2 degrees off (low) at 50F but by 100F was spot on, and all the way to 257F was spot on, then the alarm sound and display was flashing but kept reading unil it reached 260F, then was flashing HHHH.Once the temp cooled back to 260F it started reading again but still flashing and alarming, then cooled below 257F it stopped flashing and alarming. This display is a bit bigger than the DVM I had previously used so it will not fit in the batwing or in the switch holes beside the radio. I have a factory CD holder and Cubby, so the CD holder (I never use anyway) will have to go. Will use a single DIN blank faceplate to replace the CD holder , then cut the single DIN 76x40mm rectangle for the display. Will be any easy DIY and look factory-like. Just to recap, you need the XH-B305F Digital Thermometer with a 45k ohm resistor install between the 2 sensor wires( cut off B3950 sensor , will not be used). Then the top sensor wire will tap to pin 73 in DME, the bottom sensor wire will connect to the black ground wire and then both will tap to pin 6 (ground) on the DME, and the red power wire will tap to pin 54 (12v switched) in DME.(note: these pin locations are for a 99 with DME 5.2.2 only) The whole thing will cost about 15 bucks and take about 1.5 hours to install. https://www.ebay.com/itm/Thermometer...72.m2749.l2649 FWIW even though the set up with the 45k resistor will match nearly identical to the factory oil temp sensor , there is a calibration mode that I found while playing with the Digital Thermometer and can adjust 10F up or down if need be. I would suggest installing then road test with Durametric or PIWIS tester to monitor oil temp and calibrate display if there is any deviation. The two buttons on the back are to set the high and low alarm setting and the calibration, but I think it is not necessary as the high temp default is 257F and the accuracy is very acceptable and good to go. https://www.ebay.com/itm/100-x-45k3-45-3K-Ohm-1-0-6W-0207-Metal-Metal-Film-Resistor/271976444671?hash=item3f530f32ff:g:ICoAAOSwcu5URoGeh

POST 36Original post

Auber instruments. Programmable gauge is $50 and the transducer is lab grade with a range greater than what is needed here - already calibrated. I am installing the transducer in the bank 2 cam cover (opposite the oil pressure gauge). Plan is to use the gauge to trip the rad fans at a set temp. I think the gauge will fit in the bat wing between the seat heater switches. Waiting to get it laser cut.

POST 37 / ORIGINAL POSTEROriginal post

Quotes source post: 14719076

That will work well to turn on fans, but the location is not ideal for oil temp measurement. I believe the factory oil temp sensor is in the best location to measure the hottest oil that is coming off the crank, rod bearings and pistons. I love that little Display though, great quality and it is smaller than the XH-B305F , Its the size of that first DVM that I installed and will fit in the batwing, or in the blank button area. It looks like it may be compatible with the factory NTC sensor with an appropriate resistor. !! Good Find !! I think I will research this Display and see if it can be made to work with the Factory NTC. edit: I researched that Digital Display and it is not compatible with the factory NTC sensor. It is designed to work the VDO NTC sensor or with numerous thermocouplers or transducers, but the VDO NTC sensor resistence at 25C (77F) is 900 ohms and the Porsche factory NTC temp sensor is 16k ohms at 25C (77F).Cannot be made compatible , even with parallel resistors, unless used with the Ardunio like what Ahsia has done?

POST 38Original post

Another option, more expensive is P3 Gauges. I talked to those guys and they said their gauge would plug into the existing wires. IIRC, it was calibrated per the Durametric-type data, I believe. I agree, cam cover, especially Bank 1, is not a good indicator for temp. But I went this way for the alarm/output for the fans. From what I gather, unless you have a transducer in Bank 2 oil, all measurements are lower estimates of max temp anyway.

POST 39Original post

Interesting Ptech3. Based on your description, you are merging the two active circuits together between the DME and the digital meter. e.g., does the DME also see the internal resistance (divider) of the digital meter and the 45k resistor? I'm just trying to understand how it works.

POST 40 / ORIGINAL POSTEROriginal post

Quotes source post: 14720196

Ahsai, I had that same question that needed to be answered. Both circuits have the same 5v regulated potential, both circuits are looking for a path to flow with least resistance, this least resistance being the path through the factory NTC sensor to ground, since the Digital meter has a higher resistance/impedance it does not impede with the performance of the DME circuit.

POST 41Original post

Quotes source post: 14720883

Thanks for confirming your circuits. Joining the two active circuits like that require detailed circuit analysis, then you can figure out what's going on on EACH component. What you said about the internal high impedance of a digital voltmeter (essentially what the digital gauge is) is not true in this case because I bet inside the gauge, there's an internal resistor just like the 8k resistor inside the DME that connects the sensor to +5v. By connecting the two circuits like that, the implication is the 45k resistor will be connected in parallel to the stock sensor. The internal resistor of the gauge will also be connected in parallel with the 8k DME resistor. That may mess up the Durametric reading because now all the resistors and thermistor have different values than expected. Also, the digital meter 5v supply may not be spot on, if it's just a little bit higher than the 5v reference of the DME, it will start pumping current into the DME...or vice versa. I definitely would not recommend bridging the two active circuits like that.

POST 42 / ORIGINAL POSTEROriginal post

Quotes source post: 14721028

I understand your concern and went down that same thought process to analyze the circuits. The Digital Meter does have an internal resister of 10k ohms like the DME has at 8k ohms. To explain my analysis of the circuits think of them in terms of water flow. You have 2 100ft garden hoses, you hook one to your house(5v potential) to the front spigot (DME) with a restricter washer (8k internal resistor) and run to your driveway. Then hook the other hose to the back of the house (5v potential) to the rear spigot (Digital meter) with a restrictor washer with a smaller hole (10k internal resistor) and then a small leak to the ground (45k resistor) and run to the driveway. At the driveway hook both hoses connect to a Y and to a garden sprayer ( factory NTC) spraying to ground. When the garden sprayer is spraying, both hoses are seeing the same pressure drop (voltage drop).No water is being pumped back into the house front spigot (DME). The flow and pressure(current and voltage) of the front spigot (DME) is not effected by the connection to the rear spigot (Digital meter).

POST 43Original post

You are assuming the DME reference and the digital meter reference are exactly 5.000v. Anyhow, that's not the most critical issue assuming the two references only differ a little. What you are doing is like halving the DME internal 8k resistor to 4.44k (8k parallel with 10k). The 45k parallel with the thermistor is not doing much at higher temp when the thermistor is only hundreds of ohms (45k parallel with something hundreds of ohm will not affect it much at all). The end result should be at the same temp, the voltage will now be higher than before because signal voltage = 5v x (R2/(R1+R2)), where R1 is the DME internal resistor and R2 is the thermistor resistance. R1 has been reduced from 8k to 4.44k. That also means the temp displayed by Durametric will not be correct because the DME internal resistor has been halved essentially. Back to your garden hose analogy, the two hoses definitely provide different pressure drop (lower drop) compared to a single hose. BTW, can you remove the 10k resistor on the digital meter? If you can, the DME internal 8k resistor won't be affected and you will be using only the high impedance part of the digital meter to read the signal voltage.

POST 44 / ORIGINAL POSTEROriginal post

Quotes source post: 14721267

You are forgetting the DME and the Digital meter both take their readings AFTER the internal resisters (8k and 10k). The internal resisters are connected to the 5v potential EACH, therefore are not connected in parallel? As for my water hose analogy, maybe it would be more correct to use a pressure regulating device that reduces pressure with higher temperature,regardless of flow volume, instead of a garden sprayer.

POST 45Original post

I'm not forgetting anything but I have failed to explain it clearly. You can do a very simple test. Read the oil temp using Durametric (with the gauge disconnected) then quickly connect the gauge and check Durametric reading again. It should read LOWER oil temp now.

POST 46 / ORIGINAL POSTEROriginal post

Quotes source post: 14721363

.I did do a test with a DVOM connected to the DME signal wire, With the key on cold engine the DVOM was reading 2.5xx volts, then connecting and disconnecting the gauge had no effect in the voltage, so I assume it has no effect on the DME since this is exactly what the DME sees. I will do it with Durametric just to confirm.

POST 47Original post

Quotes source post: 14721403

If the voltage is the same, Durametric will return the same reading so probably no need to recheck using Durametric. Um, I don't really understand the circuit then. Was the gauge powered when you did the above measurement? The reason I said the 8k is parallel with the 10k is because each is connected to a separate 5v power. The circuit will then be equivalent to both resistors connected together to a SINGLE 5v source so they are essentially in parallel. Is the circuit something like below?

POST 48 / ORIGINAL POSTEROriginal post

Quotes source post: 14721411

Yes, this is the basic layout of the circuit, with all the other electronics behind that..lol. What are you thinking? And yes the Gauge was powered on when checked.

POST 49Original post

I cannot explain it then. Based on the above, the voltage reading should be different with and without the gauge connected (higher when gauge is connected). The reason is very simple. V = IR, the voltage measured = (current thru R2) x R2 Without the gauge, there is only one current path, from the DME 5v thru the 8k resistor. With the gauge connected, there is an additional current path from the digital meter 5v feeding through the 10k resistor so the current through R2 will become HIGHER so the voltage measured should also be higher.

POST 50 / ORIGINAL POSTEROriginal post

Quotes source post: 14721460

I think the explanation is that the R2( Factory NTC) will allow more current to flow, without a change in voltage, but will change voltage as per temperature regardless of current.

POST 51Original post

Quotes source post: 14721483

The factory sensor is just an ntc type thermistor (basically temperature sensitive resistor) so it has to follow ohm's law V= I x R. For a given R, when the current increases, the voltage will also increase.

POST 52 / ORIGINAL POSTEROriginal post

Quotes source post: 14721502

Yes I agree with all above, but in this instance all 3 V I R are all moving targets. On your example : For a given R, when the current increases, the voltage will also increase. is true, but how do you increase the current? You can't if you have a fixed R and a regulated V. Edit: The current through R2 will not be HIGHER, it will be LOWER, adding resisters in any circuit whether parallel or in series will LOWER current and or voltage. From what I see in the circuit, we have a moving voltage , a moving current, and a moving resistance (with temperature) Go back and read my water hose analogy, but instead of useing a garden sprayer at the end of the hoses, use a pressure regulating devise that regulates pressure as per temperature, regardless of flow. I respect your computer/electronics savvy and want you to agree with me, I am beginning to doubt myself even though I have done tests and thought this out, my head is starting to spin thinking through moving scenarios. lol

POST 53Original post

Thanks for entertaining my thoughts. Keep in mind the stock oil temp sensor spec is a graph of temperature vs resistance so the sensor is just a passive resistor and it does not regulate voltage. It's strictly a passive component. *IF* the circuit is truly like the above, I guarantee the voltage measured will be different if the gauge is connected for a given temp (R2). Btw, even the 45k resistor will lower the sensor resistance because it's connected parallel to the sensor. So it should also affect the voltage measured.

POST 54 / ORIGINAL POSTEROriginal post

Quotes source post: 14721564

Well I guess we will have to disagree for now. I understand how a thermistor works. In this instance it does it does not regulate voltage . but can change voltage per temperature, as is not effected by current change(because the current change is always lower ie more resistance) The circuit is like above, I had edited by previous post and you may not have seen it, but adding resistors in parallel increases current, (but not through the NTC rather through the internal resistor and is not measured)) but in series reduces current/ The 45k resistor increases the total resistance the Digital meter sees (10k and 45k in parrellel=8.1k) plus NTC 16k at 25C.....but the meter takes it reading between the 10k and 45k resistors and it DOES affect its voltage reading on purpose to have a similar voltage drop as the meter expects a NTC resistance of 10k at 25C (B3950) but gets a resistance of 16k at 25C. The DME sees a total resistance of 8k plus 16k (NTC) at 25C but takes its reading between the 10k and 16k resistors. The 45k resistor that is on the other circuit merely causes a little more current to flow through the 8k internal resistor.(with no change in voltage)

POST 55 / ORIGINAL POSTEROriginal post

OKAY !!! I have figured out the reason I have been having a hard time explaing WHY my simple circuit works, and HOW it works. Think of it in terms of ELECTRON FLOW ( instead of CONVENTIONAL CURRENT which is incorrect) The electrons actually flow from negative to positive. So the electrons are flowing from the negative battery post through ground wiring to NTC then splits into two circuits, 1 going to DME and the other going to Digital Meter. The electrons travel up the wire to the DME. The DME is measuring a voltage drop here (Positive voltage)before the 8k internal resistor. Electrons pass through the 8k resistor and into the regulator which keeps voltage in this area at 5v by allowing more or less current to flow out and to the positive battery post. This is why the other circuit has no effect on the performance of this circuit. ON the Digital meter circuit electrons travel the same path through the NTC but split off and travel up the wire toward the Digital meter, along the way it picks up a few more negative electrons from the 45k resistor. The Digital meter is measuring the POSITIVE voltage drop as the negative electrons enter and go through the 10k internal resistor. electrons then flow out into the 5v regualtor that also (just like the one in the DME) keeps 5v by allowing more or less flow out to the positive battery post. The small amount of electrons that are coming through the 45k resistor cannot flow toward the DME because the main flow in that area is headed toward the Digital meter. Both circuits are designed so that they can handle full flow of current without damage. You can ground the sensor wire to ground causing full electron flow and full voltage drop to zero and the circuits will not be damaged, the regulator will just open up the flow more and still maintain 5v in the area after the internal resistor.

POST 56Original post

Given a network of interconnected resistors, regardless of complexity, all the current and voltage can be computed using just the ohm's law and Kirchhoff’s Current Law. If you go through the computations, you will know what I mean. A good test would be pick a few oil temp points, take some oil temp reading using Durametric, with and without the gauge connected. If connecting the gauge doesn't change the Durametric reading, then your setup is working (even though I can never explain why based on the circuit above).

POST 57 / ORIGINAL POSTEROriginal post

Quotes source post: 14722145

I redrew the diagram in a more complete loop and tried to do some calculations on amperage. Looks like the amperage is very low in the tenths of a milliamp. I'll try to do more calculations to prove it works and also more in car tests. Thanks for your input

POST 58 / ORIGINAL POSTEROriginal post

Well Ahsai, you were right !!! I took a test drive and the Temp meter effected my Digital in dash volt (temp) meter by 0.03v at 45F and up to 0.10v at 160F. That's is the reason I said I respected your computer/electronics savvy...lol.. I just kept making myself believe that would would work like my DVM........

POST 59Original post

Quotes source post: 14723119

Glad to hear you confirmed my suspicion. I expected even larger deviation but it's hard to say without knowing the gauge's internal resistance (usually those cheap gauges have relatively low internal resistance, which is bad for measurement). This is one of the challenges of tapping the signal and feed it to an external gauge. You could easily change the signal itself if the external gauge has low impedance. A regular digital multimeter is ok as it has 10MOhm resistance so it won't change the signal. Arduino is also ok because it has very high impedance on its analog input pins. If you can remove the 10k resistor in your gauge and the 45k resistor, the gauge may affect the signal less. You may be able to use the calibration function of the gauge to compensate for any temp reading difference (between Durametric and the gauge).

POST 60 / ORIGINAL POSTEROriginal post

Quotes source post: 14723152

AhsiaI I removed the internal 10k resistor from the DTM and the reading is no longer stable or accurate. I'm just gonna stick with my little indash DVM and cheet sheet. The DVM has a resistance of 0.35Mohms so it has no effect on the signal. While researching all types of Digital Temp gauges I found ALL have a high impedance, even higher than this cheap one, all that use the VDO sensor have a 900 ohm internal resister so they are even worse than the 10k that is in the cheap one.I think its safe to say there is not a Digital one anywhere, only choice would be to build one with the Arduino like what you did with your anologe gauge. Tomcat those P3 gauges are sweet but their calaloge doesn't show a universal one or one to fit Porsche except Cayenne. Did they have something other than what was listed? Aslo the ones that plug into OBDII do not show oil temp. on our cars the oil temp is only displayed through a Porsche specific protocol that only PIWIS , Durametric and ICARsoft uses as far as I know. You can get a whole array of guages on your phone with bluetooth and a Torque app. I have all mine on the phone and just mount the phone into the phone holder and have a full set of guages I can choose, except oil temperature..lol

POST 61Original post

[rant] Very annoying you can't get oil temp out of a generic OBDII unit and Torque! It's probably one of the most useful temps to know seeing that there is no gauge for it. Time to jump ship to a 997 and ditch the volt gauge!! I also like that the digital speed gauge is in the centre too like the MK1 why did it get moved to the left! [/rant]

POST 62 / ORIGINAL POSTEROriginal post

Quotes source post: 14725404

I agree wholeheartedly, oil temp is a MUST HAVE on a car if you are going to track it any at all. The only thing I like more on my 99 996 over a 997 is the throttle cable and no PSM nanny's lol

POST 63Original post

Quotes source post: 14725456

Indeed! Although I'm fly by wire but don't have PSM although no track time for me so I'm disadvantaged without it for street driving theoretically! Back to the gauge though Grrr I wish there was a factory one haha ​​​​​​

POST 64Original post

I think I talked to them over a year ago so the memory is a little fuzzy. Told them the application was for a 996 and he said the one they have (Cayenne) would work. You can actually tell them which physical gauge (any of the other vehicles listed) you wanted and they would make it work for you. I think I inquired about oil pressure also and their answer was no because they “couldn’t crack the code.” I hope my memory is not confusing coolant temp with oil temp.

POST 65 / ORIGINAL POSTEROriginal post

Quotes source post: 14725851

When they say they can't "crack the code", they are referring to the Porsche specific protocol that PIWIS , Durametric, and ICARsoft uses to get oil temp data (all data) through the OBDII port. The standard OBDII protocol is public information ordered by the Feds but unfortunately the Feds didn't order the oil temp data to be mandantory, SMDH

POST 66 / ORIGINAL POSTEROriginal post

Recap:The overall methods of procuring an oil temp gauge Aftermarket digital temp gauge or analoge temp gauge or mechanical temp gauge : Digital temp gauge can not be hooked to factory temp sender due to high impedance effecting signal ( from 900 ohm to 10k ohm) .Can be hooked to bank 1 head port opposite the bank 2 oil pressure sender, not the best location for temp measurement as this oil is after the oil cooler and before the oil has done any real work. Can be installed in oil sump, good location for temp measurement, but this is intrusive and would require drilling and taping of oil sump. Aftermarket Digital Volt Meter; Can be hooked to factory NTC temp sender if resistance is 0.35Mohm or higher so it will not effect sensor values. Requires a cheat sheet to convert to Temp Fahrenheit.Not an actual Temp Display. Best place for oil temp measurement of hot oil returning to sump after work. Custom build Digital Temp gauge: Can be hooked to factory NTC temp sensor using Ardunio low impedance processor. Requires electronic and programming skillz and fabrication of custom enclosure/housing for mounting. Best location for temp measurement at factory location. Not a DIY for a lot of people. Conclusion is there is no ideal way to get easy install and best temp reading for oil temp. It would be nice if a Tuner/programmer could reprogram the OBDII portion of the DME to output the oil temp data on the PID of the OBDII data stream. Then it could be displayed out by Bluetooth on Torque App, or could be plug and play to the OBDII port for many OBDII gauges available.Of course this will never happen. .

POST 67Original post

Yup,I pretty much concluded the same a few yrs back and nothing has changed.

POST 68 / ORIGINAL POSTEROriginal post

OK I started to give up and just stick with my indash DVM and cheat sheet, but found a little renewed drive and went ahead and ordered a Adrunio Nano v3.0..lol I also searched and found a 4 digit 7 segment display with 4 74HC595 shift registers and Enclosure,with the single DIN blank panel should look good. We will see how it goes. Ahsia I may need you to write that code since you are familliar, I think I can load it..lol

POST 69Original post

Sooo, with all of the discussion I'm somewhat confused. Does tapping into the dme feed using your original dvm change the output? I'm interested in the simplest solution that gives me an accurate result, and I don't mind the mental gymnastics required to use the cheat sheet. The arduino mod sounds interesting but I prefer to keep the interior as close to stock as I can.

POST 70Original post

Quotes source post: 14729966

Tapping the signal does not change the signal a bit provided you do it right, meaning whatever you connect to it needs to have a very high internal impedance. E.g., a good quality multimeter or aurduino. You may get away with you simple digital voltmeter table look up setup. The ultimate test is to see if the connection makes the Durametric reading change. If it does not, you are successful. Yea, I love keeping the stock look hence the VDO analog oil temp gauge with aurduino.

POST 71 / ORIGINAL POSTEROriginal post

Quotes source post: 14729966

The little DVM that I used in my first project has an impedance of 0.35Mohm the effect and accuracy will be 2% at 100F(102F)1.1% at 130F(131.4F) .6% at 160F(160.9F) .3% at 212 (212.6F) It gets better with higher temp, I have measured the factory NTC up to 400F. The oil temperature is only used by the DME to calculate Vario-cam.The vario-cam on the 3.4L is advanced at idle, then at 1200 rpm it is retarded by 12.5 degrees (25 crank), then at 5120 the intake cam is again advanced 12.5 degrees(25 crank). If the oil temp exceeds 265F the 1200 rpm switch point moves to 1480 rpm. All other calculations of the engine such as fuel, ignition timing, fans,ect use the coolant temperature. I have read that the Arduino anolog input has an impedance of 1Mohm. If this is true the effect and accuracy will be .8% at 100F(100.8F) .4% at 130F(130.5F) .2% at 160F(160.3F) and .1% at 212F(212.2F) . It also gets better with higher temp and the Arduino is 3 times more accurate than the DVM.(0.35Mohm vs 1Mohm) Either one will be plenty accurate enough in my opinion. The DVM requires like you said, "some mental gymnastics" (ie cheet sheet) ...the Arduino will be real temp display, and can be calibrated/programmed to be even more accurate if lab grade data is used, but I think anything within a couple degrees is good enough.

POST 72Original post

Many thanks to you both for excellent explanations! I'll go with the simple dvm (with a period of monitoring with my durametric) since I consider oil temperature a must have. The Arduino setup will be a nice improvement down the road, so to speak.

POST 73 / ORIGINAL POSTEROriginal post

Well I got the "cheap temp gauge" using Arduino Nano micro-processor and seven segment four digit LED display with 4 74hc595 shift registers working. I must say it is a nice, neat, and powerful little package. Has enclosure that will fit nice and blend well with dash in a blank single Din face-plate. The accuracy should be dead nuts on. I used the Steinhart-Hart equation because I think it is what Porsche would have used to calculate their math, because it is more accurate than the Beta value , Defence R/T, or R/T equations. Then I used the Steinhart-Hart and the B- Curve Coeffecient in the program to do the math and should be the same math that Porsche uses as some of the values are carried out to 15 digits past the decimal. With using the same NTC sensor and same reference voltage, and this fancy math it should be dead nuts on what the DME is outputting to PIWIS/Durametric. The Sketch program I wrote is 37% of the capacity of the storage of the Adruino Nano micro-processor and took me about 100 hours, but of course most of that was just a learning curve because I'm not well versed in writing computer code.But I did manage to write in a start-up program that starts with Por-....SCHE.....tempF, that's pretty cool. lol I got a video of it starting up and displaying temp of a hot cup of coffee and a cup of ice water, with the lap top serial monitor I can also display on the serial monitor the Temp, rawInput, NTC resistance. But the video is an mp4 and haven't figured out how to post it to the forum. I should have it finished and installed and real life road tested compared to PIWIS/Durametric value sometime next week, stay tuned.

POST 74Original post

Quotes source post: 14759585

​​​​​​Its awesome how far you've taken this! Great work. ​​ I think most people either upload an unlisted video to YouTube or host the video in Dropbox etc. If you could incorporate this into an obd ii plug with a screen I'd buy one! Would have to be in Celsius though, hopefully not another 100 hours to recode it! :-p

POST 75Original post

I'm impressed! Can't wait to see the final product.

POST 76 / ORIGINAL POSTEROriginal post

Quotes source post: 14759785

Thanks !! And thanks for the tip on loading to You Tube. Celsius is no problem as the programs math is done in Kelvin, then converted to Celsius by subtracting 273.15, then Celsius is converted to Fahrenheit by (C*9)/5+32, so by deleting that last line would show TempC. Getting oil temp from OBDII port on a 996 would require "cracking the Porsche Protocol" which is "top secret".Only a few people outside of Porsche has the protocol code, I'm not sure it has ever been "hacked" , they may have known someone who worked on the programming and accidentally let it slip, or maybe they hacked it, but I sure can't.

POST 77 / ORIGINAL POSTEROriginal post

Quotes source post: 14759865

Thanks Ahsai ! That means a lot to me coming from you, because I know you are not easily impressed

POST 78Original post

Quotes source post: 14759981

I admire your willingness to learn new things and going through the pain to get the oil temp. It's a fun and rewarding project.

POST 79Original post

Quotes source post: 14759978

Brilliant! If only collectively we could crack the code or Porsche let us have it anyway again you've done so well to get it this far!

POST 80 / ORIGINAL POSTEROriginal post

Quotes source post: 14761477

Thanks, I think Porsche would probably let us have access to the diagnostic protocol for a small (not so small) fee. Cracking the code would be next to impossible. Only one person I know of that could have cracked it named Floyd Wilks, he had a program called DMEeditor that he used to sell that you could DIY tune your DME 5.2.2 and earlier DME's, and is know as a Guru on 944 chip tunes ,I went to buy one and the website would no longer work, then the web site came up for sale and I bought it, the web sight worked but couldn't get the program activation code and could not get in touch with Floyd Wilks, seems he has fell of the face of the earth.

POST 81Original post

Any progress on this project? I live relatively close and would like to check it out sometime. Also, are you going to be at the Natchez, MS gathering in April this year?

POST 82 / ORIGINAL POSTEROriginal post

Quotes source post: 14802327

Yes I have been working on this and near completion. Have been doing a little tweeking of the software, mainly the start -up program where it displays Por-...SCHE...tempF. I will install it in the next couple days and do a full write up on parts links and diagrams for DIY'ers, and will program the Arduino for anyone doing it themselves ( no charge). Just buy the Adruino Nano and send it to me and I'll load the program. I'd like to keep the program and not send it out because I have so much work invested in it , over 150 hours! Yea, I know I'm a slow learner, but you CAN teach an old dog new tricks !!..lol I didn't know about the gathering in Natchez? What y'all got going on ? I probably won't be able to make it because I have lots to do in April. I'm going to a local Hooligan Track Day at Little Talladega Grand Prix and have 3 Porsche's to prepare, one for me and one for each of my two sons. And our local Porsche Club has a DE the end of April (28th-29th)at Barber Motorsports Park. You should come to Barber, registration is open and it's free to spectate and hang-out !!

POST 83Original post

This. Enjoy Barber! I hear it's too much fun e The Magnolia Region of the PCA has been invited to participate in the Eurofest car show in Natchez on April 7th. Mike Marsh, the director of the show, has requested a Corral for the PCA with Porsches not in the main show. He has proposed an award for best car in the Corral. The cars in the Corral must be in place prior to 9am and remain there until 5pm. This is due to the insurance and the event being a “no wheels turning, static display event”. Also there will be a new class for the show inviting 6cyl Turbos, Gt2s, Gt3 and Gt4 type Porsches. If we can get a commitment from members to participate in the Corral and show, he is considering Porsche as the featured Marque of the event. Please respond by March 5th in order to get a head count and see if all of this will work. Thank You, Tony Santangelo President, Magnolia Region PCA

POST 84 / ORIGINAL POSTEROriginal post

OK I have finished the Oil Temp Digital Display and tested it against Durametric. It is spot on !.Here is a couple of installation pics, and a short video . I will add links to some parts needed as a suggestion of what to get, and a wiring schematic.You'l need to cut the hole in the blank faceplate and imprvise a way to mount the Arduino to the back of the display, I used some #4 x .750 sheet metal screws and nylon washers from Lowes, and used some nylon tubing for standoffs. Parts list 1 Arduino Nano ( with soldered headers unless you like to solder) 1 single din blank faceplate 1 Digital Display 8 female to female 10cm Dupont color coded jumper cables 15 feel of cable 22ga 3 conductor (stranded) 1 Posi-tap EX-150B 14-16 X 18-24 (or equivalent) 2 Posi-tap EX-110M 20-22 X 18-24 (or equivalent) 3 Posi-lok PL-1824 18-24 (or equivalant) 4 #4 X .750 sheet metal screws ( .112 diameter)( Lowes) 4 nylon washers .125 ID 4 nylon standoffs .125 ID X 14mm L http://www.bimmerworld.com/BMW-Inter...4aAtzUEALw_wcB https://www.ebay.com/itm/Panel-LED-Segment-Displays-Module-74HC595-4-bit-Red-Digital-Tube-for-Avr-Arduino/182040896696?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m1438.l2649 https://www.ebay.com/itm/5X-40pcs-10cm-Female-To-Female-Dupont-Wire-Jumper-Cable-for-Arduino-Breadboard/232361552009?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m1438.l2649 https://www.ebay.com/itm/MINI-USB-Nano-V3-0-ATmega328P-CH340G-5V-16M-Micro-controller-board-Arduino/222543127037?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m1438.l2649

POST 85 / ORIGINAL POSTEROriginal post

Well here are the pics and short video and wiring, it must have been too much for one post. Can put a filter on it if its too bright, window tint You Tube

POST 86 / ORIGINAL POSTEROriginal post

[Image-only post; no author-written text. Original image references:] https://cimg7.ibsrv.net/gimg/rennlist.com-vbulletin/1191x507/oil_temp_wiring_3_c43525bc3d678e7ef33f61c18ce0a3ee03615b4e.png

POST 87Original post

Excellent work! Ordering the arduino now, and will send it to you for programming. Please let me know what you want to do this. Thanks

POST 88 / ORIGINAL POSTEROriginal post

Quotes source post: 14810117

Thank you !! I'll PM you my address and Paypal info, just send me the cost of return shipping, and I'll program it for you and ship it back.

POST 89Original post

Very nice and happy to see how accurate it is. Also good tips on the plastic face plate. It looks stock.

POST 90 / ORIGINAL POSTEROriginal post

Quotes source post: 14810648

Thanks Ahsai, yes it looks pretty stock, unless of course you know that 996's don't come with oil temp gauges..lol

POST 92 / ORIGINAL POSTEROriginal post

I have discovered that there are two different displays available that look identical, but are different versions and have different logic. If you are sending me your Arduino to program, I need to know the version display you have, so wait until you receive it to send the Arduino for programming. For those who have already sent me their Arduino, I will wait to hear from you on the version you have. Attached is a Pic of one of the versions. I have 4 different programs for the Arduino, one for each of the display versions in Celsius and Fahrenheit ..

POST 93 / ORIGINAL POSTEROriginal post

s A couple of pics of the display with the Arduino Nano mount on the back. Can be reprogrammed using the Mini USB port on the end.

POST 94 / ORIGINAL POSTEROriginal post

I have decided to go ahead and publish the skectches to program the Adruino for oil temp display. Since the Arduino software is an open source I felt is was only fair to make the program open source to help encourage others to use this as I think more people would be encouraged to take advantage of this and even develop it further.You can download the Arduino IDE for free and learn to use it fairly simple.The seriesresister, nominalresistance, and Bcoffecient values can be adjusted to calibrate the output up or down and to change the curve. PorSCHE_3.1F // This sketch takes a reading from the factory Porsche 996 M96 NTC oil temperature sensor and does some fancy math // using the Steinhart-Hart equation and B coefficient curve ,produces a temperature output with curve, for a seven segment LED sisplay // that has four 74HC595 shift registers on it, only uses 3 wires to hook up. 12v switched, ground, and signal. // further plans to write code for P_O_R_S_C_H_E_ to scroll on start. and to control high and low fans. // coefficient can be tuned to adjust curve. // For display with version4.0 // designed and written by Charles "Skip" Brazeel byte NTCPin = A0; #define SERIESRESISTOR 10000 // internal resistor of DME (>=< 4-6 deg per 1k ohm tune@ 25c-100c) #define NOMINAL_RESISTANCE 15000 // NTC @ 25c (>1k=> 3deg@25c) (>1k=>4deg @ 100c) #define NOMINAL_TEMPERATURE 25 // temp ntc rated #define BCOEFFICIENT 4100 // B curve (>100=0 @ 25c)( >100=< 4deg @ 100c)( <100=>4 deg @ 100c) #define leter F // indicate degrees in fahrenheit int latchPin = 13; int clockPin = 12; int dataPin = 11; //aaaaaa //f b //fggggb //e c //eddddc p // abcdefgp ~abcdefgp DEC ~DEC //1 00001100 11110011 12 243 //2 11011010 00100101 218 101 //3 11110010 00001101 242 13 //4 01100110 10011001 102 153 //5 10110110 01001001 182 73 //6 10111110 01000001 190 65 //7 11100000 00011111 224 31 //8 11111110 00000001 254 1 //9 11110110 00001001 246 9 //0 11111101 00000010 253 2 //A 11101110 00010001 238 17 //b 00111110 11000001 62 193 //c 00011010 11100101 26 229 //C 10011100 01100011 156 99 //d 01111010 10000101 122 133 //e 11011110 00100001 222 33 //E 10011110 01100001 158 97 //F 10001110 01110001 142 113 //g 11110110 00001001 246 9 //H 01101110 10010001 110 145 //h 00101110 11010001 46 209 //I 01100000 10011111 96 159 //J 01111000 10000111 120 135 //L 00011100 11100011 28 227 //n 00101010 11010101 42 213 //o 00111010 11000101 58 197 //P 11001110 00110001 206 49 //q 11100110 00011001 230 25 //r 00001010 11110101 10 245 //S 10110110 01001001 182 73 //t 00011110 11100001 30 225 //u 00111000 11000111 56 199 //U 01111100 10000011 124 131 //y 01110110 10001001 118 137 //- 00000010 11111101 2 253 //- 10000000 01111111 128 127 //- 00010000 11101111 16 239 //. 00000001 11111110 1 254 // 01101100 10010011 108 147 //= 10010000 01101111 144 111 //= 10000010 01111101 130 125 //= 00010010 11101101 18 237 //=- 10010010 01101101 146 109 //note that for common cathode displays the //bit values are inverted (see code) const int COMMON_ANODE = 1 ; //1 CA, 0 CC struct CharMap { char c; byte v; }; const int cmap_len = 41; struct CharMap cmap[] = { {' ', 0}, {'1', 12}, {'2', 218}, {'3', 242}, {'4', 102}, {'5', 182}, {'6', 190}, {'7', 224}, {'8', 254}, {'9', 246}, {'0', 253}, {'A', 238}, {'b', 62}, {'c', 26}, {'C', 156}, {'d', 122}, {'e', 222}, {'E', 158}, {'F', 142}, {'g', 246}, {'H', 110}, {'h', 46}, {'I', 96}, {'J', 120}, {'L', 28}, {'n', 42}, {'o', 58}, {'P', 206}, {'q', 230}, {'r', 10}, {'S', 182}, {'t', 30}, {'u', 56}, {'U', 124}, {'y', 118}, {'-', 2}, {'~', 128}, {'_', 16}, {'.', 1}, {' ', 108}, {'=', 144} }; byte getCode(char c) { byte r = 2; for (int i = 0 ; i < cmap_len ; i++) { if (c == cmap[i].c) { r = cmap[i].v; break; } } return r; } //display c1 c2 c3 c4 //Note the boolean values for dot1 dot2 dot3 and dot4 //indicates whether or not to show the decimal point void disp(char c1, bool dot1, char c2, bool dot2, char c3, bool dot3, char c4, bool dot4) { byte b1 = getCode(c1); byte b2 = getCode(c2); byte b3 = getCode(c3); byte b4 = getCode(c4); if (dot1 == true) b1 += 1; if (dot2 == true) b2 += 1; if (dot3 == true) b3 += 1; if (dot4 == true) b4 += 1; if (COMMON_ANODE == 0) { b1 = 255 - b1; b2 = 255 - b2; b3 = 255 - b3; b4 = 255 - b4; } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, b4); shiftOut(dataPin, clockPin, b3); shiftOut(dataPin, clockPin, b2); shiftOut(dataPin, clockPin, b1); digitalWrite(latchPin, HIGH); } void setup7seg() { pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); disp(' ', false, ' ', false, ' ', false, ' ', false); } void shiftOut(uint8_t dataPin, uint8_t clockPin, byte val) { int i; for (i = 0; i < 8; i++) { digitalWrite(dataPin, (val & _BV(i))); delayMicroseconds(10); digitalWrite(clockPin, HIGH); delayMicroseconds(10); digitalWrite(clockPin, LOW); delayMicroseconds(10); } } int LED_SEG_TAB[]={ 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x01,0xee,0x3e,0x1a,0x 7a,0x9e,0x8e,0x01,0x00}; //0 1 2 3 4 5 6 7 8 9 dp . a b c d e f off void setup() { setup7seg(); disp('P',false,'o',false,'r',false,'-',false); delay (3000); disp ('S',false,'C',false,'H',false,'E',false); //displays the word PorSCHE delay(3000); Serial.begin (9600); } void displayNumber(int value, boolean leadingZero) // break down "value" into digits and store in a,b,c,d { int a,b,c,d; // digital values a = value / 100; value = value % 100; b = value / 10; value = value % 10; c = value ; d = 16; // display trailing "F"=16 "c"=13 if (leadingZero==false) // removing leading zeros { if (a==0 && b>0) { a = 18; } if (a==0 && b==0 && c>0) { a = 18; b = 18; } if (a==0 && b==0 && c==0) { a = 18; b = 18; c = 18; } if (a==0 && b==0 && c==0 && d==0) { a = 18; b = 18; c = 18; d = 18; } } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[d]); // shift registers 1-4 shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[c]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[b]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[a]); digitalWrite(latchPin, HIGH); } void loop() { float ADCvalue; //float - adc reading float Resistance; // float ressitance ADCvalue = analogRead(NTCPin); // read ntc pin a0 Serial.print("Analoge "); // print analog Serial.print(ADCvalue); // print adc value Serial.print(" = "); // print " // math to find resistance ohm law Resistance = (1023 / ADCvalue) - 1; // math to scale Resistance = SERIESRESISTOR / Resistance; // math to voltage divide Serial.print(Resistance); // print actual resistanve of ntc Serial.println(" Ohm"); // print ohm float steinhart; // float steinhart steinhart = Resistance / NOMINAL_RESISTANCE; // (R/Ro) steinhart = log(steinhart); // ln(R/Ro) steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15); // + (1/To) steinhart = 1.0 / steinhart; // Invert steinhart -= 273.15; // convert to C steinhart = (steinhart * 9.0)/ 5.0 + 32.0; // Celsius to Fahrenheit - comment out this line if you need Celsius Serial.print (steinhart); delay (3000); displayNumber ( steinhart,false); // display final answer with no leading }

POST 95 / ORIGINAL POSTEROriginal post

This sketch is for display version 4.0 in Celsius PorSCHE_3.1C // This sketch takes a reading from the factory Porsche 996 M96 NTC oil temperature sensor and does some fancy math // using the Steinhart-Hart equation and B coefficient curve ,produces a temperature output with curve, for a seven segment LED sisplay // that has four 74HC595 shift registers on it, only uses 3 wires to hook up. 12v switched, ground, and signal. // further plans to write code for P_O_R_S_C_H_E_ to scroll on start. and to control high and low fans. // coefficient can be tuned to adjust curve. // For display with version4.0 // designed and written by Charles "Skip" Brazeel byte NTCPin = A0; #define SERIESRESISTOR 10000 // internal resistor of DME (>=< 4-6 deg per 1k ohm tune@ 25c-100c) #define NOMINAL_RESISTANCE 15000 // NTC @ 25c (>1k=> 3deg@25c) (>1k=>4deg @ 100c) #define NOMINAL_TEMPERATURE 25 // temp ntc rated #define BCOEFFICIENT 4100 // B curve (>100=0 @ 25c)( >100=< 4deg @ 100c)( <100=>4 deg @ 100c) #define leter F // indicate degrees in fahrenheit int latchPin = 13; int clockPin = 12; int dataPin = 11; //aaaaaa //f b //fggggb //e c //eddddc p // abcdefgp ~abcdefgp DEC ~DEC //1 00001100 11110011 12 243 //2 11011010 00100101 218 101 //3 11110010 00001101 242 13 //4 01100110 10011001 102 153 //5 10110110 01001001 182 73 //6 10111110 01000001 190 65 //7 11100000 00011111 224 31 //8 11111110 00000001 254 1 //9 11110110 00001001 246 9 //0 11111101 00000010 253 2 //A 11101110 00010001 238 17 //b 00111110 11000001 62 193 //c 00011010 11100101 26 229 //C 10011100 01100011 156 99 //d 01111010 10000101 122 133 //e 11011110 00100001 222 33 //E 10011110 01100001 158 97 //F 10001110 01110001 142 113 //g 11110110 00001001 246 9 //H 01101110 10010001 110 145 //h 00101110 11010001 46 209 //I 01100000 10011111 96 159 //J 01111000 10000111 120 135 //L 00011100 11100011 28 227 //n 00101010 11010101 42 213 //o 00111010 11000101 58 197 //P 11001110 00110001 206 49 //q 11100110 00011001 230 25 //r 00001010 11110101 10 245 //S 10110110 01001001 182 73 //t 00011110 11100001 30 225 //u 00111000 11000111 56 199 //U 01111100 10000011 124 131 //y 01110110 10001001 118 137 //- 00000010 11111101 2 253 //- 10000000 01111111 128 127 //- 00010000 11101111 16 239 //. 00000001 11111110 1 254 // 01101100 10010011 108 147 //= 10010000 01101111 144 111 //= 10000010 01111101 130 125 //= 00010010 11101101 18 237 //=- 10010010 01101101 146 109 //note that for common cathode displays the //bit values are inverted (see code) const int COMMON_ANODE = 1 ; //1 CA, 0 CC struct CharMap { char c; byte v; }; const int cmap_len = 41; struct CharMap cmap = { {' ', 0}, {'1', 12}, {'2', 218}, {'3', 242}, {'4', 102}, {'5', 182}, {'6', 190}, {'7', 224}, {'8', 254}, {'9', 246}, {'0', 253}, {'A', 238}, {'b', 62}, {'c', 26}, {'C', 156}, {'d', 122}, {'e', 222}, {'E', 158}, {'F', 142}, {'g', 246}, {'H', 110}, {'h', 46}, {'I', 96}, {'J', 120}, {'L', 28}, {'n', 42}, {'o', 58}, {'P', 206}, {'q', 230}, {'r', 10}, {'S', 182}, {'t', 30}, {'u', 56}, {'U', 124}, {'y', 118}, {'-', 2}, {'~', 128}, {'_', 16}, {'.', 1}, {' ', 108}, {'=', 144} }; byte getCode(char c) { byte r = 2; for (int i = 0 ; i < cmap_len ; i++) { if (c == cmap[i].c) { r = cmap[i].v; break; } } return r; } //display c1 c2 c3 c4 //Note the boolean values for dot1 dot2 dot3 and dot4 //indicates whether or not to show the decimal point void disp(char c1, bool dot1, char c2, bool dot2, char c3, bool dot3, char c4, bool dot4) { byte b1 = getCode(c1); byte b2 = getCode(c2); byte b3 = getCode(c3); byte b4 = getCode(c4); if (dot1 == true) b1 += 1; if (dot2 == true) b2 += 1; if (dot3 == true) b3 += 1; if (dot4 == true) b4 += 1; if (COMMON_ANODE == 0) { b1 = 255 - b1; b2 = 255 - b2; b3 = 255 - b3; b4 = 255 - b4; } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, b4); shiftOut(dataPin, clockPin, b3); shiftOut(dataPin, clockPin, b2); shiftOut(dataPin, clockPin, b1); digitalWrite(latchPin, HIGH); } void setup7seg() { pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); disp(' ', false, ' ', false, ' ', false, ' ', false); } void shiftOut(uint8_t dataPin, uint8_t clockPin, byte val) { int i; for (i = 0; i < 8; i++) { digitalWrite(dataPin, (val & _BV(i))); delayMicroseconds(10); digitalWrite(clockPin, HIGH); delayMicroseconds(10); digitalWrite(clockPin, LOW); delayMicroseconds(10); } } int LED_SEG_TAB={ 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x01,0xee,0x3e,0x1a,0x 7a,0x9e,0x8e,0x01,0x00}; //0 1 2 3 4 5 6 7 8 9 dp . a b c d e f off void setup() { setup7seg(); disp('P',false,'o',false,'r',false,'-',false); delay (3000); disp ('S',false,'C',false,'H',false,'E',false); //displays the word PorSCHE delay(3000); Serial.begin (9600); } void displayNumber(int value, boolean leadingZero) // break down "value" into digits and store in a,b,c,d { int a,b,c,d; // digital values a = value / 100; value = value % 100; b = value / 10; value = value % 10; c = value ; d = 13; // display trailing "F"=16 "c"=13 if (leadingZero==false) // removing leading zeros { if (a==0 && b>0) { a = 18; } if (a==0 && b==0 && c>0) { a = 18; b = 18; } if (a==0 && b==0 && c==0) { a = 18; b = 18; c = 18; } if (a==0 && b==0 && c==0 && d==0) { a = 18; b = 18; c = 18; d = 18; } } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[d]); // shift registers 1-4 shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[c]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[b]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[a]); digitalWrite(latchPin, HIGH); } void loop() { float ADCvalue; //float - adc reading float Resistance; // float ressitance ADCvalue = analogRead(NTCPin); // read ntc pin a0 Serial.print("Analoge "); // print analog Serial.print(ADCvalue); // print adc value Serial.print(" = "); // print " // math to find resistance ohm law Resistance = (1023 / ADCvalue) - 1; // math to scale Resistance = SERIESRESISTOR / Resistance; // math to voltage divide Serial.print(Resistance); // print actual resistanve of ntc Serial.println(" Ohm"); // print ohm float steinhart; // float steinhart steinhart = Resistance / NOMINAL_RESISTANCE; // (R/Ro) steinhart = log(steinhart); // ln(R/Ro) steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15); // + (1/To) steinhart = 1.0 / steinhart; // Invert steinhart -= 273.15; // convert to C Serial.print (steinhart); delay (3000); displayNumber ( steinhart,false); // display final answer with no leading }

POST 96 / ORIGINAL POSTEROriginal post

This sketch is for display with no version number in Fahrenheit PorSCHE_3F // This sketch takes a reading from the factory Porsche 996 M96 NTC oil temperature sensor and does some fancy math // using the Steinhart-Hart equation and B coefficient curve ,produces a temperature output with curve, for a seven segment LED sisplay // that has four 74HC595 shift registers on it, only uses 3 wires to hook up. 12v switched, ground, and signal. // further plans to write code for P_O_R_S_C_H_E_ to scroll on start. and to control high and low fans. // coefficient can be tuned to adjust curve. // For display with no version number and pins SDO,VCC,GND,SDI,RCK,SCK // designed and written by Charles "Skip" Brazeel byte NTCPin = A0; #define SERIESRESISTOR 10000 // internal resistor of DME #define NOMINAL_RESISTANCE 15000 // NTC @ 25c #define NOMINAL_TEMPERATURE 25 // temp ntc rated #define BCOEFFICIENT 4100 // B curve #define leter F // indicate degrees in fahrenheit int latchPin = 13; int clockPin = 12; int dataPin = 11; //aaaaaa //f b //fggggb //e c //eddddc p // abcdefgp ~abcdefgp DEC ~DEC //1 00001100 11110011 12 243 //2 11011010 00100101 218 101 //3 11110010 00001101 242 13 //4 01100110 10011001 102 153 //5 10110110 01001001 182 73 //6 10111110 01000001 190 65 //7 11100000 00011111 224 31 //8 11111110 00000001 254 1 //9 11110110 00001001 246 9 //0 11111101 00000010 253 2 //A 11101110 00010001 238 17 //b 00111110 11000001 62 193 //c 00011010 11100101 26 229 //C 10011100 01100011 156 99 //d 01111010 10000101 122 133 //e 11011110 00100001 222 33 //E 10011110 01100001 158 97 //F 10001110 01110001 142 113 //g 11110110 00001001 246 9 //H 01101110 10010001 110 145 //h 00101110 11010001 46 209 //I 01100000 10011111 96 159 //J 01111000 10000111 120 135 //L 00011100 11100011 28 227 //n 00101010 11010101 42 213 //o 00111010 11000101 58 197 //P 11001110 00110001 206 49 //q 11100110 00011001 230 25 //r 00001010 11110101 10 245 //S 10110110 01001001 182 73 //t 00011110 11100001 30 225 //u 00111000 11000111 56 199 //U 01111100 10000011 124 131 //y 01110110 10001001 118 137 //- 00000010 11111101 2 253 //- 10000000 01111111 128 127 //- 00010000 11101111 16 239 //. 00000001 11111110 1 254 // 01101100 10010011 108 147 //= 10010000 01101111 144 111 //= 10000010 01111101 130 125 //= 00010010 11101101 18 237 //=- 10010010 01101101 146 109 //note that for common cathode displays the //bit values are inverted (see code) const int COMMON_ANODE = 1 ; //1 CA, 0 CC struct CharMap { char c; byte v; }; const int cmap_len = 41; struct CharMap cmap[] = { {' ', 0}, {'1', 12}, {'2', 218}, {'3', 242}, {'4', 102}, {'5', 182}, {'6', 190}, {'7', 224}, {'8', 254}, {'9', 246}, {'0', 253}, {'A', 238}, {'b', 62}, {'c', 26}, {'C', 156}, {'d', 122}, {'e', 222}, {'E', 158}, {'F', 142}, {'g', 246}, {'H', 110}, {'h', 46}, {'I', 96}, {'J', 120}, {'L', 28}, {'n', 42}, {'o', 58}, {'P', 206}, {'q', 230}, {'r', 10}, {'S', 182}, {'t', 30}, {'u', 56}, {'U', 124}, {'y', 118}, {'-', 2}, {'~', 128}, {'_', 16}, {'.', 1}, {' ', 108}, {'=', 144} }; byte getCode(char c) { byte r = 2; for (int i = 0 ; i < cmap_len ; i++) { if (c == cmap[i].c) { r = cmap[i].v; break; } } return r; } //display c1 c2 c3 c4 //Note the boolean values for dot1 dot2 dot3 and dot4 //indicates whether or not to show the decimal point void disp(char c1, bool dot1, char c2, bool dot2, char c3, bool dot3, char c4, bool dot4) { byte b1 = getCode(c1); byte b2 = getCode(c2); byte b3 = getCode(c3); byte b4 = getCode(c4); if (dot1 == true) b1 += 1; if (dot2 == true) b2 += 1; if (dot3 == true) b3 += 1; if (dot4 == true) b4 += 1; if (COMMON_ANODE == 0) { b1 = 255 - b1; b2 = 255 - b2; b3 = 255 - b3; b4 = 255 - b4; } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, b1); shiftOut(dataPin, clockPin, b2); shiftOut(dataPin, clockPin, b3); shiftOut(dataPin, clockPin, b4); digitalWrite(latchPin, HIGH); } void setup7seg() { pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); disp(' ', false, ' ', false, ' ', false, ' ', false); } void shiftOut(uint8_t dataPin, uint8_t clockPin, byte val) { int i; for (i = 0; i < 8; i++) { digitalWrite(dataPin, (val & _BV(i))); delayMicroseconds(10); digitalWrite(clockPin, HIGH); delayMicroseconds(10); digitalWrite(clockPin, LOW); delayMicroseconds(10); } } int LED_SEG_TAB[]={ 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x01,0xee,0x3e,0x1a,0x 7a,0x9e,0x8e,0x01,0x00}; //0 1 2 3 4 5 6 7 8 9 dp . a b c d e f off void setup() { setup7seg(); disp('P',false,'o',false,'r',false,'-',false); delay (3000); disp ('S',false,'C',false,'H',false,'E',false); //displays the word PorSCHE delay(3000); Serial.begin (9600); } void displayNumber(int value, boolean leadingZero) // break down "value" into digits and store in a,b,c,d { int a,b,c,d; // digital values a = value / 1000; value = value % 1000; b = value / 100; value = value % 100; c = value / 10; value = value % 10; d = value; if (leadingZero==false) // removing leading zeros { if (a==0 && b>0) { a = 18; } if (a==0 && b==0 && c>0) { a = 18; b = 18; } if (a==0 && b==0 && c==0) { a = 18; b = 18; c = 18; } if (a==0 && b==0 && c==0 && d==0) { a = 18; b = 18; c = 18; d = 18; } } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[a]); // shift registers 1-4 shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[b]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[c]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[d]); digitalWrite(latchPin, HIGH); } void loop() { float ADCvalue; //float - adc reading float Resistance; // float ressitance ADCvalue = analogRead(NTCPin); // read ntc pin a0 Serial.print("Analoge "); // print analog Serial.print(ADCvalue); // print adc value Serial.print(" = "); // print " // math to find resistance ohm law Resistance = (1023 / ADCvalue) - 1; // math to scale Resistance = SERIESRESISTOR / Resistance; // math to voltage divide Serial.print(Resistance); // print actual resistanve of ntc Serial.println(" Ohm"); // print ohm float steinhart; // float steinhart steinhart = Resistance / NOMINAL_RESISTANCE; // (R/Ro) steinhart = log(steinhart); // ln(R/Ro) steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15); // + (1/To) steinhart = 1.0 / steinhart; // Invert steinhart -= 273.15; // convert to C steinhart = (steinhart * 9.0)/ 5.0 + 32.0; // Celsius to Fahrenheit - comment out this line if you need Celsius Serial.print (steinhart); displayNumber ( steinhart ,false); // display final answer with no leading zero digitalWrite ( latchPin, LOW ); // latch pin low shiftOut( dataPin, clockPin,LSBFIRST,B10001110); // display 'F' digitalWrite ( latchPin , HIGH ); // latch pin high delay (2500); // delay 2500 ms delay (1); // delay 1 ms }

POST 97 / ORIGINAL POSTEROriginal post

This sketch is for display with no version number in Celsius. PorSCHE_3C // This sketch takes a reading from the factory Porsche 996 M96 NTC oil temperature sensor and does some fancy math // using the Steinhart-Hart equation and B coefficient curve ,produces a temperature output with curve, for a seven //segment LED sisplay // that has four 74HC595 shift registers on it, only uses 3 wires to hook up. 12v switched, ground, and signal. // further plans to write code for P_O_R_S_C_H_E_ to scroll on start. and to control high and low fans. // coefficient can be tuned to adjust curve // For display with no version number and pins SDO,VCC,GND,SDI,RCK,SCK // designed and written by Charles "Skip" Brazeel byte NTCPin = A0; #define SERIESRESISTOR 10000 // internal resistor of DME #define NOMINAL_RESISTANCE 15000 // NTC @ 25c #define NOMINAL_TEMPERATURE 25 // temp ntc rated #define BCOEFFICIENT 4100 // B curve #define leter F // indicate degrees in fahrenheit int latchPin = 13; int clockPin = 12; int dataPin = 11; //aaaaaa //f b //fggggb //e c //eddddc p // abcdefgp ~abcdefgp DEC ~DEC //1 00001100 11110011 12 243 //2 11011010 00100101 218 101 //3 11110010 00001101 242 13 //4 01100110 10011001 102 153 //5 10110110 01001001 182 73 //6 10111110 01000001 190 65 //7 11100000 00011111 224 31 //8 11111110 00000001 254 1 //9 11110110 00001001 246 9 //0 11111101 00000010 253 2 //A 11101110 00010001 238 17 //b 00111110 11000001 62 193 //c 00011010 11100101 26 229 //C 10011100 01100011 156 99 //d 01111010 10000101 122 133 //e 11011110 00100001 222 33 //E 10011110 01100001 158 97 //F 10001110 01110001 142 113 //g 11110110 00001001 246 9 //H 01101110 10010001 110 145 //h 00101110 11010001 46 209 //I 01100000 10011111 96 159 //J 01111000 10000111 120 135 //L 00011100 11100011 28 227 //n 00101010 11010101 42 213 //o 00111010 11000101 58 197 //P 11001110 00110001 206 49 //q 11100110 00011001 230 25 //r 00001010 11110101 10 245 //S 10110110 01001001 182 73 //t 00011110 11100001 30 225 //u 00111000 11000111 56 199 //U 01111100 10000011 124 131 //y 01110110 10001001 118 137 //- 00000010 11111101 2 253 //- 10000000 01111111 128 127 //- 00010000 11101111 16 239 //. 00000001 11111110 1 254 // 01101100 10010011 108 147 //= 10010000 01101111 144 111 //= 10000010 01111101 130 125 //= 00010010 11101101 18 237 //=- 10010010 01101101 146 109 //note that for common cathode displays the //bit values are inverted (see code) const int COMMON_ANODE = 1 ; //1 CA, 0 CC struct CharMap { char c; byte v; }; const int cmap_len = 41; struct CharMap cmap = { {' ', 0}, {'1', 12}, {'2', 218}, {'3', 242}, {'4', 102}, {'5', 182}, {'6', 190}, {'7', 224}, {'8', 254}, {'9', 246}, {'0', 253}, {'A', 238}, {'b', 62}, {'c', 26}, {'C', 156}, {'d', 122}, {'e', 222}, {'E', 158}, {'F', 142}, {'g', 246}, {'H', 110}, {'h', 46}, {'I', 96}, {'J', 120}, {'L', 28}, {'n', 42}, {'o', 58}, {'P', 206}, {'q', 230}, {'r', 10}, {'S', 182}, {'t', 30}, {'u', 56}, {'U', 124}, {'y', 118}, {'-', 2}, {'~', 128}, {'_', 16}, {'.', 1}, {' ', 108}, {'=', 144} }; byte getCode(char c) { byte r = 2; for (int i = 0 ; i < cmap_len ; i++) { if (c == cmap[i].c) { r = cmap[i].v; break; } } return r; } //display c1 c2 c3 c4 //Note the boolean values for dot1 dot2 dot3 and dot4 //indicates whether or not to show the decimal point void disp(char c1, bool dot1, char c2, bool dot2, char c3, bool dot3, char c4, bool dot4) { byte b1 = getCode(c1); byte b2 = getCode(c2); byte b3 = getCode(c3); byte b4 = getCode(c4); if (dot1 == true) b1 += 1; if (dot2 == true) b2 += 1; if (dot3 == true) b3 += 1; if (dot4 == true) b4 += 1; if (COMMON_ANODE == 0) { b1 = 255 - b1; b2 = 255 - b2; b3 = 255 - b3; b4 = 255 - b4; } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, b1); shiftOut(dataPin, clockPin, b2); shiftOut(dataPin, clockPin, b3); shiftOut(dataPin, clockPin, b4); digitalWrite(latchPin, HIGH); } void setup7seg() { pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); disp(' ', false, ' ', false, ' ', false, ' ', false); } void shiftOut(uint8_t dataPin, uint8_t clockPin, byte val) { int i; for (i = 0; i < 8; i++) { digitalWrite(dataPin, (val & _BV(i))); delayMicroseconds(10); digitalWrite(clockPin, HIGH); delayMicroseconds(10); digitalWrite(clockPin, LOW); delayMicroseconds(10); } } int LED_SEG_TAB={ 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0x01,0xee,0x3e,0x1a,0x 7a,0x9e,0x8e,0x01,0x00}; //0 1 2 3 4 5 6 7 8 9 dp . a b c d e f off void setup() { setup7seg(); disp('P',false,'o',false,'r',false,'-',false); delay (3000); disp ('S',false,'C',false,'H',false,'E',false); //displays the word PorSCHE delay(3000); Serial.begin (9600); } void displayNumber(int value, boolean leadingZero) // break down "value" into digits and store in a,b,c,d { int a,b,c,d; // digital values a = value / 1000; value = value % 1000; b = value / 100; value = value % 100; c = value / 10; value = value % 10; d = value; if (leadingZero==false) // removing leading zeros { if (a==0 && b>0) { a = 18; } if (a==0 && b==0 && c>0) { a = 18; b = 18; } if (a==0 && b==0 && c==0) { a = 18; b = 18; c = 18; } if (a==0 && b==0 && c==0 && d==0) { a = 18; b = 18; c = 18; d = 18; } } digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[a]); // shift registers 1-4 shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[b]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[c]); shiftOut(dataPin, clockPin, LSBFIRST, LED_SEG_TAB[d]); digitalWrite(latchPin, HIGH); } void loop() { float ADCvalue; //float - adc reading float Resistance; // float ressitance ADCvalue = analogRead(NTCPin); // read ntc pin a0 Serial.print("Analoge "); // print analog Serial.print(ADCvalue); // print adc value Serial.print(" = "); // print " // math to find resistance ohm law Resistance = (1023 / ADCvalue) - 1; // math to scale Resistance = SERIESRESISTOR / Resistance; // math to voltage divide Serial.print(Resistance); // print actual resistanve of ntc Serial.println(" Ohm"); // print ohm float steinhart; // float steinhart steinhart = Resistance / NOMINAL_RESISTANCE; // (R/Ro) steinhart = log(steinhart); // ln(R/Ro) steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15); // + (1/To) steinhart = 1.0 / steinhart; // Invert steinhart -= 273.15; // convert to C Serial.print (steinhart); displayNumber ( steinhart ,false); // display final answer with no leading zero digitalWrite ( latchPin, LOW ); // latch pin low shiftOut( dataPin, clockPin,LSBFIRST,B10011100); // display 'C' digitalWrite ( latchPin , HIGH ); // latch pin high delay (2500); // delay 2500 ms delay (1); // delay 1 ms }

POST 98Original post

You, sir, are a great resource on this board! Thank you!

POST 100 / ORIGINAL POSTEROriginal post

Thanks !!! It was a 3 month project but a lot of that time was spent waiting on component delivery. It was a satisfying endeavor when it all worked, it even impressed the some computer programmers over on the Arduino forums, they said the sketch was "impressively complex"..lol

POST 101Original post

Quotes source post: 14853843

Understatement of the year Thanks for putting so much work in to benefit the community, Porschetech!

POST 102Original post

Nice, glad you endorse the spirit of open source. Just wondering SERIESRESISTOR = 10,000, how did you get this value? Derived from measurements?

POST 103 / ORIGINAL POSTEROriginal post

Quotes source post: 14855987

I figured you would ask that question Ahsai, lol. On the bench testing , with a factory NTC oil temp sensor ( true measured at 15k ohm at 25C) and an actual 8k seriesresister( from your information on your thread) produced readings exactly as expected ( 25c at 15kohm and 100c at 1kohm) but on the car the readings were 9 degrees higher than Durametric, So I had to adjust the seriesresister (math value) to 10k to calibrate to match Durametric readings. So I'm not sure if there is more resistance in the wiring or ground, or if Durametric is calculated low. Would like to compare Durametric to PIWIS readings to see how close they are. I know that on Coolant Temp in Durametric is 2 degrees C lower than the factory reading on the Climate control. I wanted the reading to match the Durametric reading as close as possible since I have no other means to compare.

POST 104Original post

Quotes source post: 14856194

Ah, exactly what I figured and thanks for confirming My expectation is Durametric the PIWIS should return the same temp because they query the DME the same way to get the values in binary. Of course it's possible the binary to C translation could be different but I doubt that because Durametric was reverse engineered from PIWIS.

POST 105 / ORIGINAL POSTEROriginal post

Quotes source post: 14856294

Yes very true, but the only way to know for sure is for someone that has both PIWIS and Durametric to test same car in succession with both testers. Since I'm not at the dealership any more , I don't have access to a PIWIS tester.

POST 106Original post

Holy Mother of God !! that looked like something out of the Matrix !!!!

POST 107 / ORIGINAL POSTEROriginal post

Quotes source post: 14856857

It DID come from the Matrix!! I felt like I went deep into a black hole , not to come out, doing that code. I only came out when it started to work !! lol

POST 108Original post

Before. Never use the radio/cd player anyway assembling pieces display installation The other display is just a filler for now. I'll figure something out later for that hole. wiring up the inputs from the DME Success!! Success! Finally got around to completing the installation, an am very pleased. A few minor bobbles with the Arduino and it's code, but with PT3's help got it working. Thanks again!

POST 109Original post

Ohhhh that IMS button is worth its weight in gold. Thanks for the laugh.

POST 110 / ORIGINAL POSTEROriginal post

Glad you got it installed and working !! Is that one of those rare FSI IMSB Chip detectors? I don't know how sensitive that one is, but I for one believe strongly in the benefit of early chip detection.

POST 111Original post

Sure is: nothing better than knowing when your motor starts making (ferrous) metal. Not as critical driving vs. flying, but still worth the money.

POST 112 / ORIGINAL POSTEROriginal post

Quotes source post: 14883862

That's the real deal. The idea of "early detection" kinda got smothered by all the catastrophic failures and "retrofit designs" and preventative maintenance development strategies.

POST 113Original post

Quotes source post: 14883709

Did you locate the pin #s using wire colors or trace from opening the connector?

POST 114Original post

I opened the connector to trace the wires. The pin numbers are on the connector face and shell, as I recall.

POST 115Original post

Now that you've nailed this project, will the next one be a transmission oil temp gauge??

POST 116 / ORIGINAL POSTEROriginal post

Quotes source post: 14902962

lol...I'm not sure what my next project will be. Going to take a little time and do a track day Friday at Talladega Grand Prix Raceway, I sure a project will hit me soon.

POST 117Original post

These small conducter connectors are the cat's ***..no more Stacons!! Hardest part was finding and tracing the wires Success here too...very cool project

POST 118Original post

I have purchased the above car from Mike A. Did some tweaking. Finding an odd behavior at higher temps, seems like erratic measurements. Otherwise seems to climb in a fairly linear fashion as temps warm up. Posted a video below. Any thoughts? You Tube

POST 119 / ORIGINAL POSTEROriginal post

Try hooking the power and ground from the unused telephone connector behind the dash instead of going all the way to the DME, I remember stopping a surging value one time on another car with that.

POST 120Original post

You were on the right track. Read some info about arduino stating a chassis ground is not recommended. Instead I crimped the pin for the ground to have better contact. Problem seems to be resolved.

This is a source reference. Confirm exact model applicability in the original material.