Mobirise

Firmware Releases

This page provides pre-compiled firmware releases that can be uploaded to the Afterburner.

Firmware is easily uploaded using Web Update*, Browser Update*, or the ESP32's embedded serial bootloader via a USB serial adapter.

* Web Update and Browser Update only available with fimware V2.3.0 onwards.

Latest Release Downloads

Latest Afterburner pre-compiled binary image

V3.5.2 - 02 Jul 2024

Please refer to the V3.5.2 release notes further down for the features added.

This is a massive step upwards from the previous V3.4.13 release.
There are numerous incremental changes since V3.4.13, documented at  BETA release notes

Afterburner pre-compiled binary image

V3.4.13 - 16 Oct 2022

Please refer to the V3.4.13 release notes further down for the features added.

** HOT FIX! ** deals with a catastrophic STA wifi bug.

Android Bluetooth application

The app is built using MIT App Inventor.
It can be installed on an Android device to provide Bluetooth control of the Afterburner.
It is also able to utilise connections via MQTT or direct websocket to the Afterburner.

Unfortunately the MIT App Inventor block based design, on a single page, has reached the limits of my sanity.
Their compiler is also quite fragile with such a large project and sometimes does not rebuild after adding a few extra bits of code.
It does however function very well for the core functionality of setting thermostat modes, timers and tuning.

Web content

NEW 7 Jul 2024 :-
WebContent_V3.5.1.18.zip

This new web content is designed to work best with the new V3.5.2 firmware.
It is strongly recommended to update the firmware first, before updating the web content.
You may experience some weird behaviour when using older firmware.

.zip packages of required files.

DO NOT upload the .ZIP file

Unzip the downloaded package before uploading to SPIFFS, using Arduino IDE, or Browser Update.
DO NOT unpack index.html.gz
Upload all unzipped files to the Afterburner using the /update feature from your web browser.


V2.3.0 web content - 3 June 2019.
Original web content, small and simple.

V3.0.0 web content - 30 July 2019.
Feature packed web content, larger but fancy.
This release contains a massively reworked web interface, which is still incomplete but very functional for the normal on/off & set temperature operations.

V3.2.0 web content - 4 May 2020
Extensive rework of web interface. Now supports timer manipulation, and can act as an MQTT client.
Please delete gauge.min.js.gz from your SPIFFS content, it is now incorporated into index.html.gz

V3.2.1 web content - 14 May 2020
Added support for Stop/Start thermostat mode available in V3.2.0+ firmware.
Version number now matches ZIP file name.
Please delete gauge.min.js.gz from your SPIFFS content, it is now incorporated into index.html.gz

V3.4.6 web content - 28 Apr 2022
Supports new features in V3.4.6 firmware.
Please delete gauge.min.js.gz from your SPIFFS content, it is now incorporated into index.html.gz

V3.4.7 web content - 25 Jun 2022
Supports new features in V3.4.7 firmware.
Please delete gauge.min.js.gz from your SPIFFS content, it is now incorporated into index.html.gz

Firmware uploading scripts

These scripts allow you to upload to the Afterburner without requiring the full Arduino ESP32 environment under Windows.
Please note that selected executable files from the Arduino ESP32 environment are included in this download.
Batch files are provided to upload via the serial debug port (requires a USB adapter).
These batch files will always need to tuned for your specific PC configuration. 

Web update

Web update is by far the easiest method to upload new firmware to the Afterburner.

New firmware is discovered on the Afterburner website, via the internet.
Availability is notified, but you must initiate the update.

Follow these steps to use Web update:

NOTE: Only available with firmware V2.3.0 onwards

1

Essential requirement

The Afterburner must be able to connect to the internet.
You must configure the Afterburner to connect to a wifi network, i.e. STA mode must be available.

2

Automatic discovery

Asuming Internet connectivity exists, the Afterburner will regularly contact the the Afterburner web server to discover if a new firmware is available.
If so, an update icon is briefly flashed upon the OLED's header area.
The update will not take place automatically.    

3

User authorisation

If an update is available, all you need to do is navigate to the Version Information menu.
This menu lives within the User Setting menu loop.

You must first locate the Heater Settings info screen, then press DOWN to enter the User Settings loop.
Using LEFT or RIGHT locate the Version Information menu.

Press UP once.
A prompt to update will be presented.

Press CENTRE.
Confirmation to proceed with the update is presented.

Press UP.
The Afterburner will downloads the new firmware.

4

Download

Download progress of the new firmware is reported on the OLED display.
Once 100% is reached, the checksum is validated.
If OK the new firmware is set to go, otherwise the existing version is retained.

The Afterburner reboots.

That's it - the new firmware is installed and running!

Firmware update, via a Web Browser 

Browser update allows you to upload new firmware to the Afterburner using a web browser.
You are also able to update the Afterburner's web content.

Browser update does not require the Afterburner to be connected to the internet, though your device hosting the browser must be able to download the new firmware binary from the Afterburner website.

NOTE: Only available with firmware V2.3.0 onwards

1

Preparation

Download and save the latest pre-compiled firmware from http://www.mrjones.id.au/afterburner/firmware.html 

2

Connect a web browser to the Afterburner

Ensure your device (PC or mobile) can connect to the Afterburner via Wifi.
You can use the Afterburner's own Access Point, or connect via your local Wifi network.
Open a web browser and navigate to the Afterburner's IP address.

