Home / Community / Blog

I have a very old Lego RCX 1.0 but I couldn't program it. I supposed it was because of incompatibility, virtualized XP, or not supported USB<->RS232. I decided to build "new" tower. First I tried to use project from robotics.sk based on 555 timer, but all these capacitors, potentiometers and oscilloscope to calibrate... hello it's XXI century we have microcontrollers everywhere.

I've used arduino nano (some clone) only to generate 38kHz signal - based on comment in PWM at 38KHZ with Arduino article.

The IR receiver pinout is from TSOP4838 (GND in the middle) not TSOP1238 (Vs in the middle).

The whole program looks like this:

#define IR_CLOCK_RATE    38000L
#define pwmPin      11   // IR Carrier 

void setup()  { 
  // toggle on compare, clk/1
  TCCR2A = _BV(WGM21) | _BV(COM2A0);
  TCCR2B = _BV(CS20);
  // 36kHz carrier/timer
  OCR2A = (F_CPU/(IR_CLOCK_RATE*2L)-1);
  pinMode(pwmPin, OUTPUT);
} 

void loop()  { 
}

Now I wanted to check if it works with my RCX birck, so I've downloaded Bricx Command Center 3.3 and installed it based on Programming Lego Robots using NQC tutorial.

Next I founded firm0328.lgo file, the RCX firmware version 3.28. It is one version for RCX 1.0, 1.1 and 2.0. You can google for it or check this sites:

This file is need when you lost power (ie. change batteries) - you can do this (based on bricxcc) using Tools -> Download firmware. It takes some time.

Now I was able to program and control my RCX brick again.

Just my blog...

Mon Tue Wed Thu Fri Sat Sun
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28