I am the lead programmer on the Robosapien Dance Machine project; an open
source free program that lets Robosapien owners control their Robosapien
from their PC. Currently I am using a third party infrared device for the
infrared code transmission; which acts as a replacement for the Robosapien's
included infrared remote control.
I am also a Lego Mindstorm 2.0 owner and I would like to be able to use the
USB Tower to control the Robosapien (and later the serial tower).
I can read and write the USB tower just fine, however, my Robosapien never
responds to the codes I'm sending. I'm guessing this is because of a low
level format difference in the infrared data stream structure between the
Robosapien's remote control and what the Lego USB IR Tower is sending.
Do any of you have any tips or ideas on how I can get this to work?
I'm guessing I need to alter the low level format of what the USB Tower is
putting out, but I don't know how to do this.
I got the following Robosapien format information from this URL:
----------------- Robosapien IR format
The IR Carrier is 39.2kHz. Data is modulated using a space coded signal with
8 data bits (data clock is 1200Hz, but actual data rate varies depending on
You can skip the IR and IR modulation by wiring directly into the main
PCBoard. This can be encoded easily by almost any small microprocessor. For
modulating the signals yourself, the signal looks something like this:
Timing based on 1/1200 second clock (~.833ms)
Signal is normally high (idle, no IR).
Start: signal goes low for 8/1200 sec.
Data bits: for each of 8 data bits, space encoded signal depending on bit
Sends the most significant data bit first
If the data bit is 0: signal goes high for 1/1200 sec, and low for
If the data bit is 1: signal goes high for 4/1200 sec, and low for
BTW: The first bit (msb) is always 1 (valid codes are from $80 to $FF)
When completed, signal goes high again.
No explicit stop bit. Minimal between signals is not known.
17 years ago