# Which programming language should I use with the NXT? [closed]

We have an optional course in our high-school which is about robotics. We're using the Lego Mindstorms NXT and program it with the original Mindstorms-software. However, we want to advance and use a major programming-language. We have tried NXC and LeJos. Plus, I tried out the Microsoft Robotics Development Studio, but with all these different possibilities we are a little bit overwhelmed.

Because of that (now it becomes interesting), I want to ask, what technology is the best for NXT and especially: What is easy to use? I don't want to need 14 steps just to compile a program and get it running on the NXT. Also, it would be nice, if it's an extend-able language, like using C#, but are there some better or easier possibilities?

"We have tried NXC and LeJos. Plus, I tried out the Microsoft Robotics Development Studio, but with all these different possibilities we are a little bit overwhelmed."

That basically leaves RobotC - which is easier to use, and reasonably powerful. As it is based on C, you will not find it as powerful a language as JAVA (LeJOS), but robotics stuff is built in (motors/encoders, reading sensors, I2C, bluetooth). It does include a good IDE and debugging system, something NXC and LeJOS are missing.

MRDS is really not suited for NXT since it does not run on the NXT:, it is simply a remote control system. You can look at mindsqualls for an alternative and not quite as complicated C# remote control system if that is acceptable to your project/studies.

A few people have ported MF (micro frameworks C#) to the NXT but there was 0 room left, making it very impractical.

• No need to be pre-emptive. Robotics.SE is open to all, nxt questions are certainly on topic here and, in my experience, posters limit their answers to what's asked. If the OP is asking about NXT, answers will be about NXT :) – ThomasH Nov 30 '12 at 0:28
• That certainly has not been my experience so far. – Spiked3 Nov 30 '12 at 1:37
• Accepted this answer, because it really helped us :). We'll use RobotC, as it seems to be the best for our needs. – looper Nov 30 '12 at 9:18
• What makes you say that you need to write assembly code for the Arduino/Raspberry Pi? That's simply not true at all. The entire point of the Arduino API is to abstract away a lot of low-level C (peripheral configuration register manipulation, etc), never mind asm. That's an even sillier thing to say about the Raspberry Pi, where you can manipulate GPIO in Python. – Joe Baker Nov 30 '12 at 9:24
• @Spiked3: That certainly has not been my experience so far--if you're talking about this argument of ours, the OP was clearly asking for an alternative to NXT. And please could you stop getting worked up about Arduinos/RPis? This type of argument is unnecessary for this site. – Manishearth Dec 1 '12 at 16:54

The kit supplied NXT software is a bit basic, agreed... but before trying anything more complex, I can commend NI LabView for NXT

Not only is this an improvement on the NXT-G but this gives you an introduction to LabView which is widely used in the Real World for data acquisition and test systems.

I'm sure there must be a C/C# API out there (I've not looked though)

• Yeah, we looked at NI LabView, too, but we didn't know that there could be an API :O. Thanks! – looper Nov 29 '12 at 20:45

NXT-G is based on LabView. If you don't like LabView, you won't like NXT-G. Good news though. Lego just debuted Mindstorms EV3. It uses a language based on ICON. Something you may be more interested in. It should be available this winter. http://mindstorms.lego.com/en-us/News/ReadMore/Default.aspx?id=476243