Other operating systems for Mindstorms

In these days I’ve tried an alternative operating system for the Lego NXT called NXOS. The link of NXOS webpage has been put into my blogroll.

The operating system seems not to be a RTOS, but I like how it’s structured and managed. Here follow a brief overview of my very early experience with that system:

Project management:

The project uses harldy Python for every aspect of the management: the build process uses Scons instead of GNU Make and friends, all NXT firmware loading utilities (like fwflash and runc) have been rewritten in Python. Even the subversioning system in use, Mercurial, is written in Python. The good thing is that I like Python.

The whole process is GNU/Linux aware! In order to work with these tools it’s just necessary to install some additional software:

  1. Scons
  2. Mercurial
  3. Python usb access library (python-usb under Debian GNU/Linux)

Making an example work:

The compilation process trough scons runs smooth. The only gap came from my toolchain: for a strange fact last week I managed to compile and Lejos NXJ with a toolchain using hardware floating points… Perhaps si because the simple code I run didn’t use any floating point instruction…

Anyway I had to compile another version of the cross compiler in order to get it compatible. On the NXOS project website the problem is well explained. They also provide a script that builds the cross compiler. I didn’t use it, but it may be useful to know that it exists.

Once obtained the correct toolchain I’ve compiled, loaded and executed the “exploration” example.

Troubles:

Apart from some fictitious one (like the fact I had to invert the mindstorm’s radar :-) ), I’ve still got some troubles to resolve:

  1. Mercurial doesn’t yet provide a method to clone the a https repository from behind a http proxy …ok, still a fake matter;
  2. I loaded the compiled firmware on the ROM because I’m not able to load it on the RAM memory. I’ve tryied running the fwexec utility using 0×202000 as starting address (as SAM-BA does on Lejos-OSEK) but there’s no way to make it run. The firmware gets surely loaded, but nothing happens. This is a really bad thing since the number of ROM flash cycles is notoriously very limited!

Leave a Reply