3

Access Web Update page

To enter the firmware update, you need to append the special path /update to the required Afterburner's website address.
eg: if using the inbuilt access point: http://192.168.4.1/update

4

Supply credentials

To prevent random accidental uploads, access to the browser update is password protected.
The credentials to use are:
Username: Afterburner
Password: BurnBabyBurn

5

Select file to upload

The form to perform the browser update is now presented.
Click on the Browse button.
Locate and select the previously downloaded firmware that was saved to your device.

Please note it has been found some iPhones will not allow you to upload files as they deny access to their file system.

6

Start upload

Press on Update
The selected file is uploaded to the Afterburner.

7

Upload and completion

Upload progress of the new firmware is reported on the OLED display and the browser.
Once 100% is reached, the checksum is validated.
If OK the new firmware is set to go, otherwise the existing version is retained.

The Afterburner reboots.
The browser will be re-directed to the Afterburner's home page.

That's it - the new firmware is installed and running!

Web content update via a Web Browser

You can also update the HTML content of the Afterburner using a web browser

1

Access Afterburner

Follow the same steps as described above for updating the Afterburner firmware using a browser, but instead locate and download the required web content file(s).

IMPORTANT: You MUST unzip the downloaded web content package before uploading.

WebContent_V3.4.7.zip

2

Select web page content

After clicking upon Browse, locate and select one of the unzipped web content files that should be uploaded to the Afterburner.
Do not upload the .zip file

Please note it has been found some iPhones will not allow you to upload files as they deny access to their file system.

3

Install

Press on Update
The new web content is uploaded to the Afterburner's resident file system.

As these files are small, it does not take long to complete.

4

Further content

Unlike updating firmware, note that the update form remains open on the browser.
This allows you to upload further content if required. eg CSS or Javascript.

When done, simply press Cancel and you will be re-directed to the Afterburner's home page, which may have been updated using this process!

Mobirise

Serial bootload steps

Serial bootloading will always suceed and can be used to recover a "bricked" system.

1

USB adapter

A USB to serial adapter is required. Ensure the USB adapter is configured to provide 3.3V logic levels.
I recommend FTDI based units as shown above.
DO NOT USE a normal COM port or USB to COM port style adapter (typ. a DE-9 connection) as the voltages present will damage the Afterburner. It must be the style typically used for Arduino development purposes.

Plug the USB adapter into your PC and discover its COM port number.

2

Prepare the bootload script (batch file)

Download the bootload scripts from this website: Bootload_V3.4.7.zip
Extract (unzip) the files to your PC.
You will then need to hand tune the COM.bat file to reflect the COM port address that you will use to access Afterburner.

eg: Your PC has allocated COM11 to the USB adapter.
Open COM.bat in a text editor and set the COM port address accordingly:

esptool.exe --chip esp32 --port COM11 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader_qio_80m.bin 0x10000 Afterburner.bin 0x8000 Afterburner.partitions.bin  

3

Download the required pre-compiled binary image

Using the links above, select and download the required firmware to upload to the Afterburner.
Copy the downloaded file to the same directory as the botload script was unzipped to.
Rename the file to become Afterburner.bin

4

Prepare the Afterburner for serial upload

The ESP32 device hosts an internal bootloader that is used for serial upload.
To enable this bootloader, follow the following steps.
   1/ Hold the EN button on (or connect the EN breakout pin to 0V **). This holds the ESP in reset.
   2/ Continue to hold the EN button, then press the Boot button (or simultaneously connect the BT breakout pin to 0V **)
   3/ Release the En button, still holding the Boot button. The ESP32 will see the boot pin is low and start the serial bootloader.
   4/ Release the Boot button.

** The EN and Boot switches on the red V2.0 Afterburner PCBs are hidden behind the front panel when assembled.
It is easier to make use of the BT and EN pins adjacent to the serial debug port to apply 0V in the correct sequence.
A pair of male-female molex jumper cables can be used.
The large tin can over the ESP module is a convenient ground point to temporarily touch these flying leads to for reseting and entering the serial bootloader.

5

Connect the USB adapter to the Afterburner

Connect the 0V, Tx and Rx pins of the USB adapter, taking care to ensure the logic levels are set to 3.3V.

6

Upload

Execute COM.bat from the unzipped files.
A command shell window will open, and progress will be displayed.
(Alternatively start a command window, navigate to the unzipped files and execute COM.bat from there) 
All going well, the upload will take place, and become the new firmware resident on the Afterburner. 

7

Conclusion

Despite the ESPtool claiming it has reset the processor, there is no connection to the USB adapter that can do that. 
You will need to momentarilly press the En button (or connect the EN breakout pin to 0V) to finally reset the ESP32 and start the new firmware.
DO NOT operate the Boot switch this time.

Version History

newest first

