Provided by: brickos_0.9.0.dfsg-12.1_amd64 bug


       firmdl3 - A firmware downloader for the RCX.  Version 3.0.


       firmdl3 [options] srecfile


       This manual page documents the firmdl3 kernel download command.

       firmdl3  is  a  program  which is used to download the brickOS kernel (firmware).  firmdl3
       Supports single and quad rate downloading (quad-rate is default).

       Quad-rate downloading is a feature that significantly reduces firmware download times.  It
       is  implemented  on  top  of  a  fast  serial  protocol  that  has  a 2x baud rate with no
       complements or parity bits.  The fast protocol is enabled by a short  firmware  stub  that
       reconfigures  some control registers and tweaks some ROM program state.  Once the firmware
       stub is downloaded and executed, the ROM responds to the fast serial protocol,  which  the
       downloader  then  uses to transfer the actual firmware file.  Because the initial firmware
       stub is small, all but the most trivial programs see  a  download  time  improvement  when
       using quad-speed downloading.

       The  caveat  to  using  quad-speed  downloading is its sensitivity to lighting conditions.
       Getting quad-speed downloading to work right might  require  some  trial  and  error.   In
       addition  to  avoiding  harsh lighting conditions, it is important to place the RCX around
       4-12 inches from the IR tower.


       This program follows the usual GNU command line syntax, with long  options  starting  with
       two dashes (`-').  The options supported by firmdl3 are:

       -h, --help
              Show built-in help (summery of options)

       -f, --fast
              Use 'fast' (4x) download algorithm (default)

       -s, --slow
              Use 'slow' (1x) download algorithm (Use if experiencing download problems)

              Specify serial serial tty where IR tower is connected.

              NOTE: The environment variable RCXTTY may be used in place of -tty

              Enable debugging. (Mostly displays raw bytes).


       firmdl3 will respond to the environment variable RCXTTY.  This should be set to the serial
       device to which the IR tower is connected.  Use of RCXTTY is equivalent the using the -tty
       command-line option.


       firmdl3 is a simple command to use.  The following examples show most of the uses.

       Ex1: download the brickOS kernal to ttyS0.

          $ firmdl3 -tty=/dev/ttyS0 /usr/lib/brickos/brickOS.srec
          Transferring "Fast Download Image" to RCX...
          Transferring "/usr/lib/brickos/brickOS.srec" to RCX...

       Ex2: download the brickOS kernal to ttyS1 (set env var 1st).

          $ export RCXTTY=/dev/ttyS1
          $ firmdl3 /usr/lib/brickos/brickOS.srec
          Transferring "Fast Download Image" to RCX...
          Transferring "/usr/lib/brickos/brickOS.srec" to RCX...

       Ex3: download the brickOS kernal using slow protocol (assumes RCXTTY is already set).

          $ firmdl3 --slow /usr/lib/brickos/brickOS.srec
          Transferring "/usr/lib/brickos/brickOS.srec" to RCX...

       NOTE: the missing indication of the "Fast Download Image" being sent.

       We'll  leave the experiment of running firmdl3 with --debug set as an exercise for you our
       reader... (You really interested in seeing all the bytes fly by? ;-)


       (excerpt from brickOS HOWTO)

       delete firmware failed
              Because of a  limitation  in  the  Lego  firmware,  firmdl3  cannot  delete  LegOS.
              Instead,  before  downloading  the  new firmware, you must first stop the old LegOS
              program, and then hold down the Prgm button while hitting the On/Off  switch.  This
              will  delete  the old LegOS firmware, allowing a new download.  Alternately, if you
              see no green light on the IR box and get this error message, it  may  indicate  you
              have a dead battery in the IR tower.

       /dev/ttyS0: Permission denied, com1: Permission denied, or a similar message.
              The  first  part  of the error message is the output port that firmdl3 is trying to
              use. This can mean two things. Either you have specified the wrong  device  or  you
              have specified the correct device but do not have permission to access it. If it is
              an access problem, speak to your sysadmin.  If not, you can use the --tty  argument
              to specify another device. For example, to specify the standard device under linux,
              try ´firmdl3 --tty /dev/ttyS0´. Under cygwin, you probably  probably  want  to  use
              ´firmdl3  --tty  com1´.  If  you  discover  that  this is the case, you may wish to
              recompile firmdl3 to make your setting the default.

       /dev/ttyS0: Input/output error or a similar message.
              You forgot to plug the tower in, most likely.

       unlock firmware failed
              This indicates that there was a slight corruption in the  download.  Clear  brickOS
              and download it again.

       no response from RCX
              This  error  should  be called "you forgot to turn on your RCX, moron." If I hadn't
              done it about 10 million times, I'd submit the patch to change the error myself.

       If firmdl3 gives you repeated problems, you may want to try  using  the  --slow  argument,
       which  will  make  your  download much slower but can correct for certain errors caused by
       ambient light.




       Laurent Demailly, Allen Martin, Markus Noga, Gavin Smyth, and Luis Villa  all  contributed
       something to some version of firmdl3.

       firmdl3 was written by: Kekoa Proudfoot
       <> - 10/13/99

       This  manual  page  was  written  by Stephen M Moraco <>, for the Debian
       GNU/Linux system (but may be used by others).