DIY EGT display approx $16

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
DIY EGT OLED display and K type probe - approx $16

I built several EGT gages for turbo cars and thought I would list some of the details here if you are interested. Accuracy is about +/- 5 degrees F at 1800 degrees.
Here are the basic parts.
Arduino nano - $3
OLED display -$4
Max6675 adapter board and K type thermocouple - $7
I can share the code if you guys want it if you pm me your email.
The display update rate, resolution, font size and layout can be easily changed in the code. The software is free.
My YouTube channel has other vids of boost gages and other variations of the OLED arduino setup.
I am uploading a video to YouTube now but here is a link to my page where you can find the info and demo vids.
http://www.youtube.com/user/aknovaman/videos
 
Last edited:

03TDICommuter

Veteran Member
Joined
Dec 8, 2016
Location
So. Cal
TDI
01' NB, 5spd
OLED display -$4
Max6675 adapter board and K type thermocouple - $7
I can share the code if you guys want it if you pm me your email.
The display update rate, resolution, font size and layout can be easily changed in the code. The software is free.
I'm interested! Where are you buying the Max6675 and OLED boards for that cheap?
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
eBay and C temp display is just a matter of changing the code. Takes less than 2 minutes.
 

sam-

Veteran Member
Joined
Oct 1, 2008
Location
Belgium
TDI
Golf mk3 tdi AFN
Nice and thanks you, subscribed to your channel, you got lot of nice muscle cars build :D
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
EGT code is in post below

#include "U8glib.h"
#include <SPI.h>
#include <Wire.h>
#include "max6675.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); // I2C
int currentTemp = 0;
String thisTemp = "";
int maxTemp = 0; // maximum temperature reached
int minTemp = 0; // minimum temperature reached
int pad = 0;
int thermoDO = 8;
int thermoCS = 9;
int thermoCLK = 10;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void draw(void) {
u8g.setFont(u8g_font_profont29);
u8g.drawStr(1, 25, "EGT");
u8g.setFont(u8g_font_10x20);
// show max temp reached
u8g.drawStr(50, 15, "Max");
if (maxTemp <= currentTemp) {
maxTemp = currentTemp;
}
thisTemp = String(maxTemp);
thisTemp = thisTemp + "\260F";
const char* maxTempC = (const char*) thisTemp.c_str();
u8g.drawStr(90, 15, maxTempC);
// show the min temp reached
u8g.drawStr(50, 30, "Min");
if (minTemp >= currentTemp) {
minTemp = currentTemp;
}
thisTemp = String(minTemp);
thisTemp = thisTemp + "\260F";
const char* minTempC = (const char*) thisTemp.c_str();
u8g.drawStr(90, 30, minTempC);
u8g.setFont(u8g_font_profont29);
if (currentTemp > 99) {
pad = 2;
}
if (currentTemp > 9 && currentTemp < 100) {
pad = 10;
}
if (currentTemp < 10) {
pad = 18;
}
thisTemp = String(currentTemp);
thisTemp = thisTemp + "\260F";
const char* newDispC = (const char*) thisTemp.c_str();
u8g.drawStr(pad, 55, newDispC);
}
void setup(void) {
Serial.begin(9600);
Wire.begin();
// u8g.setRot90();
delay(500); // wait for MAX chip to stabilise
currentTemp = thermocouple.readFahrenheit();
minTemp = int(thermocouple.readFahrenheit());
maxTemp = int(thermocouple.readFahrenheit());
}
void loop(void) {
currentTemp = 0;
for (int f = 0; f < 50; f++) {
currentTemp = thermocouple.readFahrenheit() + currentTemp;
}
currentTemp = currentTemp / 50; // averages out 50 readings
// picture loop
u8g.firstPage();
do {
draw();
} while ( u8g.nextPage() );
// rebuild the picture after some delay
delay(250);
}
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
Boost Gauge code(draft) NOTE: PSI reads 10% low

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
int OLED_RESET = 4;
Adafruit_SSD1306 display(OLED_RESET);
float rawval = 0; // Setup raw sensor value
float kpaval = 0; // Setup kPa value
float boost = 0; // Setup boost value
float barboost = 0; // Setup value for boost bar
float vac = 0; // Setup vacuum value
float peak = 0; // Setup peak value
void setup()
{
Serial.begin(9600); //To comunicate with the PC
display.begin(SSD1306_SWITCHCAPVCC); //To supply the 3.3V power supply
pinMode(0, INPUT); //Set analog pin 0 as an input from the sensor
display.clearDisplay(); //Clear the display and ram
}
void loop() // Start loop
{
rawval = analogRead(0); // Read MAP sensor raw value on analog port 0
kpaval = (rawval * (0.172) + 38.95); // Calculate kpa from raw value
boost = ((rawval * 0.04) - 14.23); // Calculate psi from raw value
barboost = ((rawval * 0.19) - 69.45); // Calculate boost value for the bargraph
vac = boost * -2.036020; // Used 'minus' 2.036020 so that the figure printed wont have a minus symbol in front of it
display.setTextColor(WHITE);
display.setTextSize(1);
// if (boost < 0)
display.setCursor(5, 5);
display.println(kpaval, 0);
//display.println(vac, 1);
// display.println(rawval, 0);
display.setCursor(35, 5);
display.println("kPa");
//display.println("inHg");
// display.println("RAW");
// if (boost >= 0) // Set condition for bargraph to show above zero (negative numbers cause LCD crash)
display.setCursor(70, 5);
display.println(boost, 1);
display.setCursor(105, 5);
display.println("PSI");
if (boost > peak) // If current boost is higher than peak, store new value
peak = boost ; // Store new peak value in peak memory
display.setCursor(5, 15);
display.println(peak, 1); // Prints the peak value
display.setCursor(30, 15);
display.println("PSI Max");
display.drawRect(1, 25, 125, 3, WHITE); //Border of the bar chart
display.fillRect(1, 25, barboost, 3, WHITE); //Draws the bar depending on the sensor value
delay(200);
display.display();
display.clearDisplay();
}
 

