Heating Programmer Home


Enhanced 5/2-day 
Central Heating Programmer
with serial computer interface

  • Serial CLI Operation

Serial CLI  Operation

The serial interface operates at 9600bps using 8 bits, no parity, 1 stop bit.  The programmer does not implement any handshaking or flow control.  If automated control of the interface is used it must monitor the output to ensure a CLI command prompt has been received before sending the next command otherwise the programmer input will overrun. 

At power up the programmer sends a VT100 [ESC] c command followed by the text 'CH Programmer' to the serial interface and then a '#' command prompt.

The programmer uses a '#' as the command line prompt and '?' when a Command Line Interface (CLI) command was not recognized or was invalid.  After sending a '?' a '#' prompt will always be sent on a new line.

The CLI does not support the backspace function or editing keys. 

If more than 16 characters are entered without pressing enter the line is aborted and a '?' prompt is sent to the serial I/F followed by a new CLI prompt. 

When the programmer is being setup from the front panel the serial CLI is disabled.


u[cChH] c - Central Heating relay off
C - central heating relay on
h - Hot Water relay off
H - Hot Water relay on
m[cChH] c - Central Heating program mode 
C - Central Heating manual mode 
h - Hot Water program mode 
H - Hot Water manual mode 
display status of heating and hot water control relays and manual mode settings for each output. Human readable format.
ds returns status byte in ASCII HEX. Intended for use with automated operation of programmer via the serial interface
 76543210 ; 
 ||  ||_______ CH on=1, 0=off 
 ||  |________ HW on=1, 0=off 
 ||_______ CH manual=1, program=0
 |________ HW manual=1, program=0

Hi Nibble              Lo Nibble
0 = CH prog, HW prog   0 = CH off, HW off
4 = CH man, HW prog    4 = CH on, HW off
8 = CH prog, HW man    8 = CH off, HW on
C = CH man, HW man     C = CH on, HW on  

This command will only return the combinations of Hi and Lo nibbles shown. Any other value returned should be treated as invalid data.

dw returns number of Watch Dog Timeout (WDT) resets that have occurred since power-up as a BCD ASCII byte.

This value is also displayed on the LCD front panel.

t display day and time
s d hh:mm  set time to day d, hour hh, minutes mm. Seconds are reset to 00
 day 1 = Monday thru day 7 = Sunday
f[ed] Front Panel lock-out
e - Front panel buttons enabled
d - Front panel buttons disabled

When disabled the LCD display shows 'Locked' in the centre of line 2. See also

This setting is non-volatile, cycling the power to the programmer will not clear a locked front panel.

display program entry settings. Displays all ten program entries. Free means the entry is not in use. Other settings are displayed using the following format.

pn [-hH] [-cC] [Week, w/E, All] hh:mm

n = program number from 0 to 9
- =no change. c or h =output off, C or H =output on.
hh:mm time-of-day setting will be activated

p[n]x  erase program number n, where n is 0 thru 9 
p[n] [hHcCawe] hh:mm


Example of  program entry from the terminal CLI

# p8 ech 23:55
hc w/E  23:55
# p2 aC 09:45
-C All 09:45



set program number n, where n is 0 thru 9

 h for Hot water off.  H for Hot water on
 c for Central heating off. C for Central heating on  

 a All days. w Week days only. e Weekend only
  These entries can be entered in any order  

  hh:mm time to activate setting

After accepting an entry the CLI sends the program entry setting back to the terminal.

example 1: p1 Hw 09:15
Program entry 1, HW on,  weekdays only at 09:15

example 2: p2 caH 18:05
Program entry 2, HW on, CH off  everyday 18:05 

 v  send firmware version text to serial terminal
 V  send VT100 '[ESC] c' command - reset to initial state - to terminal
 *** Commands for development and diagnostics ***
 +++ these commands only available in v2.0.2 firmware +++
R PIC will do a software restart by executing a GOTO 0x00 instruction
w aa dd write byte dd to DS1307 RTC address aa (values in hexadecimal)
r aa n read and display n bytes from DS1307 RTC starting from address aa
q Set RTC seconds register to 57
Q Set RTC day register to 1 (Monday) and the RTC time to 21:59:57
H enter into an infinite loop - causes a WDT restart

All commands are case sensitive.
All times should be entered in 24Hr format.

Example of serial terminal session with the programmer