home | help
X10CM17A(5)		       File Formats Manual		     X10CM17A(5)

NAME
     x10cm17a - HEYU support for the X-10 CM17A "Firecracker"

DESCRIPTION
     Heyu is a program primarily intended for controlling an X-10 CM11A home au-
     tomation  computer interface, however optional support is also included for
     the X-10 CM17A "Firecracker".  The CM17A is a small serial dongle which can
     transmit X10 commands via RF signals to  a  transceiver  plugged  into  the
     power line.  The CM17A and CM11A coexist on the same serial port - no addi-
     tional serial port is required.

     The  combination  of a CM17A and transceiver may be useful as an X10 signal
     bridge between two or more disjoint AC power lines.  Inclusion  of  support
     within  Heyu  allows  the CM17A commands to utilize Heyu aliases for module
     addresses and also allows these commands to be  used  in  Heyu  scenes  and
     usersyns.	 With  Heyu  support,  the CM17A can be used to emulate standard
     X-10 RF remotes and also the RF signals  from  X-10's  "Entertainment  Any-
     where" universal remotes.	Unfortunately the CM17A doesn't seem to be capa-
     ble of transmitting the X-10 RF Pan & Tilt commands.

     As  far  as can be determined there is no version of the CM17A which trans-
     mits at an RF frequency other than the 310 MHz used for X10 transceivers in
     North America.  Therefore an option is provided  to  compile  Heyu  without
     CM17A  support  for users outside North America or simply those who have no
     interest in this device. (See the file "INSTALL" included in the Heyu  dis-
     tribution directory.)

