uCHT is a very small cylinder head temperature digital gauge based on the ATMega32u4 microcontroller and the MAX31855 K-Type thermocouple IC. It was designed mainly for a 1978 VW Bus to replace the much larger Dakota Digital gauge I had hiding in the glove compartment.
Knowing your engine head temperature on an aircooled vehicle is essential. Especially if you are driving to the mountains. When I first purchased my bus I scoured the forums and came to the conclusion that the Dakota Digital CHT gauge was the highly recommended option for these buses, so I picked one up. I was never a big fan of a bunch of gauges around my dash so I hooked the thing up in my glove compartment and popped it open when I was doing uphill/highway driving to keep an eye on things. This all worked great, but I thought it would look much sleeker and more functional to have a tiny display blend in with the rest of my dash and so uCHT was born.
- uCHT is based on the Atmel ATMega32u4 Microcontroller running a slightly customized Arduino bootloader.
- I used an Arduino bootloader and added a micro USB to make it easier for customizations.
- Works with any K-Type thermocouple. The one on my bus can be found here and is mounted underneath the sparkplug of the third cylinder.
- The display is a 0.49" OLED display and uses a custom seven segment font created using
Fonyto give it a more classic digital look. The overall code is fairly simple and utilizes the U8g2 library for the display and Adafruit's MAX31855 library for the thermocouple chip. - The display can be configured to either fahrenheit or celsius by setting the
TEMPERATURE_SCALEto eitherForC. There is also a high temperature warning feature that can be set by theTEMPERATURE_WARNvalue. When this limit is reached the display will start blinking to warn the user they are running too hot.
- The gauge should be connected to accessory line so it is only powered on when car is on.
- One of the reasons why the Dakota Digital gauge is so popular is due to it's CJC circuitry (Cold Junction Compensation), the MAX31855 also has this feature built in and is why it was selected to be used. However one hurdle I experienced when using this chip was it's capability to detect ground shorts. This caused problems since the thermocouple was mounted on the engine which is also grounded. To get around this one of the voltage regulators used (HALO
DC13-V0503SLF) was a DC to DC isolated converter which creates a separate ground circuit that was then used by the microcontroller and any component connected to it. More details and the schematic can be found in the
hardwarefolder. - To handle blips and glitches in the power there's some input voltage filtering and also an external watchdog timer that is disabled when being powered by the micro USB connector to avoid issues during programming. More details on programming and the code can be found in the
firmwarefolder - The entire enclosure was 3D printed in ASA and designed to fit into an existing spot that originally housed a brake warning light. An additional hole was created to keep this warning light but at a higher position as seen in the picture above.
Something I overlooked while developing this was the capability to dim the display when headlights were turned on. This wouldn't be too much work to add on, the only thing to keep in mind is the isolated ground circuit so the best bet would be to use something like an optocoupler, but I forgot and don't feel like spinning up another board. When more issues pop up I'll get V2 going with this included.





