/MillHeat-ESPHome-NodeMCU

Replace the HF-LP120 with NodeMCU in a mill convection heater

Primary LanguageC++

MillHeat-ESPHome-NodeMCU

A guide to replacing the HF-LPT120 V1 WiFi chip in the Mill Convection Heater (Gen2) with a NodeMCU using ESPHome.

On the shoulders of giants

This project is based on initial work by JDolven and metrafonic. Their repositories laid the groundwork and is the whole reason this repository exists.

Installing the software

  • Put the mill.h and mill-zero.yaml files in your ESPHome folder
  • Edit as necessary (api keys, wifi, etc)
  • Flash/install to device
  • Remove the HF-LPT120 chip from the heater
  • Install and connect the NodeMCU as per instructions
  • Turn on power šŸ„³

Install

To be able to send commands on the TX pin, we must remove the existing HF-LP120 chip as it is holing the TX pin high (so that we cannot send data).

Here are the pin connections:

  • PIN1 - GND
  • PIN2 - 3v3 + EN
  • PIN5 - RX
  • PIN6 - TX
  • PIN7 - GPIO02

ESP-01 - Notice that pin 2 is connected to 3v3 and the EN pin so that the esp01 can boot. This will not be needed for other devices such as the nodemcu.

We need GPIO02 to be set to high. I assume this is how the HF chip could communicate that it was online. metrafonic tried running it without this pin and it would stop working after a couple of minutes/hours.

Debug:

Here are some of the outputs that the LP120 would send when using the mill app to set different settings:

SET 14 DEGREES
0x5a 0x00 0x10 0x1b 0x00 0x46 0x01 0x00 0x0e 0x00 0x00 0x00 0x00 0x00 0x80 0x5b 
0x5a 0x00 0x10 0x1c 0x00 0x50 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7c 0x5b

SET 5 DEGREES
0x5a 0x00 0x10 0x1d 0x00 0x46 0x01 0x00 0x05 0x00 0x00 0x00 0x00 0x00 0x79 0x5b 
0x5a 0x00 0x10 0x1e 0x00 0x50 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7e 0x5b

SET OFF
0x5a 0x00 0x10 0x1f 0x00 0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x73 0x5b

SET ON
0x5a 0x00 0x10 0x20 0x00 0x44 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x75 0x5b 

SET 6 DEGREES
0x5a 0x00 0x10 0x22 0x00 0x46 0x01 0x00 0x06 0x00 0x00 0x00 0x00 0x00 0x7f 0x5b 
0x5a 0x00 0x10 0x23 0x00 0x50 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x83 0x5b 

FAN OFF
0x5a 0x00 0x10 0x26 0x00 0x48 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x7e 0x5b

FAN ON
0x5a 0x00 0x10 0x27 0x00 0x48 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80 0x5b