RCX Firmware

When you turn on the RCX for the first time or after it has been without power for more than a few minutes, it is in a state in which it can not be programmed and will only run its built-in 3 standard programs. At this stage, the RCX display will look like this:RCX display without firmware

To start programming, you first need to upload the RCX firmware. Think of it as a mini operating system that needs to be installed to be able to use all features of the machine. Uploading can be done using the NQC command:

nqc -firmware  firm0332.lgo

During upload, you will see a counter running on the RCX display. For a small firmware like 0309 this will counter run up to 1591, which can take a while. For a larger firmware such as 0332 it will run to around 2500 (I wasn’t looking!), so you can get coffee.

Several firmware versions have been released by LEGO over the years, and there have also been user-built modified versions of the RCX firmware, either improving on the LEGO firmware or building a completely new system from scratch. As far as I know all of these versions have all been available to the public. I am reposting the ones I have here as they have started disappearing from the Internet.

Official LEGO firmware:

firm0309.lgo: RCX firmware version 3.09.
This version came with the LEGO MindStorms Robotics Invention System version 1.0 and 1.5.

firm0328.lgo: RCX firmware version 3.28.
This version came with the LEGO MindStorms Robotics Invention System version 2.0

firm0332.lgo: RCX firmware version 3.32.
This version came with the last Robotics sets with the RCX released by LEGO Education. As far as I’m aware , this is the last version ever released by LEGO.

NOTE: it does not matter which version RCX you have; the 3.32 firmware will work fine on your old RCX 1.0! If you are using the standard LEGO MindStorms software or NQC, I would recommend using version 3.32.

After uploading LEGO firmware, the RCX display will display the time in hh:mm, which will be 00:00 since it has no internal clock. RCX display LEGO firmware

Dick Swan firmware

Dick Swan from Robomatter (the author of RobotC) wrote some versions of custom RCX firmware, aimed at increasing its speed and adding more features. Earlier versions were fully compatible with the LEGO firmware. Later versions contain enhancements that made it incompatible, but these can be used with the RobotC for RCX software.

fast0103.lgo: 10 times faster than the LEGO firmware but very compatible.

fast0612.lgo: 50 to 100 times faster execution speed than standard LEGO firmware.
Float and long variable support. Full featured debugger support: breakpoints, suspend/resume, single step execution, full set of fast updated “watch” windows, etc. Expanded infra red messaging support. Should be backwards compatible and work with the latest version of NQC.

fast0722.lgo: Not sure, but suspect this version only works with RobotC.

fast0798.lgo: Firmware version included with the last version or RobotC for RCX, which is available freely from the link above. Does not work with NQC.

Thanks to Francesco Ferrara for keeping some of these on his site.

After uploading Swan firmware, the RCX display will display the time in m:ss:t, where t is tenths of a second. So you will notice the display will be much like looking at a stopwatch:RCX display fast firmware

 Other firmware

There are other notable firmware developments, but these come with their own vastly different development environments and tools which I can not cover on this page. They are certainly worth a look though!

BrickOS: http://brickos.sourceforge.net/
Enables you to write native code for the RCX processor using c/c++.

LeJOS: http://www.lejos.org/
A Java VM to run on your RCX so you can actually run Java programs on it.

 

Share

3 thoughts on “RCX Firmware

    1. Michiel Post author

      Hi there,
      The .lgo file can’t be opened, it contains the RCX firmware which will look like gibberish if you open it using any editor.
      It should be used with the nqc binary which will upload it to your RCX where it replaces (updates) the existing firmware.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *