Program Lego NXT with Xojo?


I guess you know Lego’s great NXT robotic system. Unfortunally it comes with a quite deficient programming tool out of the box.
Did anyone out there already manage to use RS/ Xojo as programming tool for the NXT, e.g. by creating special classes?


I’ve gone down this route before. The closest I got was to query the NXT for battery status, and other simple things. And even at that it was via Bluetooth and not USB as their USB drivers don’t work very well.

I was hoping to find some time and work with the new Mindstorms EV3 but I’m not a robotics coach this year so my interest level has waned considerably.

Hello Christoph,

I am glad I meet another Mindstorms fan here on this forum.

I would not call the “NXT-G” visual development language deficient. In fact it is a very powerfull language easy to understand. But you have to put some time in it.

There is also a “C” like programming language which you can use together with Bricxxc which you can download here :

You have to contact Lego for the SDK kit which let you develop your own programming tool. I also have the EV3 kit and you need to use the USB port to upload your applications to the EV3 brick. It is much faster and saves battery power significantly. By the way when you do not need BlueTooth, switch it off because your batteries will last much longer too.

Both NXT-G and Bricxcc are excellent tools which proved there reliability already throughout the years. I think these are very good choices to program your MIndstorms robot.

It is better to write your NXT application with one of them. If you want to exchange data between RS/Xojo just use a COM port. Years ago around 2008 I simulated a Mars exploration with Mindstorms. At that time I used a 2007 version of RealStudio and communicated smoothly with the Mars rover. But that was on another computer and I do not have the applications I created any longer.

You can also find more information and certainly someone who can advice you at the NXT step blog at :

Wish you very much Mindstorms fun and keep up the good work !!!


Well, that’s open for debate. It seems easy enough until you get beyond simple. In 3 years of being a robotics coach to elementary/middle school kids they always struggled with it. There have been various graphical programming tools available for decades and I feel there is a good reason why they’ve never taken off into mainstream.

The other HUGE deficiency that we, as an FLL team, had with the NXT-G language was that is was very hard to document properly (which was one of the things that judges looked for). The graphical nature of the language required us to take screenshots to really document a program. Sure, you can easily see the ‘structure’ but it never showed the block details which meant you either added that as comments (which didn’t move with the blocks) or you took additional screenshots to include. No idea if that’s better in the EV3 or not (not a coach this year).

Hello Bob,

I agree that what I said about the NXT-G language is open for debate. About commenting the NXT-G language I fully agree with you, that is a pain. So like you said NXT-G as many graphical programming tools has their limits.

But Bricxcc at the other hand, is very powerfull. I use NotQuitC (NQC) most of the time for my projects, while my nephew (12) is very fluent using the NXT-G programming tool. And yes, I find it also much more easy to use Bricxxc than NXT-G, but I am used to write code rather than choosing a brick. So I saw that rather as a personal limitation than a deficiency. To give you an idea about my visual limitation, I code a webpage manually much faster in TopStyle than using any visual tool, while with our graphic designer it is just the other way around.

So the Mars exploration was done in NQC instead of NXT-G. It takes less screen space, easier to comment and is easier to structure. On the other hand, I programmed a 4 floor Mindstorms RCX controlled elevator with the graphical language.

I have to confess that my free time is very limited especially the last 3 years and therefore I cannot spend as much time with Lego Mindstorms as I like. So my projects are simple, after 2008 I never did something as complex as the Mars exploration. Since Opportunity landed on Mars, I intend to simulate the “sky-crane” landing in a mixed environment (Arduino - Mindstorms). Arduino will be used to simulate unpredictable movements in the X / Y / Z axis while an NXT will be used to control the Sky-crane and the EV3 for the rover itself. It is nice to think about a project, plan and bring it alive! Your creations moving in the real world instead of a computer screen makes them much more interesting.

You are a very resourcefull and talented man Bob. I knew you where involved in robotics but I never expected you to be a coach in those FLL competitions. Now it should not even surprise me if you won one of those competitions! Keep up the great work!!!


Well, we qualified for the Kansas City Regional FLL tournament 2 of those 3 years and each time I had a first year team. This year we were doing a bunch of family travel during the early part of the robotics season so we figured it wasn’t fair to the team so I bowed out. Coaching is a lot of fun but it’s a lot of work too.

Next year my son enters high school and will be involved with FRC (much bigger/expensive robots but also a much smaller season). The last time I checked they were programming in Java. Whatever works.