Mictronics - DIY Electronic projects and more.

DIY Afterburner Mk2 diesel heater controller

Afterburner Mk2 DIY - Mictronics version
Afterburner Mk2 DIY - Mictronics version

This is a DIY built aftermarket controller Afterburner Mk2 for the famous chinese diesel heaters, e.g. VEVOR brand.

Afterburner Mk2 DIY frontend
Afterburner Mk2 DIY frontend

The Afterburner Mk2 was original designed by Ray Jones. See his webpage. The motivation for a DIY design was to avoid any hassle with customs that arise when one tries to import DIY hardware (from Australia or elsewhere) into Europe, especially in Germany.

MY DIY design follows the Afterburner Mk2 schematic that can be found in the original user manual. Additional information can be found in the related Gitlab repository.

Backend with components from donor boards
Backend with components from donor boards

Following donor boards (from Amazon) have been used for components:

The rest of the components can be found on Digikey or Mouser.

Inside OKW TOPTEC 154F
Inside OKW TOPTEC 154F

The PCB is designed to fit into an OKW TOPTEC 154F (B1065365) housing that was laying around.

Everything works as expected with a diesel heater VEVOR WF5001. However, I had to change the heater control motherboard to one being compatible with the Afterburner Mk2 firmware (blue line protocol). Replacement motherboards are available on eBay, e.g. 235077415445.

Compatible diesel heater motherboard from eBay
Compatible diesel heater motherboard from eBay

The latest firmware v3.4.13 indicates full functionality, including analog input and GPIO.

Firmware is available for download on a separate webpage.

Firmware v3.4.13
Firmware v3.4.13

Debugging and setup #

Debugging and setup is possible web browser.

Afterburner Mk2 console in Linux gtkterm
Afterburner Mk2 console in Linux gtkterm

... or via serial console. When using a FTDI USB adapter, make sure it has been jumpered for 3.3V operation.

Afterburner Mk2 console in Linux gtkterm
Afterburner Mk2 console in Linux gtkterm

MQTT setup #

Albeit MQTT setup is described in the Afterburner Mk2 user manual it was a bit tricky to setup subscription for the topics.

Afterburner Mk2 MQTT broker setup
Afterburner Mk2 MQTT broker setup

The setup requires the MQTT brokers IP and port, authentication username and password and the unique topic prefix. The topic prefix was set according to the user manual recommendation.

Subscription to the following topics is then possible:

Afterburner control is possible by publishing to the following topic:

See configuration.yaml 👇 for example topic subscription.

Including into Home Assistant (HASS) #

Once MQTT is successfully setup, the Afterburner controller can be included into Home Assistant. Found some examples for configuration.yaml and automation.yaml.

Afterburner Mk2 home assistant integration via MQTT
Afterburner Mk2 home assistant integration via MQTT

Modified to what I am using now:
automation.yaml

alias: Get Heater Status
description: ""
trigger:
# - platform: homeassistant
# event: start
- platform: time_pattern
# Matches every hour at 5 minutes past whole
minutes: "/1"
condition: []
action:
- service: mqtt.publish
data:
topic: AfterburnerF25A18/cmd/Refresh
payload: "1"
mode: single

The AfterburnerF25A18 needs to be equal to the topic prefix set during MQTT configuration.
configuration.yaml


mqtt:
climate:
- name: Van Heating
action_topic: "AfterburnerF25A18/sts/RunState"
action_template: >
{% if value in ("0", "1", "6", "7", "8") %}
off
{% elif value in ("10", "12") %}
idle
{% else %}
heating
{% endif %}

current_temperature_topic: "AfterburnerF25A18/sts/TempCurrent"
max_temp: 35
min_temp: 8
modes:
- "off"
- "heat"
mode_state_topic: "AfterburnerF25A18/sts/Run"
mode_state_template: >
{% if value == "1" %}
heat
{% else %}
off
{% endif %}

mode_command_topic: "AfterburnerF25A18/cmd/Run"
mode_command_template: >
{% if value == "heat" %}
1
{% else %}
0
{% endif %}

precision: 0.1
temperature_command_topic: "AfterburnerF25A18/cmd/TempDesired"
temperature_state_topic: "AfterburnerF25A18/sts/TempDesired"
temp_step: 0.5

sensor:
- name: Afterburner Status
unique_id: afterburner_status
state_topic: "AfterburnerF25A18/sts/RunString"

- name: Afterburner Error
unique_id: afterburner_error
state_topic: "AfterburnerF25A18/sts/ErrorString"

- name: Afterburner Internal Temperature
unique_id: afterburner_internal_temp
state_topic: "AfterburnerF25A18/sts/TempBody"
device_class: temperature
unit_of_measurement: °C
state_class: measurement

- name: Afterburner Consumption (Total)
unique_id: afterburner_consumption
state_topic: "AfterburnerF25A18/sts/TotalFuelUsage"
unit_of_measurement: mL
state_class: total_increasing

- name: Afterburner Pump Rate
unique_id: afterburner_pump
state_topic: "AfterburnerF25A18/sts/PumpActual"
unit_of_measurement: Hz
device_class: frequency
state_class: measurement

- name: Afterburner Fan Speed
unique_id: afterburner_fan
state_topic: "AfterburnerF25A18/sts/FanRPM"
unit_of_measurement: RPM
state_class: measurement

- name: Afterburner Glow Plug
unique_id: afterburner_glowplug
state_topic: "AfterburnerF25A18/sts/GlowCurrent"
device_class: current
unit_of_measurement: A
state_class: measurement

- name: Afterburner Glow Voltage
unique_id: afterburner_glowvoltage
state_topic: "AfterburnerF25A18/sts/GlowVoltage"
device_class: voltage
unit_of_measurement: V
state_class: measurement

- name: Afterburner Wifi RSSI
unique_id: afterburner_wifirssi
state_topic: "AfterburnerF25A18/JSONout"
device_class: signal_strength
unit_of_measurement: dBm
state_class: measurement
value_template: "{{ value_json.IP_STARSSI }}"

- name: Afterburner Input Voltage
unique_id: afterburner_inputvoltage
state_topic: "AfterburnerF25A18/JSONout"
device_class: voltage
unit_of_measurement: V
state_class: measurement
value_template: "{{ value_json.InputVoltage }}"

Disclaimer #

Credits to Ray Jones for creating this project. 👍

⛔️ I will neither sell or rebuild my project nor otherwise distribute details, schematic, layout etc. so do not ask. ⛔️

👈 Home