New Features

  • Automatic Altitude correction available with BME280 equipped units.
    Manual Altitude correction available for any unit.
  • Totally revamped wifi configuation.
    • CFG mode no longer exists.
    • New inbuilt /wifi web page allows STA configuration at any time.
    • Improved wifi stability.
    • All possible channels scanned for STA connections prior to connection.
    • AP bandwidth forced to 20MHz, unless STA channel is 40MHz. The wider bandwidth caused issues in densely populated wifi areas.
    • Support for hidden STA SSIDs. This will lengthen the scanning time prior to attempting connections if two SSIDs are defined.
  • System naming, allows more friendly IDs especially via MQTT and its possibly cryptic topic prefixes.
  • Temperature sensors can be individually named.
  • Added special "snooze" or "awake later" delay timers.
  • Support for Home Assistant (via MQTT) auto discovery.
  • Debug menus accessible via web page.
  • Possible to view virtual OLED display / keypad via web page.
    This is best conducted over a LAN, Internet may be unreliable.
  • UHF remote stop action altered if Frost Mode is active.
    Initial stop request will now cancel Frost Mode, keeping the heater running and revert to system thermostat.
    A second stop request will then shutdown the heater.
  • Bobil mode support.
    Afterburner can provide direct management of water pump operation and servo driven hot air diverters.
  • Specfic Frost Mode disable.
    This allows Frost Mode to be enabled/disabled without affecting the start value.
  • Frost mode can use a sensor other than the thermostat sensor.
  • Optional keypad lock.
  • Improved popup screen behaviours.
    • Stop start popup allows delayed start or stop, altitude recalibration (if running), Bobil mode of operation (if stopped and enabled).
    • Temperature / Fixed Hz demand now via popup. This allows holding of up or down for faster adjustment.
    • Fixed Hz/Thermostat & Fahrenheit/Celsius switching now via a popup menu.
    • Some GPIO configuration popups (and others) have vertical scrolling due to number of settings.
    • A timeout icon animation shows these menus will self dismiss.
  • Should Save animation for pending configuration changes made via OLED menus.
  • Brightness level of OLED can be adjusted for both dimmed and undimmed states.
  • Low fuel warning added to gauges menu.
  • Retry option available for E-08 or E-10 errors. (Use with care).
  • Auto reboot system if comms error (E-07) persists.
  • New JSON command:
    • {Run":-1} - force jump to suspend mode.
  • New error code:
    • E-15 - Crazy pump.
      If pump's speed is reported as 20% greater than maximum tuning, this error is thrown and heater is shutdown.
  • MQTT connections have the option of using a PIN to obfuscate the topics and payloads. Could prove especially useful on unsecured brokers (eg the popular HiveMQ).
  • File system (for web content) updated to LITTLEFS.
    Automatically updates from SPIFFS to LITTLEFS.
    It is not possible to go back to earlier versions without reformatting and re-uploading the web content.
    Prior problems with large web content uploads solved.
  • Support for AC123 3 button remotes (typ. window shutter controllers).
  • telnet connection debug logs now include messages that were previously solely directed to the serial port. (eg Arduino library messages).
  • Fresh telnet connections replay the prior 32kB of logs. This may be useful for post event debugging.
  • Beta content uploading (via STA):
    • Latest beta firmware can be uploaded by holding UP at the Version Information menu.
    • Latest beta web content can be uploaded by holding UP at the Web Content Update menu.
  • GPIO Analogue "Fuel Sender" mode can have reversed max / min values.
    A low fuel warning enables excess fuel shutdowm based upon actual fuel level.
  • Home Assistant auto discovery, via MQTT.
Bug Fixes
  • Intermittent failures to save STA credentials cured with revamped wifi setup.
  • Some UHF remotes were failing to be recognised due to sending 33 bits.
  • Improved handling of multiple sensors.
    It may be required to re-specify the sensor roles after this fix.
    The main problem was misapplication of sensor offsets.
  • Removed propensity to show E-14 if heater loses power, which results in an unexpected but legitimate change to cooling state.
  • Fuel usage was misreporting percentage in Gauges menu when NOT litres. (factor of ~4 ;-)
  • STA passwords > 32 chars were being internally truncated.
  • Web content uploading stability improved.
  • Low fuel GPIO warning would illuminate when heater was off.
  • Fixed presentation issue where adjacent timers appeared to be merged into a single timer on the timer overview chart.
  • MQTT Last Will and Testament was corrupted.

Many features are from withdrawn V3.4.9, V3.4.10, V3.4.11 & V3.4.12 releases

New Features

  • New Comms Settings menu loop.
  • telnet debug log now includes messsages previously exclusive to the serial port.
  • Can now connect to hidden SSIDs, provided it is the FIRST SSID defined in the Afterburner.
Bug Fixes
  • STA scan interval was far too short for reliable network detection.
  • Failure to detect a known SSID resulted in future STA retries being aborted.
    STA would NOT ever reconnect unless rebooted.
  • Wifi Manager prone to premature reboot when accepting STA credentials.
  • Editing of wifi credentials via debug port required a reboot to take effect.
  • Fixes introduced bug in V3.4.9 where menu timeout always landed on detailed menu
  • Fixes critical bug in V3.4.9 & V3.4.10 where menu navigation was broken in some menus - especially auto update
  • Occasional lack of Bluetooth access due to suspect module initialisation
  • Broken GPIO manipulation via JSON input.
  • MQTT: Last Will and Testment was not correctly sent to the broker.
      Offline status behaviour now works better on web page as a result.
  • Cyclic stop incorrectly rounded to whole degree Celcius offset.

WITHRAWN

New Features

  • New Comms Settings menu loop.
  • telnet debug log now includes messsages previously exclusive to the serial port.
  • Can now connect to hidden SSIDs, provided it is the FIRST SSID defined in the Afterburner.
Bug Fixes
  • STA scan interval was far too short for reliable network detection.
  • Failure to detect a known SSID resulted in future STA retries being aborted.
    STA would NOT ever reconnect unless rebooted.
  • Editing of wifi credentials via debug port required a reboot to take effect.
  • Fixes introduced bug in V3.4.9 where menu timeout always landed on detailed menu

WITHDRAWN

New Features

  • New Comms Settings menu loop.
  • telnet debug log now includes messsages previously exclusive to the serial port.
  • Can now connect to hidden SSIDs, provided it is the FIRST SSID defined in the Afterburner.
Bug Fixes
  • STA scan interval was far too short for reliable network detection.
  • Failure to detect a known SSID resulted in future STA retries being aborted.
    STA would NOT ever reconnect unless rebooted.
  • Editing of wifi credentials via debug port required a reboot to take effect.

New Features

  • Option to enable retention for MQTT /sts topics. Configured via MQTT debug menu (telnet/serial).
Bug Fixes
  • Removed filtering on JSON glow volts and current, caused lingering glow power on web page when actually off!
  • Stop/Start only timers would not clear if set for "once".
  • Integrated Fuel usage gauge was incorrectly scaled.
  • Frost mode would enter retry lockout if frost stop was set too low.
  • Cyclic + Frost thermostat modes would suspend, then cancel once stopped (suspend completed).
  • NVS storage was being polluted with system wifi info unnecessarily.
    It is alleged this eventually caused wifi issues after an extended period when NVS fragmentation became rife.

CAUTION

The use of non volatile storage has been further optimised with this release.
Your existing settings will be brought forward OK, but it will not be possible to return to an earlier firmware without re-entering many parameters:

  • GPIO configuration
  • Heater tuning parameters

New Features

Extended thermostat range
  • 64 steps at either 0.5°C or 1°C resolution (1°F / 2°F)
  • Minimum can be defined.
    Default is now 3°C @ 0.5°C => 3°C -> 34.5°C max.
    This can be changed if desired via the debug menu system (telnet or serial).
Timer behaviour changes
  • Limited retries in case of heater errors being reported.
  • Can now explicitly set an optional temperature or fixed power (Hz) for the timer event.
Low Voltage Cutout
  • User adjustable holdoff added.
    Low voltage must persist longer than this interval to throw the LVC error.
    Was previously a fixed 10 second timeout, new default is 60 seconds.
  • Now reported as "E-13: Low Volt Cutout"
Cyclic mode
  • New standalone OLED menu, removed from Thermostat Mode menu.
  • Limited retries in case of heater errors.

Frost Mode
  • Maximum thermostat setting is no longer applied (and shown) for frost start/stop mode.
  • New extended features, accessed by holding the RIGHT button
    • Maximum power limit, only applies during a frost mode run.
    • An optional "soak interval" to keep the heater running for a while once the target is reached in start/stop mode.
      The thermostatic frost modes will continue to run for only this period of time, they previously required the user to manually cancel frost mode.
    • Optional "start allowed" time period so heater can only be started by frost mode when within the conditional start/stop time window.
  • Limited retries in case of heater errors.
New GPIO input modes
Extended parameters are accessible by holding RIGHT for one second.
  • Permit & Inhibit modes.
    Start requests are conditional upon the input being in the correct state.
  • Pulse counter. eg for water flow meters.
    To ensure persistence of the counter across system power downs, it is recommended to add an I2C EERAM device (47L04) which unfortunately are difficult to source at the moment.
New GPIO output modes
  • Temperature Sensitive output modes
    These extended parameters are accessible by holding RIGHT for one second.
    • Nominal threshold.
    • Hysteresis.
    • PWM or hard digital switching is available.
      PWM behaviour:
      • 100% duty at the defined threshold and proportional thoughout the hysteresis range.
      • eg: if the rule is "> 25°C" and the hysteresis is 10°C, PWM will be 100% at 25°C and over, 0% at 15°C and below, proportional between those bounds.
      • On the contrary, if the rule is "< 25°C" and the hysteresis is 10°C, PWM will be 100% at 25°C and UNDER, 0% at 35°C and OVER.
    • Can be made conditional, eg GPIO input active, or heater on/off.
    • Can use a sensor other than the primary thermostat (if fitted).
  • Ventilation mode.
    Requires additional user assembled electronics to operate the heater's fan under PWM control.
New GPIO analogue mode
  • Fuel Sender.
    Allows mapping of the practical maximum ADC reading from the external circuit to be presented as 100%.
    eg the typical recommended constant current circuit max's out at ~ 60% ADC FSD.
OLED menus
  • Status change popups now show all events.
  • Cross menu links corrected,
    eg: DOWN from GPIO info menu now takes you directly to the GPIO configuration menu.
  • Cyclic mode now has its own menu.
  • Gauges menu.
    • Presented if a "gaugable" aspect is enabled. eg Analogue input, Fuel usage, Pulse counter.
    • The values behind the gauges can be reset by pressing UP, then selecting the appropriate gauge. Analogue cannot be reset.
  • Reboot option available via Version Info menu (pressing UP).
WiFi
  • Holdoff for STA reconnects is now user adjustable, default being 30 seconds.
  • Improved wifi stability, and faster STA establishment.
  • STA gateway ping.
    Pings gateway IP address. Helps to check connection is up, and also keeps router connection alive in some instances.
JSON
  • Fuel usage counter can now be set to a value, instead of just reset.
  • Glow plug hours can be set.
  • Run hours can be set.
  • Afterburner's SSID provided so webpage can show which device is attached for those with more than one unit.
  • In a similar vein, although nothing do with the JSON stream, those using MQTT via the web content can now assign a "friendly name" which will likely be much clearer than the topic prefix.
    Also multiple predefined MQTT clients can be selected from a title bar drop list.
New interpreted heater faults
  • E-13. Low Voltage Cutout.
    Previously used to be E-01, but now separated to better distinguish from the heater ECU error.
  • E-14. Faulty heater temperature sensor.
    Detects heater starting when not commanded to, the typical issue being a faulty body temperature sensor.
Bug Fixes
  • Frost Mode parameter saving.
  • Correctly replaces prior frost mode demand (if active) after a reboot.
  • Heater data signal raised high ASAP after reboot.
    Newer ECUs are prone to start if the data line is held low for too long.
  • Debug serial regularly sends XON to ensure user commands from terminal software are not choked off.
  • Fixed Hz operation would stop the heater if Stop/Start thermostat mode was the previously selected thermostat mode.
    This should is now suppressed when using Fixed Hz.
  • Thermostat window width was incorrectly reported when using Fahrenheit mode.
  • Median filter used to suppress rogue DS18B20 sensor readings.

RECOMMENDATION

Please nudge any one of the heater's tuning parameters, then save.
Restore the changed setting to the original value and save again.
This ensures the heater's ECU is thereafter always in sync with the Afterburner's tuning parameters.

CAUTION

The use of non volatile storage has been optimised with this release.
Your existing settings will be brought forward OK, but it will not be possible to return to an earlier firmware without re-entering many parameters:

  • GPIO configuration
  • Timer configuration
  • Thermostat Mode
  • Wifi mode settings (STA/AP, Tx Power)
  • MQTT configuration

New Features

Temperature demand resolution
  • Temperature demands are now either 0.5°C or 1°F resolution, according to the presentation mode.
  • As a result, Fahrenheit demands are no longer tied to 1°C steps, ala 1.8°F steps.
  • It is highly probable your current desired temperature will be lowered upon the initial reboot.
    Simply adjust back to your desired setting, noting it now changes by 0.5°C or 1°F steps.
  • You will also need to update the web content to the matching V3.4.4 Webburner release.
    If you fail to do so it will still function, but temperature changes will be limited to 1°C resolution.
Bluetooth
  • Module can be held in reset, disabling access.
  • This requires more recent physical hardware to correctly function. typ. V3.5+ PCB revisions
Cyclic mode
    Stop / start thresholds can now be moved closer to the desired setpoint.
  • Stop threshold can be lowered to +1.5°C +3°F over the desired temperature. (prev limit was +2°C +3.6°F)
  • Restart threshold can be raised to +1°C +2°F over the desired temperature. (prev limit was 0°C 0°F)

Temperature sensitive GPIO outputs
  • Can use the reading from an additional DS18B20 sensor, no longer just the primary thermostat sensor.
  • Switching hysteresis of the output can be adjusted. Previously was a fixed 0.5°C.
  • GPIO output mode "less than threshold" is now a separate selection. This allows temperatures below 0°C to now be defined.
User defined Thermostat Power Limits
  • When operating under thermostat control, the maximum and minimum fuel rates can limited.
    • Default range matches the tuning limits.
    • Fixed Hz operation always fully utilises the available range.
  • This does not alter the tuning end points, but allows the power variation during thermostat operation to be limited within tighter bounds.
  • The matching V3.4.4 Webburner release supports adjustment via the "System Settings" page.
    Settings can also be changed on the OLED by pressing down at the intial "Thermostat Mode" OLED screen, revealing the "User Power Limits" screen.
Bug Fixes
  • Nasty bug in web server library caused the web server to latch up, requiring a reboot to unstick.
    • It would not accept new connections nor any websocket activity on existing connections.
    • Typically induced via the "Update" button in the "System Functions" area of the web page.
  • The Start Qualification menu was incorrectly placing and labelling the desired temperature.

RECOMMENDATION

Please nudge any one of the heater's tuning parameters, then save.
Restore the changed setting to the original value and save again.
This ensures the heater's ECU is thereafter always in sync with the Afterburner's tuning parameters.

New Features

Alternate tuning settings can be readily brought into service (or saved).
Manipulation is ONLY via the latest web content, which must be installed separately.

User defined splash screen is now removed from non volatile storage, and simply a file in SPIFFS.
It must be named "splash.bmp", a 128x64 monochrome, 16 or 256 colour bitmap otherwise it will be ignored.

Bug Fixes, introduced by V3.4.1
  • When upgraded from an earlier release, settings changes tended to fail. Was OK with 100% fresh installs.
  • Timers would not correctly reload after a reboot.

RECOMMENDATION

Please nudge any one of the heater's tuning parameters, then save.
Restore the changed setting to the original value and save again.
This will ensure the heater's ECU is thereafter always in sync with the Afterburner's tuning parameters.

WiFi improvements
  • Wifi latency greatly improved, ping typically < 2-3ms.
  • Web page timeout increased to 30 seconds
    Avoids the majority of "Connecting..." issues when loading web content.
  • Defaults to Medium High power instead of Minimum power
  • Wifi can be configured using debug port (serial or telnet) via new "wifi" menu, instead of using Wifi CFG mode.
  • Static IP available if desired.
  • If STA is failing, it is held off for 30 seconds before retrying.
    Previously, frantic reconnect attempts would prevent AP mode serving the web content.
  • Scans and connects to strongest known AP in STA mode, prior behaviour was first in best dressed!
    Can now also have two STA APs defined, strongest known is connected to.
JSON stream changes
  • JSON commands can be directly injected using debug port. '{' must be the first line character.
    Providing the remote JSON parser is able to ignore the usual debug info (ala only accepting data within {} pairs), the heater can be controlled using the hardwired serial port.
    Echoed back received JSON commands replace {} with <> to avoid potential feedback loops.
  • {"TempRemote":X} can be used to supply the ambient temperature from a remote sensor.
    Must be refreshed within 30 seconds or falls back to default DS18B20 (typ. primary) sensor.
  • Absolute pressure now reported via JSON.
  • Received UHF code reported over JSON stream, eg MQTT integration.
    It does not matter if the code is matched by the Afterburner for start/stop/up/down functions, the value is reported regardless.
Low Voltage Cutout limits
extended for lithium battery users:
  • 12V: 9.0V -> 14.0V
  • 24V: 18.0V -> 25.5V

MQTT
  • MQTT reconnect refactored.
  • MQTT ping added to "in channel" stream to confirm broker is active.
New GPIO modes
  • Output: Low fuel warning.
    • flashes when nearing empty
    • full on when empty.
  • Input: Force maximum power if input is active
Self build options
  • Data interface for self builds can now use a mosfet for single wire level translation (experimental).
    • Replaces the 74HCT126 & 74LVC32 single gate logic packages.
    • GPIO16 must be held at 0V to enable the feature.
    • Recommended mosfet is BSS138;
      • Gate: 3.3V
      • Source: GPIO17 with 100k pullup to 3.3V
      • Drain: to usual output stage, 100K drain pullup to 5V.
  • Allow for non SH1106 OLED displays that do not need the 2 pixel bias.
    This is most OLEDs other than the 1.3" unit!
    Configured via "debug" debug port menu.
Bug Fixes
  • MQTT password increased to 39 characters (Adafruit.io needs a 32 char password).
  • Frost mode being active prevented manual stop demands.
  • Frost mode starts did not check if low fuel or LVC.
  • JSON altitude reported as zero if no heater attached.
  • Fuel units selection was not saved.
  • Heater demands are correctly bounded within the max/min values.
  • Clear excess fuel usage error when reseting (zeroing) fuel usage.
  • Fuel tank size had an embarassing wrap around from 0 to 1000L.

New Features:

  • If screen is visible (dimmed), the initial key press will increase the brightness and also be effective.
  • Heater state changes and changed desired temperature/pump rate will pop up in large text
        Screen is restored to full brightness until dimming/blank timeout.
        Better feedback when using UHF remote fob
  • Start Qualification
        Define the start behaviour when ambient temperature exceeds the defined thermostat level.
        Always start, deny, cyclic suspend if over cyclic stop temperature, or thermostat temperature.
  • Frost thermostat mode>
        Frost start can be made to hold at a defined temperature, or start/stop, or usual thermostat setting.
  • Debug port now requires keywords to enable test and setup features
  • Access to the debug and setup functions can be password protected
  • Heater voltage offset can be adjusted to better match reality (0.1V resolution)
  • Total fuel usage
  • Unified GPIO functions.
      Either digital input or output port now have the same modes available.
      If you have been using GPIO, please make sure the GPIO functions are still as desired, they may well change
  • New GPIO functions
    • Input
        Boost (full power) mode
    • Output
        Activate if temperature relative to the current thermostat setting is above or below the defined difference.
  • Bluetooth
      Support for Bluetooth BLE modules - requires V3.4+ Afterburner hardware, Classic mode is still usable.
      Bluetooth name and PIN can be redefined
  • 433MHz Remote setup screen only available if a signal has been detected from the 433MHz receiver module.
  • Temperatures correctly show as Celsius or Fahrenheit throughout the menu system.
        Internally, everything still operates in Celsius, so 1.8 degrees Fahrenheit resolution.
  • Fuel usage can be reported as Litres, US Gallons or Imperial Gallons.
  • Maximum fan speed upper bound increased to 6000RPM.
  • Timer enhancements
         Timer can be Interval, Stop, Start, GPIO function
  • Define the Wifi transmitter power
         Minimum (-1dBm/~1mW) through to maximum (+19.5dBm/~100mW)

Bug Fixes:

  • Numerous corrections made to various wifi functions.
  • Many unexplained crashes were due to errors in wifi traffic, especially weak signal situations.
  • RTC time corruption
        The actual cause of corruption should now be resolved.
        False timer starts due to incorrect time are now not possible.
  • Incorrect start denials due to Low Voltage Cutout.
  • Factory default was not saving!
  • False reports of no heater present

V3.2.2 

Bug Fixes:
Fixed issue with firmware updates failing after fitting a 433MHz receiver.

Development Changes: 
Arduino package needs to be patched to prevent core panic in RMT ISR handler.

V3.2.1 

New Features:
Support for 433MHz key fobs

Bug Fixes:
Parallel running with an OEM controller may fail

Development Changes: 
Bluetooth module initialisation changed to allow newer HC-05 modules to work.
   Should be backwards compatible.
   Bluetooth comms are now 4x faster as a bonus.

V3.2.0 

New Features:
Stop/Start thermostat mode
Timers can now use a defined temperature.
   This temperature overrides the default setting when the timer starts.
   Setting to zero maintains the existing desired temperature.
   The new set point can still be changed if desired when the timer is active.
   Next use of the timer reverts to the setting stored for the timer.
Timer is now tenacious
   V3.1.8 introduced start requests being ignored if the current ambient temperature is over the desired
   temperature.
   If a timer fails to start the heater and the timer is still active, it will retry every minute if not running.
Optional excess fuel usage shutdown.
   Avoids needing to reprime fuel line by stopping heater prior to anticipated lack of fuel.
   Warning threshold to give warning that fuel is getting low.
   User must manually reset usage after refilling tank.
GPIO options
    New GPIO input option to reset fuel  usage (eg push button near fuel tank, > 1 second hold)
    GPIO "Start" input is now time sensitive. A closure < 1.5 seconds will start the heater, longer will stop the heater.
    New "Heater Active" GPIO output mode.
New web page update menu (requires STA connection):
   Pulls and automatically installs the latest Afterburner web content from the afterburner.mrjones.id.au web server 
New STA status menu:
   IP address.
   STA gateway address.
   RSSI of STA WiFi connection (Received Signal Strength Indicator).
WiFi header icon grows according to RSSI.
Option to select STA only WiFi mode. Fails back to AP only if STA not achievable.
MQTT topic prefix is now fixed and based upon the last 3 octets of the STA MAC address:  eg:AfterburnerAB01CD
Afterburner only uses "active" mode on the blue wire interface for a short period after a deliberate change to the stored heater settings occur (fuel mixture, system voltage, fan speed & glow plug power).
JSON reporting of Altitude and Humidity info from BME280 sensor if fitted.
Timed moderation of known frequently changing JSON variables.
Port 80 websocket - requires different web content, but simplifies port forwards over a router.


Bug Fixes:
Cyclic mode was not correctly engaged if heater was started due to Frost Mode, and set for user shutdown.
Suppress delivery of GPIO JSON information if no GPIO capability is installed on PCB.
Low Voltage Cutout must be below threshold for more than 10 seconds before a shutdown of the heater is initiated.
MQTT settings adjustment on Afterburner no longer requires a reboot.
FreeRTOS queues added to AsyncTCP to better isolate event callbacks from potential conflicting system calls that may cause watchdog reboots.
Improved behaviour storing float and string non-volatile settings.
Telnet/debug port interface:
  Proper handling of CR/LF (enter key) when entering strings (eg MQTT setup).
  Able to properly erase MQTT username/password.
MQTT status screen now scrolls lines longer than 20 characters instead of wrapping over next line.
External Thermostat mode would not start if ambient above Afterburner's desired temp (internal thermosat should be ineffective).

Development Changes:
Requested temeprature changes are now handled via the Timer Manager.
Entirely new web server library, allows websocket on same port as HTML is served.
Also allows https, but is not yet stable enough for release so disabled.

V3.1.9 

Bug Fix:
Factory default could not be effected.
This was due to the revised menu base classes not being used correctly.

V3.1.8 

New Features: 
Added support for I2C BME280 - temperature, altitude & humidity. 
Added support for up to 3 parallel DS18B20 sensors, user can define role of each sensor. 
Added "Frost mode"
Added "High humidity start mode" (requires BME280).
Start requests are ignored, or immediately advance to cyclic suspend, if too warm.
Debug messages are suppressed when entering setup strings via debug port / telnet.
Temperature sensitive GPIO output capability added

Bug Fixes:
Using AsyncTCP to avoid watchdog reboots in MQTT connection and Web Update version update checks
TelnetSpy patched to allow telnet connection in AP only mode
Body temperature now signed, avoids 65535C for -1C
Low Voltage Cutoff prevented usage on lower voltage lithium battery systems, even when disabled.

Development Changes:
Support for ESP-PROG JTAG source level debug: 
      Requires USE_JTAG 1 in BTCconfig.h and moving DS18B20 to pin 33 from 15.
      Pullup must also be removed from pin 15.
      Best to use Mk1 PCB as all pins are un allocated and available on header other than pin 15.
New menu base class, cleaner headers
Timing of Half Duplex gating signal managed by real time timer.

V3.1.5 

The defacto standard release for a very long time

New Features:
Support for simple menu, or no heater menus!
Fast switch to heater tuning from detailed menu, hold left and right buttons.
Option to remember menu password for 24 hours (avoid needing re-entry)

Bug Fixes:
Incorrect extraction of demand when in Fixed Hz mode.

V3.1.3 

11 Sep, 2019

Bug Fix:
Unable to disable WiFi.
STA reconnect added to V3.1.2 caused AP mode to always be started after 10 seconds.
If WiFi was disabled from STA+AP mode the Afterburner would panic and reboot every 10 seconds due to WiFi restore attempt but not correctly initialised. :-(

V3.1.2 

8 Sep, 2019

New Features:
MQTT.
External Thermostat timeout, allows single contact closure from an external thermostat to both start and stop the heater, as well as the usual high and low fuel rates.
12 hour clock presentation mode.
JSON watchdog allows link monitoring, especially for STA connections using MQTT.

Bug Fixes:
STA connections are now restored should they drop out (or not established at boot). 
Non ASCII character in JSON output for external thermostat mode led to unstable webssocket behaviour and watchdog reboots.

V3.0.3 

10 Aug, 2019

New Features:
Added support for an external thermostat contact closure via digital GPIO input 2. Heater runs at full power when closed to ground, idle power when contact is open.
Need to enable the GPIO function and also set external thermostat in the thermostat modes setup to enable this function.

V3.0.2 

3 Aug, 2019
Bug Fix:
Web update would undergo a watchdog timeout before the entire download had been completed and verified.

New features:

Supports GPIO less operation.
Timer icon back to small size, time of next start/stop can be presented by pressing centre key in base menus.
Customisable splash screen. Standard splash screen

V3.0.1 

30 July, 2019
Bug Fixes:
Minor screen residual update elements dealt with.

V3.0.0 

28 July, 2019
New Features:
Fuel consumed gauge.
Hour meters for run time and glow plug.
System uptime.
Programmable low voltage cutout.
Temperature probe offset.
Enhanced embedded web pages. More cohesive for firmware update, system reboot, file systyem re-formatting.
Web server now supports .gz files, saving precious file system space.
Revised menu structure - introduction of a trunk menu, branching to Root, User settings, System settings and Heater tuning menu loops.
Firmware uploads now verify the binary is truly suitable for the Afterburner. Invalid binaries are rejected.

Gotchas:
The SPIFFS partition has shifted from older versions which may result in web browser errors.
Using a web browser, please access the "http://yourAfterburnerIPaddress/update" page.
Enter the Afterburner/BurnBabyBurn credentials and use the Format SPIFFS button.
Then reload the web content as instructed.

V2.3.4 

29 June, 2019
Enhancements:
DS18B20 one wire communication is now managed via the RMT peripheral which ensures valid bit timing being a hardware device. Stability of sensor readings is now rock solid, undisturbed by activity on WiFi or Bluetooth.

Variables that maintain their value over a warm reboot are now used for cyclic, temperature and pump demands.
These will revert to defaults upon a power cycle, firmware update, or hard reset.

JSONpack reaplces JSONloose as the method to control the delivery of single line JSON data over Bluetooth.

Timing of actual NV storage is better managed to avoid disturbing blue wire communications.

V2.3.3 

25 June, 2019
Bug Fixes:
Temperature sensor readings were disturbed when new temperature demands were being received from web or Bluetooth clients.
Websocket timeout seems to be a lot more stable, this may be related to some subtle syntax issues detected when migrating to PlatformIO for development....

Note:
The application is now built via PlatformIO which sports a stricter and more verbose compiler than the prior Arduino based environment.
It is suspected this may have solved a long standing issue with websocket communications entering a perpetual 10 second timeout for each JSON batch emitted. This dramatically affected the operation.
If you do still experience inordinate websocket delays please contact me: afterburner@mrjones.id.au 

V2.3.2 

16 June, 2019

Bug fixes:
Next timer icon would only appear if a new firmware update had been detected.

Fixed Hz operation with Linear Hz enabled or Cyclic thermostat mode now behaves correctly., this was by separating desired temperature and desired pump rates internally (previosuly the same value).
If using cyclic mode with a Fixed Hz demand, first set the desired temperature whilst in thermostat mode, then switch to Fixed Hz mode.
Overtemp shutdown and restart are then relative to the thermostat's set temperature.

Factory default did nothing!

Intermittent comms timeouts do not throw E-07 immediately, these would also cause heater shutdown if Cyclic mode is enabled.

New features:
Cyclic mode extents are drawn against current temperature bulb in Detailed GUI.

Bluetooth JSON can be forced to single line and element mode.
This is for 3rd party SPP applications that cannot handle JSON blocks well, eg "roboremo".
{"JSONloose":1} must be sent to the Afterburner over Bluetooth or Websocket to enable this mode. 
The new setting is recorded in non volatile storage for future JSON usage.
This only affects the JSON stream over Bluetooth.

Classier startup splash screen.

V2.3.1 

6 June, 2019
Bug fix of incorrect non volatile storage.
JSON nouns added to allow GPIO monitoring & control.

V2.3.0 

3 June, 2019
Now supports Web Update and browser updating of firmware.
Web update is initiated via Version menu in User Settings menu loop.
Browser update can also be used to update the HTML files saved to SPIFFS used for the web server.
Timer data is no longer sent by default upon new client connections. This requires a new Android Bluetooth app to support.
Improved Wifi traffic animation, was mushed into OTA annotation when OTA was enabled.
OTA progress now reported on OLED. Works for classic OTA, browser update or web update.
Can install factory defaults for stored NV settings via Version menu in User Settings menu loop.

V2.2.3 

11 May, 2019
OTA updates would not reboot using AP only.
OTA update progress appears on OLED.
DegF values shown in advanced thermostat menus when degF mode is enabled.
Advanced Thermostat Menu un-cramped about cyclic stop/start values.
Cyclic thermostat settings were not being retained correctly.
Tidied Bluetooth setup.
New Bluetooth Android app.
SoftAP and Bluetooth servers now use the name "Afterburner".

V2.2.2 

9 May, 2019
websocket 10 second timeout issue

V2.2.1 

27 April, 2019
Added graphic icons in User Settings menus

Designed with Mobirise - Try here