The intelligent rebounced RCX switch

The ultimate machine: There is something unspeakably sinister about a machine that does nothing—absolutely nothing—except switch itself off

Similar projects worth following
In these times, in the constrained development environment at home. Developers must become increasingly creative to generate smiles and entertain the family members.

This project explores open source hardware and the childrens generosity and lego philanthropy, in the pursuit to build the ultimate machine in times of hardship.


My hobby projects seldom reach the finish line, why is that?
Well there are a couple of reasons I can think of.

  • Some hobby projects are intended for learning purposes only
  • Some projects aren't delimited
  • Suboptimization

Constraints force us to think more creatively, respect the time available and to be pragmatic.

I did not have any actuators or sensors at home when the "Making tech at home" contest was announced. But I do have children and an old Lego education set [RCX].


Useless machines have been around for quite some time [useless].
I'd prefer not inventing the wheel again, so I looked at available options in the prototyping stage of the project:


I like to reason that project building blocks should be re-useable and shippable. Why? Re-use implies low coupling to the project. Shippable implies accountability; and if open source, auditability. Auditable code in it self forms an incentive to write better code.

Since I'm developing on Linux and didn't have the Lego development environment available I decide to go with the [NQC, "Not Quite C"] tool. There was other candidates too, such as LeoJOS, and RobotC. I have a strong preference for C but RobotC was from what I could derive not available for Linux.

NQC is both a compiler as well as the program used to download the code to the RCX.
It also provides a function for sending op codes to the RCX, "nqc -raw", which allows you to execute op codes remotely.
This is useful in a number of cases, e.g. testing motors or auditing variables on the RCX at runtime.

Prototyping should be easy, fast and testable but the NQC did not provide a software API. So I wrote as python wrapper for the CLI, [pynqc], if you have an RCX lying around, try it out (and of course, review the code :) ). I wrote it in python, as it has a low prototyping threshold and allows for fast development when prototyping.

I built the physical machine in Lego and modelled it afterwards with BrickLinks

BrickLink was a great tool and except for modelling it also generated instructions and provided rendering and exports to a number of other file formats.

So, here comes a demo! Code and model is available at:

obj - 7.65 MB - 05/24/2020 at 23:16


mtl - 1.37 kB - 05/24/2020 at 23:16


  • 1
    Step 1
  • 2
    Step 2
  • 3
    Step 3

View all 20 instructions

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates