serial computer interface
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
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.
||c - Central Heating relay
C - central heating relay on
h - Hot Water relay off
H - Hot Water relay on
||c - Central Heating
C - Central Heating manual mode
h - Hot Water program mode
H - Hot Water manual mode
status of heating and hot water control relays and manual mode settings for each
output. Human readable format.
status byte in ASCII HEX. Intended for use with automated operation of
programmer via the serial interface
|| ||_______ CH on=1, 0=off
|| |________ HW on=1, 0=off
||_______ CH manual=1, program=0
|________ HW manual=1, program=0
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
command will only return the combinations of Hi and Lo nibbles shown. Any
other value returned should be treated as invalid data.
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
||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
e - Front panel buttons enabled
d - Front panel buttons disabled
When disabled the LCD display shows 'Locked'
in the centre of line 2. See
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
hh:mm time-of-day setting will be activated
|| erase program
number n, where n is 0 thru 9
| p[n] [hHcCawe] hh:mm
Example of program entry from the
# 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
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
|| send firmware version text to serial terminal
VT100 '[ESC] c' command - reset to initial state
- to terminal
| *** Commands for development and diagnostics
+++ these commands only available in v2.0.2
||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
RTC seconds register to 57
RTC day register to 1 (Monday) and the RTC time to 21:59:57
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