Controlling RoboSapien using LEGO IR-Tower

Trondheim-Bratislava, July 2005 - January 2006

Slovak version

See also: Controlling RoboPet from RCX

RoboSapien is a humanoid toy robot with many pre-programmed behaviors that can be started from a handy remote control. In order to steer the robot from the PC, one needs to send infrared control signals to the robot. LEGO RCX infrared tower connected to a serial port is a device capable of doing it. It emits the IR light according to the state on the TxD pin of the serial port. Thus knowing the protocol of the Robosapien IR communication, we could easily write a program that sends the control commands to the robot.

First, Richard has made some investigations of the LEGO IR tower and realized that it really emits the signals the way we wish:

Read more about IR tower.

Then Pavel wrote a program using high-precision timers in Windows that was sending the walk IR sequence to the tower, however, the robot did not move. So Richard analyzed the situation:

Read more about what the program did

and we concluded that the thread that is sending the required signals gets scheduled out by Windows, and thus the proper sequence is not transmitted. Therefore we changed the program so that it would run on the highest possible priority, and now it seems to control the robot reliably. You can use it to send all the possible commands RoboSapien recognizes, and you can even write a little script with time delays, which will be sequentially sent to the robot. When you run the program from the command window without arguments, it will print its usage.


December 23rd 2007, experimental: - combined archive with both synchronous and asynchronous version now with the support for the

Older: controling RoboSapien using LEGO IR-tower (WIN32 console application)
This version allows controlling LEGO robots too (using rcxrepeater program). Even more! Control your WowWee robot through LEGO robot even using LEGO USB IR-tower (by relaying through RCX), or store sequences of commands into your RCX and invoke them with PRGM button (or from PC). Lately, the communication part has been rewritten using the asynchronous communication, featuring no need for administrator or superuser priviledges, and CPU utilization falling from 100% to 0%. Read more about how the WowWee robots are controlled using serial protocol...
Previous version (without RCX support, more stable):

Old version utilizes direct control of TxD and thus avoids spurious impulses generated in asynchroneous communication due to start/stop bits (on the cost of higher CPU load and administrator rights requirement).

This program controls both RoboSapien, RoboSapien V2, RoboPet, and with raw hex values also some other WowWee robots. It contains a simple DLL that allows you to control a robot from your own Windows applications. Linux version included. Java and C# support included. OCX version (support for Imagine Logo). VisualBasic.NET example. Many thanks to Ruby Duck and Robert Oschler for valuable feedback!
Visit EvoSapien site for RoboSapien Dance Machine project, Voice Controlled Robopet Video, and more. - Windows console application for IR-codes conversion (UIRT, Pronto, Sapien hex-codes)

RoboSapien video:

(c) 2005 Pavel (ppetrovic (at) and Richard (balogh (at)

Where to buy? In Slovakia and Czech Republic, you can buy RoboSapien from and
(purchasing after clicking on this link will support
Database connection failed:Too many connections