CM17A COMMANDS
     As  with the CM11A, a design objective for Heyu is to support every feature
     of which the hardware is capable.	In the case of the CM17A, Heyu	provides
     more precise control over the RF output than other software.  This plus the
     differing	response of different transceiver types to RF signals leads to a
     degree of complexity which may be confusing to the uninitiated.

     There is no way of detecting the presence or absence of a CM17A on the ser-
     ial port other than by observing the power line signal from  a  transceiver
     (like  an	X-10 TM751 or RR501) which receives the RF transmission from the
     CM17A and converts it to a power line signal.  The CM17A commands will have
     no effect if the CM17A is absent other than a short delay.  All  the  CM17A
     commands may be used in Heyu scenes and usersyns.

     freset		      Reset the CM17A device.
     fon	HU	      Transmit RF On
     foff	HU	      Transmit RF Off
     fbright	H[U] <count>  Transmit RF Brights [after On]
     fdim	H[U] <count>  Transmit RF Dims [after On]
     fdimbo	HU <count>    Transmit RF Dims after Off
     flightson	H	      Transmit RF All Lights On
     flightsoff H	      Transmit RF All Lights Off
     falloff	H	      Transmit RF All Units Off
     farb	xx xx <count> Transmit RF Abitrary two hex bytes
     farw	xxxx xxxx ... Transmit one or more 2-byte hex words.
     flux	<parameters>  Special for the LUX17 and LUX23 front ends.

     The  following  "fast"  commands are coded a little differently and on most
     systems require calibrating a timing loop by running the 'heyu utility cal-
     ibrate' command to work correctly.

     ffbright	H[U] <count>  Transmit RF Brights [after On]
     ffdim	H[U] <count>  Transmit RF Dims [after On]
     ffdimbo	HU <count>    Transmit RF Dims after Off
     ffarb	xx xx <count> Transmit RF Arbitrary two hex bytes
     ffarw	xxxx xxxx ... Transmit one or more 16-bit hex words.
     fflux	<parameters>  Special for the LUX17 and LUX23 front ends.

     The LUX17 and LUX23 front ends for Heyu (available from the  Heyu	website)
     allow  programming  and operating respectively the X-10 UX17A and UX23A RF-
     to-IR converters in the mode for controlling up to  three	appliances  (TV,
     VCR, DVD, Cable box, and/or Satellite receivers) using the cable with three
     IR emitters shipped with those converters.  The <parameters> for 'flux' and
     'fflux' are <count> <post_delay> followed by one or more 16-bit hex words.

     A few technical details about the CM17A operation:

     The  CM17A  draws	its  power directly from the serial port and requires no
     separate power supply.  It is actuated - triggered - by toggling the serial
     port's RTS and DTR control lines 80 times with a specific bit  pattern  for
     the particular command.  Following each actuation, the CM17A by default re-
     sponds  by  retransmitting  the  same RF signal 5 times - what we'll call 5
     "bursts" - spaced at intervals of about 110 milliseconds.	 There	are  two
     significant  bytes  of  information encoded in each burst.  The action per-
     formed by a transceiver in converting the RF bursts to a power line  signal
     depends  on  the  type of transceiver, the number of bursts, and the timing
     between bursts, but differences are normally of consequence only  for  dim-
     ming and brightening commands.

     Heyu  can increase or decrease the number of bursts by repeating the actua-
     tion and/or by cutting off power to the device at the appropriate time  be-
     tween bursts, and thus is able to force the CM17A to transmit any arbitrary
     number  of  bursts  from  one on up.  This differs from other CM17A control
     software like BottleRocket and Flipit which don't attempt any special  tim-
     ing  and merely transmit the default five bursts one or more times.  Unfor-
     tunately, multi-tasking operating systems like Linux and Unix cannot always
     provide the timing accuracy required, especially when  heavily  loaded,  so
     some of Heyu's burst control features may not be reliable on all systems.

     RF  burst control in the range 1 to 5 is provided by the RF_BURSTS configu-
     ration directive for CM17A  commands  other  than	'fdim',  'fbright',  and
     'farb'.  When  thus  configured, each actuation of the CM17A will send that
     many bursts.  The default is 5 bursts.

     The RF signals transmitted by the CM17A for the 'fon' and	'foff'	commands
     include  both the housecode and unitcode.	So although for convenience Heyu
     supports a units list, the signals will be transceived as successive  indi-
     vidual  pairs of address and function codes (in X10 order). E.g., the CM17A
     command 'heyu fon A1-3' will be transceived as:
       addr A3; func A On; addr A1; func A On; addr A2; func A On

     whereas sending the direct command 'heyu on A1-3' via the CM11A results  in
     the power line code sequence:
       addr A3; addr A1; addr A2; func A On

     The  'fdim'  and  'fbright' CM17A commands on the other hand do not include
     the unit code.  So in order that a particular unit is addressed, Heyu first
     executes a single 'fon' command, then follows it with  the  dim  or  bright
     command,  transmitting as many bursts as are specified by the "count" para-
     meter.
     To omit the 'fon' signal from an RF dim/bright sequence,  simply  omit  the
     unit  number,  or	if  more convenient in a scene or usersyn, prefix the HU
     with a '-'.

     With the normal 'fdim' and 'fbright' commands, sufficient time  is  allowed
     between  each  actuation of the CM17A for the transceiver to convert the RF
     signal and send it out on the power line.	The  transceiver  will	normally
     send a separate dim/or bright power line signal for each actuation and this
     will be evident in the Heyu monitor.

     With the "fast" 'ffdim' and 'ffbright' commands, Heyu attempts to space re-
     peated  actuations  of the CM17A close enough together that the transceiver
     will consider the RF bursts to be arriving in one continuous stream - simi-
     lar to holding down the button on a RF remote - and  send	the  power  line
     dims  or  brights	in  a continuous stream.  The resolution of the standard
     kernel timer functions in a multitasking OS like Unix or Linux  is  usually
     not  fine	enough,  so  a timing loop has to be individually calibrated for
     each system.  To do this, run 'heyu utility calibrate' and follow	the  in-
     structions.  (Kernel timers in Linux running kernel 2.6 and later appear to
     have finer resolution and the timing loop calibration may or may not be re-
     quired.)	The  CM11A  can mis-report the X10 power line dim/bright signals
     sent by some transceivers with the fast commands; see the transceiver  sec-
     tion below.

     Note  that the dim/bright count specified for CM17A commands is not equiva-
     lent to the level specified for direct commands to the CM11A.   The  actual
     power line dim/bright signal varies with the varies with the type of trans-
     ceiver used and the number of RF bursts - with an RR501 transceiver and the
     'ffdim'  command,	a  count of about 31-32 is required to span the range of
     fully bright to fully dim.

     Also note that the number of  power  line	dims/brights  transmitted  by  a
     transceiver  usually  increases in steps, i.e., the number of RF bursts has
     to be increased by more than one for the next higher number of  power  line
     dims/brights  to  be  transmitted.   The transition points are dependent on
     both the transceiver and on the number of bursts - you'll have to	generate
     a	table for your particular transceiver by using the Heyu monitor.  Here's
     a short table generated with the 'ffdim' command for  some  transceivers  I
     have:

       Transceived Dim/Bright (Percentage)

       Bursts  RR501 CM15A TM751
	 1	 6%    6%   12%
	 2	 6    12    12
	 3	 6    12    12
	 4	12    15    12
	 5	12    18    12
	 6	17    22    12
	 7	22    25    12
	 8	22    28    24
	 9	27    30    24
	10	27    34    24

     The 'fdimbo' and 'ffdimbo' commands work by first transmitting an 'foff' RF
     signal followed by the specified count of RF bursts.  (A standard X-10 Lamp
     Module  in the Off state responds to power line dims by first turning on to
     full brightness before dimming.)  If the lamp is initially on, this  method
     results in a very noticeable blinking of the lamp off then on again, but it
     is  appreciably  faster  than first sending a suffient high count of bright
     signals to guarantee the lamp is at full brightness before dimming.

     The 'farb'  command  allows  sending  any	two  arbitrary	hex  byte  codes
     (0x00-0xFF) and specifying the number of of bursts in the third parameter.
     The  audio/video control functions of remotes like the X-10 UR81A Universal
     Remote in PC mode can be emulated with this command.  (The UR81A  transmits
     2 bursts of its RF signal in PC mode.)

     As  previously  mentioned,  Heyu inserts a delay following each standard RF
     transmission to allow time for the transceiver to respond	with  the  power
     line signal.  The default delay of 850 milliseconds can be changed with the
     RF_POST_DELAY directive in the Heyu configuration file.

     Since  the desired action from a 'farb' or 'farw' RF signal may not involve
     a transceiver and power line signals, the delay following this  command  is
     separately  specified,  with  a  default  of  850	milliseconds.  It may be
     changed with the RF_FARB_DELAY configuration directive.  (The  'heyu  pause
     N.NNN'  command  can  be used to insert a delay on a command-by-command ba-
     sis.)

     The 'freset' command will reset the CM17A to a power-up state  in	case  of
     lockup or other malfunction.  I've personally never found this to be neces-
     sary, but the command is available "just in case".

     Whether  or  not the CM17A commands themselves are displayed in the monitor
     and log file is determined by the configuration directive	DISPLAY_RF_XMIT,
     which  is	set  to  YES by default.  One quirk is that there's a delay of a
     second or two in the CM11A before it reports receiving the power line  com-
     mand from the transceiver.  So with repeated CM17A commands the monitor/log
     entries  for  the CM17A commands and the resulting power line commands sent
     by the transceiver may not be properly interleaved.   The	only  workaround
     for this would be to set an unreasonably long RF_POST_DELAY.

TRANSCEIVERS
     Note:  Transceiver  firmware revisions may be made at any time by the manu-
     facturer, usually without notice, so the comments below may or may not  not
     be  valid	for  any particular transceiver unit.  The older TM751 and RR501
     transceivers evaluated were acquired about 1997.  The newer  ones	and  the
     CM15A and V572A were acquired in 2004 and 2005.

     The  X-10	TM751 is the transceiver most commonly included in X-10 hardware
     bundles.  It receives a single house code and has	a  medium  RF  reception
     range.   Older models exhibit erratic responses to dims/brights and depend-
     ing on the installation location and antenna orientation may be susceptible
     to "runaway" dims - a feedback effect whereby any RF dim signal results  in
     the transceiver sending a continuous stream of dims over the power line for
     some  period  of  time or until it is unplugged from the power line.  Newer
     models seem resistant to this phenomenon but send a separate 12% power line
     dim for every so many RF dim signals received in a stream.  This  works  OK
     insofar  as  the lamp modules are concerned, but a CM11A with firmware ver-
     sion 1 will report a maximum of three such 12% dims in a row  and	the  dim
     level  maintained	by  the Heyu engine can be incorrect.  The 12% dim steps
     allow about 9 different brightness levels in a standard lamp module.

     The X-10 RR501 receives a single housecode and has a  medium  RF  reception
     range.  The runaway dim phenomenon has been reported for some older models,
     but  not to the extent of the TM751.  The RR501 seems to handle well the RF
     streams transmitted by the "fast" ffdim and ffbright commands.  Older  mod-
     els  of  the  RR501 may not transceive the 'flightsoff' command, but the RF
     signal for this has never been defined by X-10 or	implemented  in  any  of
     their  remotes.  Note that the LightsOff power line signal is not supported
     by standard 1-way plug-in lamp modules like the LM465, but is supported  by
     wall  switches  and  2-way lamp modules.  The RR501 sends powerline dims at
     increments of 6-7%, allowing about 16  different  brightness  levels  in  a
     standard lamp module.

     The  V572A  transceiver by WGL Designs is an all-housecode transceiver with
     an exceptionally long RF receiving range.	By default  it	transceives  all
     housecodes  and  units.   Transceiving  may  be disabled for housecodes and
     units in ranges 1-8 or 9-16, but to date the software to do this is  avail-
     able only for MS Windows.

     Update: Based on our feedback, WGL Designs has fixed the problems mentioned
     immediatly below.

     The  V572A  works	fine for RF on and off commands but unfortunately I have
     found it to be problematic for transceiving RF dims and brights sent  under
     computer  control.   The power line dim/bright level it sends for any given
     RF dim/bright command is not reproducible and can vary by a big factor  ei-
     ther  way.  (Manual dimming control with a remote is usually not as much of
     a problem because of the visual feedback from the lamp.)  Update: Fixed  in
     units manufactured after late 2007.

     The  V572A  does not support the on or off RF signal encoding for units 5-8
     and 13-16 transmitted by the  older  2  and  4  button  X10  wireless  wall
     switches,	or any of the switches where the housecode is set with an inter-
     nal dial and the unit range with an internal slide switch.   Update:  Fixed
     in units manufactured after late 2007.

     The  V572A  mis-transceives  the  flightsoff command as if it were the foff
     command for unit 1.  RF audio/video control signals sent  by  X-10's  UR81A
     "Entertainment Anywhere" universal remote are mis-transceived as power line
     commands  for  housecode  'I'  although  not in a one-to-one correspondence
     which would allow them to be useful.  Update: Fixed in  units  manufactured
     after late 2007.

     The  CM15A  is X-10's intended replacement for the CM11A.	It is controlled
     via USB rather than RS232 Serial and support for any OS other than MS  Win-
     dows  is  in  its infancy.  (Even under Windows there are numerous problems
     evident with both the software and the CM15A firmware.)  The CM15A can both
     send and receive RF signals.  Transceiving is disabled by default	for  all
     housecodes  and  the ActiveHome Pro Windows software is required to (selec-
     tively) enable them, but once enabled the CM15A can  be  disconnected  from
     the  computer  and  used as an all-housecode transceiver.	Its RF receiving
     range is fairly low, but some users have improved it with a hardware  modi-
     fication  to  replace  the short built-in antenna with an external antenna.
     The CM15A works very well with all RF commands.  After the first few  steps
     it  sends powerline dims at increments of 3-4%, allowing about 30 different
     brightness levels in a standard lamp module.  Were it not for the short re-
     ceiving range it would be an excellent choice for a transceiver.