bwk9087

Veteran Member
Joined
Mar 23, 2016
Location
MI
TDI
2007 Jeep JKU 1.9 ALH
housing

I built several EGT gages for turbo cars and thought I would list some of the details here if you are interested. Accuracy is about +/- 5 degrees F at 1800 degrees.
Here are the basic parts.
Arduino nano - $3
OLED display -$4
Max6675 adapter board and K type thermocouple - $7
I can share the code if you guys want it if you pm me your email.
The display update rate, resolution, font size and layout can be easily changed in the code. The software is free.
My YouTube channel has other vids of boost gages and other variations of the OLED arduino setup.
I am uploading a video to YouTube now but here is a link to my page where you can find the info and demo vids.
http://www.youtube.com/user/aknovaman/videos
Hi, this looks great, have you come up with a mount, or mounts, if going with an egt, and a boost guage to house these electronics?
thanks
 

Premier Sprinter

Active member
Joined
Mar 15, 2015
Location
DMV
TDI
MK4 4dr Golf - VNT2365v and supporting mods, MK4 4dr Golf - AWD swap in progress, 2006 V10 TDI Touareg
Thanks for posting this. I think I'm going to build two of each for my V10 TDI and save $500 over the price of normal independent gauges.
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
Thx for the positive comments. I work in a NIST traceable calibration laboratory for the largest employer in the usa. I took it into my lab and calibrated it in both a temperature chamber and using temperature simulating electrical lab standard accurate to 0.06 degrees C. I know its accurate.

Still searching for a suitable enclosure.

Seriously, i never looked at commercial egt setups cause i can build my own. Are they really that expensive ?
 

boisebiker

Veteran Member
Joined
Jan 4, 2014
Location
Minden, NV
TDI
1999.5 Jetta 428k, 1997 Passat 230k
Awesome info, thanks. After looking at the Arduino nano I am wondering, can I program it to read a pressure sensor and thermocouple at the same time while driving 2 separate displays? Maybe boost, oil pressure and EGT at the same time?
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
The nano can display several inputs at the same time on one display. However it has limited to only a few in and output pins plus memory space and even my code uses most of the space. A larger arduino can utilize multiple inputs and outputs like the mega. It can also drive a lcd display with a full dashboard. Nice but that far exceeds the intent of my projects here.

On your case of temp and pressure, nano will work but only drive one display showing both sets of data (numbers) you just have to make the code as compact or streamlined as possible.
 
Last edited:

Mikkijayne

Veteran Member
Joined
Nov 10, 2007
Location
Devon, UK
TDI
Audi S8
Nice work :) What language is that please? I'm a bit of a noob to modern languages having not done any code since 68000 assembler on the Amiga!
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
Dunno but all you need is the free arduino software package and search for other peoples code and modify it from there. Likely C++ but i am not a software engineer kind of guy. All i know is that it works for small simple projects like this.
 
Last edited:

Growler

Got Soot Vendor
Joined
Nov 24, 2003
Location
Millersport, Ohio
TDI
Schmutz, 2015 Golf Sportwagen DSG & Schnurren, 2001 Golf GL 2 door 5M
neat little project,

what is the refresh rate on it? it looks like every 2 seconds or so? is there a way to speed up the refresh? did I see it set to 250 with the delay(250) line?

TDI EGTs go up & down quickly and I was wondering if it was a function of your EGT Probe or if the refresh rate on the code is slow?

nice cheap little projcet. I can see lots of people here utilizing it.
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
I set it to update 4x per seconds as thats a happy medium where the least sigificant digit does not get blurred and where you have to sit and wait for it to change.
 

Windex

Top Post Dawg
Joined
Apr 1, 2006
Location
Cambridge
TDI
05 B5V 01E FRF
Thank you for posting this - for those of us less initiated, can you post a schematic for where to solder the connections to the Arduino board and the adapter board?

I can almost make it out by the wire color codes in your video, but not quite. :D
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
If necessary I can write step by step directions on how to set up the software to load the sketch. Just need a few days.

I just used cat-5 cable wires cause they are solid/semi-rigid and free.

Windex, Here is a link to the wiring connections.

https://youtu.be/x6wSGZ9bYPk
 
Last edited:

VincenzaV

Veteran Member
Joined
Apr 25, 2015
Location
New Hampshire
TDI
2004 Jetta Wagon
Aknovaman-Thank you so much for all your work pioneering this (presumably as a DIY-ish) project! I absolutely love the OLED display you posted and have some NOOB questions. I am not a computer guy, but consider myself smart and can learn.

1. Can the OLED "font" become larger (easily)?

2. Can you change colors of the font (easily)?

3. Is the boost gauge "sturdy" enough, especially wire you solder it to mount the wires from the gauge to the boost pressure sensor? I'm no engineer, and don't know if simply using a braided nylon wire loom from the gauge to the sensor is vibration/abrasion resistant enough for a long term usage.

4. Are you willing to do a "dummies" guide to creating the boost gauge? If so, you just became my best friend!

5. Does that OLED display fit in a standard boost gauge pillar?

Thank you!
 

Aknovaman

Well-known member
Joined
Sep 26, 2016
Location
Tecumseh
TDI
2001 golf tdi
I can better answer your questions later when i can type on my pc. I have bad cell coverage and cant see all your comments well. I will answer them tomorrow. Bottom line is customization is easy in the code.
 
Top