Diagnostic firmware

In case the gateway doesn't work correctly, the diagnostic firmware can be of help to figure out where the problem may be. The firmware provides a number of tests that provide detailed information about various aspects of the gateway's operation. In general, communications between thermostat and boiler will continue while the diagnostic firmware is running. An exception is the test that requires the two interfaces to be connected together.

You can load the diagnostic firmware (diagnose.hex) in a running opentherm gateway using the "Firmware upgrade" option from the File menu of otmonitor. After performing the desired tests, use the "Firmware upgrade" feature again to flash the regular firmware (gateway.hex) back into the gateway. Both the diagnostic and regular firmware are available from the download page.

Test #1: LED test
The LED test will pull the LED outputs of the gateway low one by one. With actual LEDs attached, the effect should be as shown below.
LED test
  • This test can be performed with or without the thermostat and boiler connected.
  • Send a carriage-return character to the gateway to end the test.

Test #2: Bit timing thermostat
When the regular gateway firmware reports many errors instead of thermostat messages, the bit lengths of the opentherm messages from the thermostat may not be correct. This test will report a sequence of high and low times for each message from the thermostat. The times are reported in microseconds. Each value should fall in either of two ranges: Half-bit (400-650 uS) or Full-bit (900-1150 uS). Each message must start with a half-bit.
  • This test must be performed with at least the thermostat connected.
  • Send a carriage-return character to the gateway to end the test.

Test #3: Bit timing boiler
When the regular gateway firmware reports many errors instead of boiler messages, the bit lengths of the opentherm messages from the boiler may not be correct. This test will report a sequence of high and low times for each message from the boiler. The bit timings should be as described for test #2.
  • This test must be performed with at least the boiler connected. If no thermostat is connected, the firmware will generate a test message to the boiler every second.
  • Send a carriage-return character to the gateway to end the test.

Test #4: Delay symmetry
To prevent distortion of the opentherm signal, the delay introduced by each of the opto-couplers for the low-to-high and high-to-low transitions must be similar. This test will measure the delays in both directions.
  • This test must be performed with a loop between the master and slave interfaces.
  • The test ends after both transitions for both directions have been measured.

Test #5: Voltage levels
This test measures the supply voltage (PIC16F1847 only) and the voltage level of the reference voltage. It then performs repeated A/D conversions on each of the two interfaces in turn for a little over one second. It reports the voltage levels it found several times in a row. Normally two voltage levels on each interface are expected to be reported: the logical low and high levels. With some equipment the logical low level inside a message may differ from the level between messages. In such cases three levels can be reported. The reference voltage should be between the high and low levels of both interfaces. At the end of the test the user is prompted for a new reference voltage setting. The available settings are the same as for the VR command. The firmware will attempt to provide a suggested value.
  • On a PIC16F88, the voltage levels are calculated with the premise that the power supply is exactly 5.00V. Any deviation in the supply voltage results in a proportional inaccuracy of the reported results.
  • This test should normally be performed with both a thermostat and the boiler connected.
  • If the existing reference voltage prevents the thermostat signal from being recognized, no messages will be sent to the boiler. This results in only a single level being reported for the boiler. In this case a reference voltage setting between the high and low levels of the thermostat should be chosen. Then repeat the test with the new reference voltage setting to also find both boiler levels.
  • If no thermostat is connected, the firmware will generate a test message to the boiler every second.
  • The test ends after the users enters a new reference voltage setting, or accepts the suggested value.

Test #6: Idle times
Measures the time the line is idle between messages in milliseconds.