RF RECEIVERS
     If you have an X-10 MR26A or a WGL W800RF32A RF receiver and  an  available
     serial  port,  the  RF bytes transmitted by the CM17A (or an RF remote like
     the HR12A PalmPad) can be viewed directly by running one of  the  following
     shell  scripts  in  a terminal window.  Update: Heyu now supports these two
     receivers to input RF data directly.  See man page x10aux(5).  The  scripts
     may still be useful if you want to see the raw RF bytes.

     ------------ mr26a.sh --(cut here)--------
     #! /bin/sh
     # Display output (hex) from an X-10 MR26A RF receiver
     # Significant bytes are bytes 3 and 4, i.e., XX and YY
     # in the displayed sequence "d5 aa XX YY ad"

     if [ $# -ne 1 ] ; then
       echo "Usage: $0 <serial port>"
       exit
     fi

     echo "Reading MR26A on port: "$1
     stty -F $1 9600 cs8 raw cread clocal -parenb -cstopb -echo
     cat $1 | xxd -g1 -c5
     --------------(cut here)-----------------

     ------------ w800rf32a.sh --(cut here)---
     #! /bin/sh
     # Display output (hex) from a WGL W800RF32A RF receiver
     # Significant bytes are bytes 1 and 3, i.e., XX and YY
     # in the displayed sequence "XX ~XX YY ~YY"

     if [ $# -ne 1 ] ; then
       echo "Usage: $0 <serial port>"
       exit
     fi

     echo "Reading W800RF32A on port: "$1
     stty -F $1 4800 cs8 raw cread clocal -parenb -cstopb -echo
     cat $1 | xxd -g1 -c4
     --------------(cut here)-----------------

AUTHORS
     Charles W. Sullivan (cwsulliv01@heyu.org)

SEE ALSO
     http://software.x10.com/pub/manuals/cm17a_protocol.txt
     heyu(1), x10config(5), x10scripts(5)

				      local			     X10CM17A(5)

home | help