Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

frostbite-lcd

Show your CPU temperature on the pump-head LCD of a Dragos FrostBite (and other coolers whose Windows software is HJZN_PSR) — on Linux.

These coolers ship Windows-only software. Without it the display just sits at 00. This is a small daemon that reads the CPU temperature from hwmon and speaks the cooler's serial protocol, which was recovered by reverse engineering the vendor application. See docs/PROTOCOL.md for the full write-up.

No kernel module, no vendor blobs, no dependencies beyond Python 3.

Does this fit my cooler?

Run:

lsusb | grep 1f3a:0008

If you see a wch.cn/USB Serial device, you very likely have a compatible cooler. Confirmed working on:

Cooler CPU Distro
Dragos FrostBite 240 Ryzen 7 9800X3D CachyOS (kernel 7.1)

Other rebrands of the same ODM design should work. If yours connects but shows the wrong number, see Different layout? below — and please open an issue so it can be supported out of the box.

Install

git clone https://github.com/hamer1818/frostbite-lcd
cd frostbite-lcd
sudo ./install.sh

The installer places the daemon in /usr/local/bin, installs a systemd unit, runs a dry-run check, and enables the service at boot.

Verify that the LCD agrees with your sensors:

sensors | grep -i tctl

Uninstall

sudo ./uninstall.sh

Usage

The service handles everything, but the daemon is usable directly:

frostbite-lcd --dry-run          # show what would be sent, write nothing
frostbite-lcd --interval 2       # update every 2 seconds
frostbite-lcd --temp-input /sys/class/hwmon/hwmon2/temp1_input
frostbite-lcd --device /dev/ttyACM1

Logs:

journalctl -u frostbite-lcd -f

How it works

hwmon (k10temp Tctl)  ->  frostbite-lcd  ->  /dev/ttyACM0  ->  pump-head LCD
                          1000000 baud, 8N1

Every second the daemon reads the CPU temperature and writes a six-byte frame:

74 01 02 31 00 02
^^          ^^
'|'         temperature, XOR 0x02   (0x31 = 49 = 51 ^ 2, i.e. 51 °C)

Both the serial device and the temperature source are resolved at runtime — the device by USB VID/PID, the sensor by chip name — because ttyACM numbering and hwmon indices are not stable across reboots. Unplugging the cooler and plugging it back in is handled; the daemon reconnects on its own.

Different layout?

If the daemon runs cleanly but the display is blank or wrong, your cooler may place the temperature in a different byte:

sudo ./tools/field-sweep.py

It sends a marker value through one field at a time. Watch the LCD and note which phase shows the marker, then open an issue with the result and the output of lsusb.

This is safe: the frames are the same shape the vendor software uses, and this serial link only drives the display. Pump and fans run off the motherboard headers and are unaffected — the worst case is a wrong number on screen.

Türkçe

Dragos FrostBite serisi sıvı soğutucuların pompa üzerindeki ekranı Windows'ta üreticinin yazılımıyla çalışıyor; Linux'ta karşılığı olmadığı için ekran 00 gösteriyor. Bu proje o yazılımın protokolünü tersine mühendislikle çözüp ekranın Linux'ta da çalışmasını sağlıyor.

Kurulum:

git clone https://github.com/hamer1818/frostbite-lcd
cd frostbite-lcd
sudo ./install.sh

Kurulum betiği servisi açılışta otomatik başlayacak şekilde ayarlar. Ekrandaki değeri sensors | grep -i tctl çıktısıyla karşılaştırarak doğrulayabilirsin.

Farklı bir modelde ekran yanlış değer gösteriyorsa sudo ./tools/field-sweep.py çalıştırıp hangi fazda doğru sayıyı gördüğünü issue olarak bildirebilirsin.

Contributing

Reports from other coolers are the most useful contribution — especially the lsusb line and your field-sweep.py result. Protocol findings for the unknown fields (bytes 2, 4 and 5) are very welcome too.

License

MIT. See LICENSE.

This project implements an interface for interoperability. It contains no vendor code and redistributes nothing from the original software.

About

Show your CPU temperature on the LCD of Dragos FrostBite and other HJZN_PSR-family AIO coolers, on Linux

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages