Here - MindBOARDS

Transcription

Here - MindBOARDS
Moonbots Contest Winners
by Xander
1 person liked this
The winners for the Moonbots Contest have been announced!
1. Landroids
2. The Shadowed Craters
3. Moonwalk
Congratulations to all teams who took part. All teams got a special
recognition award for their efforts, some of which are very funny!
Anyway, be sure to check out the teams‘ web sites for more information
on what they did and how they did it.

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
Aug 3, 2010 2:23 PM
NXT-G Blocks For HiTechnic SMUX Are Here!
by Xander
3 people liked this
At last, the long anticipated NXT-G blocks for the HiTechnic Sensor MUX have arrived. Gus
from HiTechnic has written a nice in-depth article about them on the HiTechnic blog which you can find
here: [LINK].
It looks like using them is not a whole lot different from using them without the SMUX. Hurray for
transparency.
Anyway, hurry on down to the HiTechnic website and start downloading the new blocks right here: [LINK]
or here [LINK].

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
Jul 30, 2010 11:14 AM
Hispabrick Magazine 008 is out!
by Xander
Hispabrick Magazine 008 is out now! The Mindstorms NXT is featured quite a bit in
this issue.
Some of the highlights:




Article about what the Mindstorms Community Partner programme
(MCP) is all about;
Interviews with some of the people in the MCP programme;
A great tutorial on PID and how to apply that to line following;
Actuators for the NXT (motors, things that move).
Other highlights include:




Another installment in the LDraw tutorial;
How to build trees (these look awesome);
A great article about the classic Super Car 8860;
And much, much more!
Go download your copy today here: [LINK].

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
Jul 23, 2010 2:06 AM
Holit Data Systems News
by Xander
1 person liked this
The Ukrainian company Holit Data Systems, makers of the 3 port NXT motor MUX,
asked me to let people know that they‘ve changed their domain name at the request
of TLG. You can now reach their website at edu.holit.ua.
They‘re busy working getting PayPal payments sorted out. It should all be up and
running by next month (August 2010). You‘ll be able to get your hands on one of
these without any trouble, no matter where in the world you are. I will keep you posted of any updates.
Until PayPal is fully implemented, you can use the LiqPay system which is available to registered users
atedu.holit.ua.

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
Jun 12, 2010 2:07 AM
Introducing The HTWay
by Xander
3 people liked this
If you want to build a balancing robot, there is no shortage of options to chose from.
There‘s the original LegWay, NXTWay, SegWay with Rider and more recently
theAnyWay. If you thought that wasn‘t enough, Gus from HiTechnic has made
another, called the HTWay.
The HTWay is a remotely controllable SegWay robot. It uses the HiTechnic IR Receiver to allow you to
steer it any which way you‘d like using a Power Functions remote control and aHT Gyro to figure out
which way it‘s falling.
Gus has written up a nice article that goes a little bit into the theory behind the act of balancing with some
accompanying NXC code. It‘s well worth the read if you‘re curious about how this stuff actually works.
Don‘t worry, if you‘re only interested in building a cool looking robot, all the things you need and a nice
video to watch are right at the top of the article, (you‘ll be missing out on some great stuff, though). Go
check out it out: [LINK]

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
Jun 3, 2010 5:24 PM
Your chance to win a dFlex!
by Xander
1 person liked this
Dexter Industries are giving you the chance to win one of their newly launched dFlex sensor.
There are no less than two ways to win one. Click on the link to find out how you can become
one of the lucky winners!

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
May 20, 2010 3:24 AM
Book recommendation
by claude
1 person liked this

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
May 2, 2010 7:53 AM
Dexter Industries – DI Thermal Series Sensor Roundup
by dave
1 person liked this

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
May 2, 2010 12:07 AM
Debugging NXT-Programs
by Linus Atorf
3 people liked this
Sooner or later all users writing programs to be executed on the NXT brick find themselves in the
following situation: Your program compiles fine, is transferred to the NXT, it starts running — but it doesn‘t
do what you want it to! Sometimes the mistake you made is obvious, but often it‘s hard to spot the flaw.
Well, now it‘s time for debugging: the art of finding what went wrong, and especially where. Usually during
debugging, you begin to understand how your program really works, and that is what helps you fix the
problem. In this post, I‘d like to give some general ideas and examples for debugging NXT programs.
Independent from the language you use (NXT-G, NXC, LeJOS or whatever), you have these options to
get information from a running program back to you, the debugger:






The LCD display. This is obviously your first line of attack. Use the NXT‘s display to show
contents of variables, status messages, checkpoints, or anything you need. Often printing
text is enough, but if you have more complex things or contents with greater volume,
consider displaying graphics (pixels, graphs, symbols, etc.).
The speaker. Don‘t underestimate the NXT‘s capability to play sounds or tones. I call this
―acoustic debugging‖. Make the NXT play signal tones or sound files when certain conditions
are met, procedures are executed or a special sensor value is detected.
Lights. Yes, that‘s right. If you want to monitor a boolean value, maybe whether a certain
task is running, you can use lights to show this information. There‘s the red LED light of the
classic NXT light sensor, the old LEGO lamps for motor ports (e.g. from the NXT Education
Kit), or of course the LEDs of the new NXT 2.0 color sensor.
Motors. If you have no space left on the display and a free motor port, why not use a motor
to help you visualize a variable? You can set the motor‘s power to the variable if it‘s confined
to a range of -100 to 100. Some of the TryMe programs utilize this method (not for
debugging purpose though).
Files. You can start generating log-files for later analysis. While this is a bit more effort
initially to get yourself some helper-functions, you can re-use these routines later on in your
other projects. This can be very powerful as you can include valuable information like
timestamps or the calling procedure. You are however limited in available file size, and
writing data to flash can sometimes take a fairly long time.
A computer. Once you have your PC connected to the NXT via Bluetooth or USB, you can
retrieve valuable information from the brick. There are many methods of different complexity.
BricxCC has a nice ―Watching the brick‖ feature, there is an NXT debug monitor which can
receive string messages from your programs via mailbox queues, or you can play around
with direct commands yourself.
The main reason you should think of other ways than the display during debugging: There is limited
space on the LCD, and there can be problems with updating speed. It can either influence your programs
performance (and certain time critical bugs might magically disappear — a Heisenbug) or your eyes aren‘t
fast enough to identify a flashy change. While it‘s easy to overlook a certain value / text for a split of a
second, you‘ll usually notice a beep! Apart from that: If your program crashes, text on the LCD display is
lost, while messages stored in logfiles or sent to a computer will still be readable.
Having said all this, two things are important: Most of the time, you don‘t need all the different ways at
once. And it‘s about the right combination of methods, which depend on your actual problem.
If you‘re interested in more specific details and some examples for NXC, read on.
In the remaing article I‘ll focus on text-based languages and use NXC for the examples.
Handling debug statements. Most of the time you have to manually insert debug statements into your
program code. Unfortunately, those statements don‘t do anything ―useful‖ apart from helping you to
debug, so those commands are often considered annoying. It‘s common practice to start with inserting
simple TextOutcommands where needed, and commenting them out later on once everything works. The
more statements you‘ve got, the more annoying it gets to enable them once a new bug occurs, and to
disable them again eventually. I suggest wrapping your debug code in between compiler directives, i.e.
#define DEBUG_LCD
#ifdef DEBUG_LCD
TextOut(...);
#endif
This makes frequent debugging very easy: Simply comment out the statement where DEBUG_LCD is
defined at the top of your progam, and debug mode is turned off. You can even have multiple define‖switches‖ for various debug options, like DEBUG_LCD, DEBUG_ACOUSTIC, DEBUG_LIGHTS and so
on. It can make sense to wrap these statemens (including the compiler directives) into further macros, to
save some lines of code for better readability.
Logging data to files or a computer. Many techniques from data-logging can be used here. In this case,
we‘re interested in debug messages, not sensor data. The debug messages might be too long or are
generated to rapidly for being displayed on the LCD. This is why we can either send them to a PC or write
them into a text-file on the NXT‘s flash disk. The advantage of sending the data away to a computer: This
can happen faster and easier than writing to a file (there are still limits on maximum message throughput
though). You can either use the already mentioned NXT debug monitor, or write a similar custom thing on
your own. An example of a very simple debug logging server can be found here (in this case written in
MATLAB), the according counterpart for NXC is here (it puts a running number and a port number in front
of the text message before sending). How to send strings from an NXT to a computer is described in
my weather tutorial.
At this occasion I can‘t refrain from mentioning the NXCProfiler (in a very early development stage), which
could also be of some help.
Monitoring the NXT from a computer. Every program running on a PC interacts with the NXT via direct
commands. These can be used to retrieve sensor & motor data, as well as raw data from the firmware‘s
memory. The cool thing: This also works while user-programs (written in NXT-G, NXC, …) are being
executed at the same time, i.e. you can use all programs that run on a computer to help you debug your
NXT-program (that runs on the brick). If you have tools that monitor motor position, display sensor values
or anything else, feel free to use them if they help you. The possibilities are endless. I agree that this last
point might not be of direct use to you, but to focus on three more specific cases:



BricxCC‘s ―Watching the brick‖: I won‘t go into details now, but refer you to John
Hansen‘s book ―LEGO Mindstorms NXT Power Programming: Robotics in C, second
edition‖. Here‘s a post by John. As NXC programmer, you should definitely give the variable
watching feature a try.
Direct NXT memory access: This is very complex and advanced, never the less I should
mention it. Nicolas Schodet proposed a way to read out the firmware‘s memory and grab
variable information from it. This is similar to what BricxCC does internally.
The NBC debugger: My article can‘t be complete without the NBC debugger being
mentioned at least. Since I‘m not an NBC user I‘ve not yet used it, but it might work for NXC
programs, too (since the NXC compiler generates intermediate NBC code first). An
interesting feature I‘d first try is the #pragma debuglog statement, it‘s explained here.
As always, feel free to create a thread on the forums if you have questions, ideas or comments.
So long, Linus Atorf

Add starLikeShareShare with noteEmailEdit tags:
Lego and Robotics
Apr 25, 2010 2:02 AM
Out now: The LEGO MINDSTORMS NXT 2.0 Discovery Book
by Xander
2 people liked this
A book that‘s been in the making for a while now has finally been released! Laurens Valk‘s latest
book, ―The LEGO MINDSTORMS NXT 2.0 Discovery Book: A Beginner‘s
Guide to Building and Programming Robots‖ is a real treat.
I had the pleasure of being able to look at it before it was published and
the models in it are really fun! Everything in this book can be made with
the Mindstorms NXT 2.0 kit without any additional pieces. The book
guides you through learning the NXT-G language from beginner stage
right up to some really advanced techniques that will allow you to
become a robot programming master. A website to accompany the book
is almost done and more information about it will be posted here when it
becomes available.
You can pre-order a copy of it at Amazon.com here: [LINK].
Add starLikeShareShare with noteEmailAdd tags
Apr 21, 2010 11:43 AM
(title unknown)
by claude
Add starLikeShareShare with noteEmailAdd tags
Apr 19, 2010 3:25 PM
New NXT Fantom Drivers Available
by john
1 person liked this
Add starLikeShareShare with noteEmailAdd tags
Apr 5, 2010 10:29 AM
GPS module for the NXT
by claude
5 people liked this
We have started realizing a GPS/NXT interface using a PIC. A GPS-module is sending its data to the
PIC, which transfers the integral packet to the NXT on its request.
http://www.convict.lu/htm/rob/GPS.htm
Add starLikeShareShare with noteEmailAdd tags
Feb 28, 2010 11:40 AM
Firmware 1.29 is out
by Xander
4 people liked this
Edit: Added Changelog
New and improved, twice as tasty and fewer calories! LEGO has
published version 1.29 of the Mindstorms firmware. There is as of yet
no information available regarding changes since 1.28.
Stay tuned for more information. Meanwhile you can download the
new firmware right here: [LINK].
Changes from 1.28 to 1.29:

We have free up more user available memory.

We have made very minor changes to the color
detection algorithm

Overflow error on floating point corrected.

Handler error related to specific use-case within
datalogging corrected.
Add starLikeShareShare with noteEmailAdd tags
Feb 24, 2010 10:35 AM
New mux on the block
by Xander
1 person liked this
Edit: An English product page is up now, you can check it out here:
[LINK]
I posted earlier on my blog about the new motor MUX that is being
made by a Ukrainian company, HOLIT Data Systems. I‘ve since been
able to have a chat with one of the guys behind the site that is selling
them.
The technical specs are rather interesting. From the picture you can
see there are 3 motor ports, a connector to the NXT and one to daisychain up to 62 more of these devices to each sensor port. In my original
article I mentioned you could connect up to 189 motors to your NXT, I
was wrong. That should be 756, of course, seeing as there are 4
sensor ports on a brick. I can‘t imagine having 189 motors connected to my NXT, let alone 756. That‘s
not counting the 3 normal motor ports.
The motor MUX comes with a CD with all the software and instructions necessary to start using it. Right
now it‘s all in Russian, which is great if you speak Russian. However, fear not, they will translate the
blocks to English shortly.





The 1s block is for configuring the motor mux, such as setting the address.
The 2nd block is a ―lamp block‖, which I assume would be useful if you connect a little light
to the motor port instead of a motor.
The 3rd block is a normal motor block.
The 4th block is a move block that controls multiple motors at once.
The 5th block is an encoder reading and resetting block.
I do have a roughly translated description of the I2C commands and messaging specification which I will
publish shortly. Once I have some hands-on experience I will let you know! A ROBOTC and NXC driver
will be published shortly thereafter.
Here is the link to the mux‘s product page: [LINK] (translated). They cost about $70.
Here is a cool video of the motor mux in action: [LINK].
As you can see it‘s pretty trivial to daisy-chain them. I believe it is also possible to connect normal I2C
sensors as well, with the exception of the LEGO Ultra Sonic sensor.
Edit: changed the links to the product page to a more up-to-date one.
Add starLikeShareShare with noteEmailAdd tags
Feb 9, 2010 6:32 PM
Firgelli Linear Actuator
by Xander
1 person liked this
I‘ve been lucky enough to have had the pleasure of trying out the new Firgelli Linear Actuator (LA) for a
little while now and it‘s awesome. It‘s based on one of their pre-existing LAs and is completely NXT
compatible. It connects to the standard NXT motor port like a regular motor and has encoders, too. The
LA comes in two sizes, 100mm and 50mm and extend at an unloaded speed of about 12mm per second.
The thing that struck me the most is the accuracy of it. With 200 encoder ticks over the entire length of
the LA for the 100mm version, you can position the end point with a 0.5mm accuracy. You‘ll have a hard
time trying to duplicate that level of accuracy with the regular motors.
I took some pictures of the 100mm version next to some studded beams so you can get an idea of how
big it is in its retracted and extended positions. You can click on the images for a larger version.
There is an easy to use NXT-G block available on the website that has built-in stall detection to protect
the LA. Danny Benedettelli has written an NXC library for it and you can expect a driver to be included in
the next release of the 3rd Party ROBOTC Driver Suite.
For more technical details, have a look at the datasheet which you can find here: [LINK].
I‘ll be posting a video of my little test robot in the next few days on my blog, so keep an eye out for that.
Add starLikeShareShare with noteEmailAdd tags
Jan 19, 2010 5:58 PM
dSwitch Aquasaurs Temp Monitor
by dave
1 person liked this
We recently picked up one of those Aquasaurs kits for the kids – which lets you hatch and care for some
neat little aquatic fish (or shrimp) that date back to pre-historic times. After reading the instructions we got
everything set-up and all was good, until we read the part about the temp of the water needing to remain
between 72 – 80F. Problem is, we tend to keep our house around 70ish, and
during the day, we have our automatic thermostat drop the temp to more
frigid temps (to conserve you know!). We quickly realized that these things
would likely not get past the larvae stage at those temps. For the first two
days, we had the tank propped up on the stove under the halogen lights to
keep the water warm. However, over time, they would heat the water too
much and need to be monitored / turned off for periods of time. We needed
to come up with a longer term solution.
One option would be to simply go out and drop $$ (insert cost here – I don‘t know) on a aquarium heater
– but that would be too easy. I‘d rather take my $300+ extra NXT & temperature sensor and make them
work for a bit. Now you ask yourself, how the heck would the NXT heat the water. Well, that‘s where
dSwitch from Dexter Industries comes in. Interestingly enough, the dSwitch did not come to me with the
intent of using it to heat the Aquasaurs tank. It was more like irony and good timing that I just received the
dSwitch and we got the Aquasaurs going.
For a full description and pictures, visit my site at www.plastibots.com.
Add starLikeShareShare with noteEmailAdd tags
Jan 15, 2010 6:35 PM
DualGrip - NXTRover (DG)
by dave
2 people liked this
Hey folks,
It‘s been a while since I last made a bot.
My latest is DualGrip - NXTRover (or DG
for short). I wont go into great detail as all
info (with videos) can be found at my
site http://www.plastibots.com, but DG has
both tracks and wheels and uses an
acceleration sensor to determine when it is
climbing and deploys the
drive system to angle itself to engage the
rubber wheels.
Add starLikeShareShare with noteEmailAdd tags
Jan 6, 2010 7:50 PM
Using the LEGO color sensor
with NXC
by john
4 people liked this
The NXT 2.0 retail set comes with a new color sensor. It is an analog sensor rather than I2C like the
HiTechnic color sensors. The LEGO color sensor requires the firmware that comes with the retail NXT
2.0 set (version 1.28). The firmware that comes with the recently released NXT 2.0 education software
(version 1.26) does not include support for the LEGO color sensor.
NXC and BricxCC now support the new color sensor in the pre-release (aka test release) build that you
can download via the following URLs:
http://bricxcc.sourceforge.net/test_release.zip
http://bricxcc.sourceforge.net/nbc/beta/nbc-1.0.1.b36.tgz
http://bricxcc.sourceforge.net/nbc/beta/nbc-1.0.1.b36.osx.tgz
Before you try to control the new color sensor using NXC or BricxCC you will need to make sure you tell
the compiler that you are targetting the NXT 2.0 firmware rather than the old 1.0 firmware. With the
command line compiler you tell the compiler this using the -v switch.
nbc -v=128 myprogram.nxc
The value 128 means version 1.28 which is the firmware version number of the NXT 2.0 retail firmware.
The NXT 1.0 firmware version is 1.05 so you would use 105 with the -v switch if you want to target the 1.0
firmware.
In BricxCC all you need to do is check the ―NXT 2.0 compatible firmware‖ option on the
Compiler|NBC/NXC tab in the Preferences dialog.
There are 5 new sensor types that you use with the color
sensor: SENSOR_TYPE_COLORFULL,SENSOR_TYPE_COLORRED, SENSOR_TYPE_COLORGREE
N, SENSOR_TYPE_COLORBLUE, andSENSOR_TYPE_COLORNONE. These can be used with the
SetSensorType API function in order to configure the sensor port for the color sensor. For detecting
colors you normally will use the full color sensor type. You can use the four other types to detect ambient
light levels (with the COLORNONE type) or as a color lamp in red, green or blue. If you want to use the
color sensor as if it were a light sensor that came with the NXT 1.0 set you can use the COLORRED type
to turn on the red lamp.
The NXC API also has sensor port configuration functions specifically for each of these sensor
type:SetSensorColorFull, SetSensorColorRed, SetSensorColorGreen, SetSensorColorBlue,
andSetSensorColorNone. Each of these functions calls SetSensorType with the appropriate sensor
type constant, then calls SetSensorMode with SENSOR_MODE_RAW, and then finally
calls ResetSensor to wait for the firmware to finish initializing the sensor based on the new type and
mode. Your best bet is to use one of these 5 functions whenever you need to configure the NXT to use
the color sensor.
Once you‘ve properly configured the port for use with the new color sensor you can read data from the
sensor in a variety of ways. The simplest way to read from the color sensor is to use
the SENSOR_1, SENSOR_2,SENSOR_3, and SENSOR_4 values. These return the color number when
the sensor is configured in full color mode. You can also read raw sensor values similar to the values you
get from the light sensor usingSensorRaw when you have the sensor configured as one of the non-full
color types.
Direct access to the color sensor fields in the Input module IOMAP structure is provided by a few low level
NXC API functions:
unsigned long ColorCalibration(const byte port, const byte pointNum, const byte colorNum);
unsigned int ColorCalLimits(const byte port, const byte pointNum);
unsigned int ColorADRaw(const byte port, const byte colorNum);
unsigned int ColorSensorRaw(const byte port, const byte colorNum);
int ColorSensorValue(const byte port, const byte colorNum);
byte ColorBoolean(const byte port, const byte colorNum);
byte ColorCalibrationState(const byte port);
There is also a low level system call function called SysColorSensorRead which takes a structure
argument of type ColorSensorReadType. The definition of this structure is shown below:
struct ColorSensorReadType {
char Result;
byte Port;
int ColorValue;
unsigned int RawArray[4];
unsigned int NormalizedArray[4];
int ScaledArray[4];
bool Invalid;
};
On input to the SysColorSensorRead function call you set the Port field to S1, S2, S3, or S4. After the
call you can read the Result field to check for errors and if no errors ocurred you can access the
ColorValue field or read data from the 3 arrays. Each array is indexed
using INPUT_RED (0), INPUT_GREEN (1), INPUT_BLUE (2), orINPUT_BLANK (3).
At a higher level you can read the raw color sensor values using ReadSensorColorRaw(byte port,
unsigned int & rawValues[]). You can also read all the color sensor data
using ReadSensorColorEx(byte port, int & colorValue, unsigned int & rawValues[], unsigned int &
normValues[], int & scaledValues[]).
The ColorValue value returned by these functions will be one of these
constants: INPUT_BLACKCOLOR,INPUT_BLUECOLOR, INPUT_GREENCOLOR, INPUT_YELLOWC
OLOR, INPUT_REDCOLOR, andINPUT_WHITECOLOR (1..6, respectively).
Hopefully this information helps you get the most out of your new LEGO color sensor with NXC and
BricxCC.
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2009 11:43 PM
Fixes and features
by john
It‘s hard to program when you‘re dosed down with cold medicine and you keep coughing over and over
again until you‘re not only sick you‘re sick of coughing. That‘s me right now, unfortunately. Fortunately,
I‘ve been able to string together enough coherent thoughts and coordinate my fingers sufficiently to
upload another update to the not-yet-officially released b36 version of NXC.
Thanks to Xander Soldaat who reported a bug with using enum types as function parameter types. It
turned out that you couldn‘t use any user-defined named type other than structs (i.e., typedefs and
enums). That defect has been fixed in this update.
Thanks to ToGi who reported a bug that has existed since NXC came into being. The internal list of
function names that NXC uses was not correctly handling functions with names that differ only by case.
When I added the inline strcmp function to the standard NXC API in the last test release it broke his own
function called StrCmp. Now the list considers case when checking for duplicate names.
While looking at Spiller‘s Structs.nxc file this weekend I came across a comment in a struct declaration
that read
//you can‘t ―bool A,B;‖?
Yes, that has been a limitation of the syntax supported by NXC for declaring struct members until today. I
had a quick look at the code that processes a struct declaration and it was pretty easy to rework the code
a bit so that you can now declare sequential struct members of the same type using a comma-separated
list of member names just like you can in Standard C.
Interestingly, I was about to check in all these changes today when I decided to first try to compile
Spiller‘s program and found that I got many compiler errors. Doh! The compiler was saying a struct
member type didn‘t match the type of the variable I was trying to assign to it. At first I thought it had
something to do with the enum changes I made which involved parameter type handling by the compiler
along with a change to a function called CheckTypeCompatibility. Thank goodness for SVN and the
Tortoise SVN tools I use on Windows. With their help I was able to track down a silly mistake on my part
in the comma-separated struct member changes and fix it before I checked in the code.
http://bricxcc.sourceforge.net/test_release.zip
Add starLikeShareShare with noteEmailAdd tags
Dec 2, 2009 1:41 PM
BricxCC and the Bluetooth Blues
by john
Several people have posted questions on the nxtasy forums asking for help connecting to their NXT via
Bluetooth using the Bricx Command Center (BricxCC).
First, make sure you have the latest test release of BricxCC. You can always download it from this link:
http://bricxcc.sourceforge.net/test_release.zip
Extract the zip over your existing BricxCC installation.
Now look in %appdata%\JoCar Consulting\BricxCC\3.3\ for a file called nxt.dat. The actual path differs
depending on the version of Windows you are running but %appdata% should expand to the right path on
your computer. Edit this file with a plain text editor such as notepad. Look for a line something like this:
BTH::BNXT=BTH::BNXT::00:16:53:0A:75:7B::1
If there isn‘t anything like that in the file then add one. Everything to the left of the equal sign is an alias
for the value to the right of the equal sign. The alias can be anything you like. To the right of the equal
sign is a brick resource string. The bluetooth brick resource string consists of ―BTH::‖ followed by the
name you have assigned to your NXT. By default that is just ―NXT‖. Mine happens to be called BNXT.
Whatever your NXT‘s name is just use that instead of BNXT. Follow the name with a pair of colons ―::‖.
Then comes your NXT‘s unique ID which you can see via the brick menu system by navigating to
Settings|NXT Version. The ID is at the bottom of the screen. Here‘s a screenshot from my NXT:
Separate each pair of hex digits with a single colon ―:‖. My NXT‘s ID is 0016530A757B. That becomes
00:16:53:0A:75:7B as you see above. Follow the ID with another pair of colons ―::‖. Last comes the
virtual serial port number that is created when you connect your NXT to the PC via Bluetooth. Sometimes
mine is 1 and other times it is 5. The value here probably will not make any difference in whether you can
connect or not.
Once you have a bluetooth brick resource string entry in nxt.dat for your NXT then you will be able to pick
both the short alias and the full brick resource string from the drop-down list of Ports when you launch
BricxCC. The very first time you connect to an NXT via Bluetooth you‘ll have to confirm the PIN on the
NXT. Be sure to pay attention to it prompting you to confirm the PIN number. It takes a little while for the
connection to be made but afterward communication between the NXT and BricxCC via Bluetooth should
be pretty quick. Also make sure that you check the option in the Preferences dialog to use the internal
NBC/NXC compiler. Otherwise compiling and downloading programs will be way too slow.
Users of NBC/NXC or any of my NXT utilities on Mac OS X or Linux platforms can also communicate with
their NXT via Bluetooth. The nxt.dat file on non-Windows platforms lives in the Home directory
(~/nxt.dat).
Add starLikeShareShare with noteEmailAdd tags
Nov 30, 2009 10:59 PM
NXC updates
by john
2 people liked this
I have uploaded a new test release of BricxCC and NBC/NXC tonight (11/30/09 at 9:00pm CST).
http://bricxcc.sourceforge.net/test_release.zip
The biggest change is support for enums. At the moment NXC does not enforce types on enums so you
can define a variable of an enum named type and then assign to that variable any integer value rather
than only enumerations that are a member of the named enum type.
http://bricxcc.svn.sourceforge.net/viewvc/bricxcc/tests/enums.nxc?revision=264
I fixed a bug with unsigned values in a return statement. I also added a slew of stdio.h, string.h, and
ctype.h functions to the NXC API. Here are a couple sample programs. The first one shows some of the
new functions from string.h:
http://bricxcc.svn.sourceforge.net/viewvc/bricxcc/tests/strings.nxc?revision=264
This next program demonstrates how to use several functions from stdio.h:
http://bricxcc.svn.sourceforge.net/viewvc/bricxcc/tests/fileio.nxc?revision=269
The fseek, rewind, and all the printf-like functions require the enhanced NBC/NXC firmware. Make sure
that you configure your compiler options to target version 1.28 or later of the enhanced firmware (aka
NXT 2.0 compatible).
A while ago someone on the nxtasy forums reported problems with the FileSeek operation that I added to
the enhanced firmware. Based on my testing this evening, it looks like the problem was with using the
LDR_CMD_FILESEEKSTART constants as the origin. The LDR_CMD_* constants are not the right
numeric values to use as the seek origin. Instead, use the SEEK_SET, SEEK_CUR, and SEEK_END
constants (0, 1, and 2) that are included in the API as of tonights update.
Add starLikeShareShare with noteEmailAdd tags
Nov 29, 2009 2:05 PM
New LabVIEW Education Edition
by claude
National Instruments has just released the
LabVIEW Education Edition,
http://digital.ni.com/worldwide/bwcontent.nsf/web/all/D281AF3F29196D83862576470065AE02
the best stuff I‘ve ever worked with in the context of LEGO robotics. The features are so fantastic that we
have succeeded with few efforts in implementing a Kalman filter to our infrared/ultrasonic indoor GPS
system for the 2D-positioning. The very first tests are very rudimentary, but all this is extremely promising.
Note also that the latest 3D sound localization robot also has been programmed with the brand-new
software.
http://www.convict.lu/Jeunes/RoboticsIntro.htm
Add starLikeShareShare with noteEmailAdd tags
Nov 26, 2009 7:44 PM
Forum Frustrations
by john
Hey everyone,
As you probably have noticed, the forums were down for the last few days. From what I can gather the
ISP hosting nxtasy.org, aplus.net, has recently been sold to a new owner. As part of the sale, sites
hosted on a shared server are all being ―upgraded‖ to a new datacenter in Florida. There are messages
from many disgruntled aplus.net customers who have experienced numerous problems as a result of this
move.
http://forum.aplus.net/showthread.php?t=481
―Aplus.net is currently upgrading customers to an enhanced hosting platform which will allow you to take
advantage of a variety of new services over the coming months. The upgrade is over halfway complete
and has been successful overall.‖
―As with any platform change there have been a few bumps along the road though. If you are
experiencing account problems during this process, we would like to apologize for any inconvenience this
may have caused you.‖
―We recognize that many of you use this forum to express your frustrations. However, due to privacy
concerns we will no longer address account issues on the Aplus.net forum. If you need additional
account assistance, please email escalations.support@cs.aplus.net and a member of the Aplus.net
escalations team will follow up with you.‖
I began a series of strongly-worded emails with the above email address on Monday. Yesterday evening
I finally received a response.
―Good evening, I‘m the Escalation Manager for Aplus.net and will be taking over your issue from support
to make sure we have our migration team take a look into this tomorrow. Since it‘s the holiday we will
email you updates unless your request otherwise. Our teams will be working tomorrow so we‘ll get you
an update throughout the day as soon as we have it.‖
As of Thursday, 11/26/2009, at 6pm CST the forums are back up and running again. Hopefully aplus.net
will get their act together and avoid breaking them again as they continue their ―upgrade‖ process.
John Hansen
Add starLikeShareShare with noteEmailAdd tags
Oct 6, 2009 11:00 AM
Say ―Good Bye‖ to sensor port shortage
by Xander
I am sure I am not the only one who has run out of sensor ports
before on their NXT. Well now you need not worry about that
problem anymore. HiTechnic brought out their longawaited Sensor MUXtoday. It‘s not just a port splitter but it also
takes care of polling the sensors for you, so it will work with I2C
and analogue sensors. You can have up to 4 of these SMUXs
connected to your NXT in all. The following sensors are
currently supported:

Analogue (EOPD, light sensor, gyroscope, sound sensor)





Lego Ultra Sonic Sensor
HiTechnic Compass Sensor
HiTechnic Colour Sensor, both the new and the old one
HiTechnic Accelerometer Sensor
HiTechnic IR Seeker Sensor, both the new and the old one
I‘ve had the pleasure of owning one of these beauties for a few months now, so I could work on
a ROBOTC driver for them. I will be releasing a new version of my suite later today, so keep an eye out
on the project page.
Add starLikeShareShare with noteEmailAdd tags
Sep 28, 2009 4:31 PM
Remote control your brick with the HiTechnic IRReceiver
by Xander
HiTechnic have come out with a new sensor today. This time it‘s a
sensor that will allow you to control your brick with one of the PF
remotes. The IRReceiver can be used with both the PF IR Remote
Control and the newerPF Speed Remote Control.
It would allow you to use your PF remotes to control your NXT motors
in a very precise way. How about a robot that won‘t run into a wall,
even if you accidentally steer it towards one? I‘ll be building mine into
the holonomic drive robot I‘m currently working on to allow manual
control for demoing purposes. I can‘t wait to get my hands on it!
Add starLikeShareShare with noteEmailAdd tags
Sep 14, 2009 1:35 PM
LEGO MINDSTORMS NXT installation on Snow Leopard
by john
1 person liked this
There have been a number of reports that a fresh install of the LEGO MINDSTORMS NXT software on
Snow Leopard (Mac OS 10.6) fails. From LEGO support comes the following instructions for a work
around:
―Copy all files from the Mindstorms CD to a folder on your desktop. Open that folder and look under
―Parts‖. Locate MindstormsUnivEdu.pkg or MindstormsUnivRet.pkg. Right-click and choose ―Show
Package Contents‖. Navigate into the Contents/Resources directory and delete the ―preflight‖ file. Close
this package and run the meta-package from the [folder on your] desktop to install Mindstorms NXT.‖
Add starLikeShareShare with noteEmailAdd tags
Sep 3, 2009 8:25 AM
NeXT Tools for Mac OS X
by john
2 people liked this
If you use a Mac to program your NXT then do yourself a favor and check out the new build of my NeXT
Tools application for Mac OS X. In this application you now have at your disposal the tool windows from
the Bricx Command Center (BricxCC) IDE that have historically only been available for Windows PCs.
This native carbon application gives you Mac versions of the direct controller tool, diagnostic info,
watching the brick, the brick piano, the brick joystick, the remote tool, messaging, memory map, MIDI
conversion, Wav to RSO conversion, firmware download, and the NeXT Explorer and NeXT Screen tools.
It supports communication via both USB and Bluetooth. And it‘s a universal binary that runs on Tiger as
well as on Leopard or the recently released Snow Leopard OS.
Download the application from the utilities page on the BricxCC site.
Add starLikeShareShare with noteEmailAdd tags
Aug 12, 2009 5:31 PM
pbLua Beta 18a released
by guy
Here‘s a message from Ralph Hempel, developer of pbLua:
I‘m pleased to announce the release of pbLua Beta 18a. Yes, I‘m still calling it Beta, but the feature set is
pretty much frozen and I‘m just fixing bugs as they come up. I expect to do a non-Beta release Real Soon
Now…
The main pbLua site is now easily found here
You can download the latest zip file with firmware and sample code here
There are tutorials here
Here is a summary of the new stuff - and I think I‘ve got the last of the really ugly bits cleaned off…
1. Reduced image size (134.5K) - more room for file and log storage (121.5K)
2. Support for the NXT 2.0 color sensor
3. Generally improved sensor handling - just specify the type, no need to fiddle with the direction and
value of the digital I/O
4. Preprocess sensor values in raw, pct full scale, edge, pulse and other modes. Support (untested) for
RCX angle sensor
5. Support for the synchronise mode on motors
6. Selectively load portions of the NXT library to save RAM space
Have fun, and please feel free to email me with any questions.
Ralph
Add starLikeShareShare with noteEmailAdd tags
Aug 5, 2009 2:31 AM
HiTechnic wants YOU!
by Xander
HiTechnic are currently looking for a Customer Support / Order Specialist! If a Mindstorms related job
has been your life-long dream then look no further!
Your tasks will include:





Track and process customer orders
Customer support via phone and email
Create customer support test programs using NXT-G, NXC, RobotC and LabVIEW
programming languages
Design, build and modify LEGO MINDSTORMS Technic models
Create MINDSTORMS Technic model building instructions
More details and job requirements can be found here: [LINK]. This looks like the perfect job for many of
our readers, I daresay!
Good luck!
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2009 1:39 AM
Spherical NXT
by guy
What can you do with an NXT and some other ―stuff‖? Here‘s a nice example from Nils Volker – a
spherical robot. Check out the videos at his website.
Add starLikeShareShare with noteEmailAdd tags
Jun 30, 2009 9:18 AM
Ada now available on MINDSTORMS NXT
by guy
Ada, the language designed for long-lived applications where safety, security, and reliability are critical is
now available on the MINDSTORMS NXT through GNAT
GPL: http://libre.adacore.com/libre/tools/mindstorms/
The GNAT GPL Ada development environment is a Free Software toolset targeting the FLOSS and
Academic communities. The MINDSTORMS NXT port is maintained by AdaCore (www.adacore.com).
– Matteo Bordin bordin@adacore.com
Add starLikeShareShare with noteEmailAdd tags
Jun 29, 2009 1:01 PM
MCP4 forum applications
by guy
Are You a Hardcore LEGO® MINDSTORMS® NXT User?
Do you want to have a seat in our closed web forum, the MINDSTORMS Community Partners, where we
involve you in our development and tests of new ideas, concepts, prototypes, products and discuss
various issues around our SW, HW, FW and wetware…?
Then send an application via email with a description of yourself, your involvement with LEGO
MINDSTORMS, your special areas of interest, and a paragraph on why you are eligible to be an MCP
member!
Send it to mindstormsnxt@lego.com with the header ‗MCP 4 application‘.
Applications will be received from now and until 31 July 1200 GMT. All email applications received after
this date will be rejected.
Applicants must be 18 years old to apply.
Add starLikeShareShare with noteEmailAdd tags
Jun 19, 2009 1:44 AM
LEGO Beyond Toys
by guy
A facinating university master class dealt with building new sensors for NXT. The outcome is a collection
of robots and sensors, including a water pump, GPS sensor, Wireless sensor bridge and an Optical
Mouse sensor. Each built with 3D rapid prototyping ―legoish‖ casting. Details on the class and the results
can be read here:
Lego Beyond Toys
Lego Beyond Toys 1
Lego Beyond Toys 2
Add starLikeShareShare with noteEmailAdd tags
Jun 17, 2009 12:32 AM
Weather forecasts on your NXT
by Linus
or communication between an NXT, a computer and the internet.
Quite some time ago I wanted to give a brief tutorial about communication between an embedded
program running on the NXT (for example written in NXC) and a computer. The reasons one would want
to send data from an NXC program to a PC or vice versa can be divided into two main categories: Either
the NXC program wants the computer to do things it can‘t (complex calculations, look up information), or
a computer program needs to tell an NXC program what to do (or which
information to collect or log).
In the search for a good example I came across this idea: Wouldn‘t it be
great to show how the NXT could retrieve data from the internet (although
the display is to small for a browser
)? The first kind of data I could
think of were weather forecasts (or current weather conditions). So here
we are: This is how it looks if your NXT can show the current temperature
and brief conditions of any place around the world (screenshot taken with
J. Hansen‘s tool NXTScreen).
Short description: The NXC program (client) can request weather
conditions by storing a string in one of its mailboxes. The computer
program (server, written in MATLAB) constantly looks for messages there
via direct commands. If one is found the according weather conditions will be retrieved from the internet
using the Yahoo! Weather RSS service. The most important data are extracted and sent back to the NXT
(again by storing a string in a mailbox). The NXC program in term waits until a string can be read from the
queue, parses it and finally displays city name, current temperature, and condition.
Left and right buttons cycle through multiple locations (i.e. cities); the orange center button toggles
between Fahrenheit and Celsius mode! Interested? Read on!
The main requirements for bi-directional communication between an NXC program and a computer
program are functions to send and receive strings. Once we have these, we can define our own protocol
and send information back and forth. In NXC, we can use the function SendMessage() to store a string in
a mailbox (let‘s call this the NXC-Outbox for a moment, number 0 is fine). To retrieve strings from a
mailbox (that have been put there by the computer), the function ReceiveRemoteString() works well. This
time, we better use a different mailbox queue, e.g. number 1, and name it NXC-Inbox.
Half there! The NXC program can send and receive data, how about the PC side? We need some sort of
program or library that supports direct commands (those are commands you can use to remote control
your NXT; you can find more details in the Bluetooth Developer Kit). There are many implementations,
good overviews are eitherthis Wikipedia table or Steve‘s comparison. Even more, we need to find a
solution that already supports the direct commands MessageRead and MessageWrite (I‘m saying this
since some packages are still under development and don‘t support the full set of commands). If not,
those direct commands would have to be implemented (the Bluetooth Developer Kit has details about the
format).
So let‘s say we already have MessageRead and MessageWrite. These are the counter-parts
of SendMessage()and ReceiveRemoteString() in NXC. We use MessageWrite to send a string to the
mailqueue we called NXC-Inbox before (so the PC‘s outbox is the NXT‘s inbox). Just as well we
use MessageRead to see if there‘s something waiting for us in the NXC-Outbox (again, this would be the
inbox from the PC‘s point of view). If you get confused, don‘t worry. Just remember that the computer has
to receive what the NXT sends and the other way around.
Almost done. We have everything we need. We can send little ―orders‖ (commands would be a better
word) from the NXT to the PC, for example. Of course we have to define what those commands mean.
The PC could see the incoming strings, react on them and send answers. This is what my weather demo
does. I use Yahoo! Weatheras actual source, so the program on the PC retrieves data from the internet
(it‘s actually data in the RSS newsreader format, the API details are described here).
As language I chose MATLAB (and the RWTH - Mindstorms NXT Toolbox, which I happen to be a
developer of
). It provides the direct commands mentioned above, as well as a very easy-to-use
built-in function to retrieve data from the internet. In theory the server could be implemented in any
language. A detail I didn‘t mention before is that we of course have to connect the computer to the NXT
somehow. This can be a bit complicated if you want to use Bluetooth, it‘s usually easier with USB, but
always depends on your OS and hardware (as well as the programming package you use). With the
MATLAB toolbox, you just have to plug in the USB cable or connect the Bluetooth dongle with the driver
software, and you‘re ready to go. Other packages are similar easy to use.
So finally, where is the sourcecode? Here‘s the NXC client program, and here‘s the MATLAB server
program. If you don‘t have MATLAB installed, this HTML version with syntax highlighting is easier to read.
Both programs are heavily commented and can be used freely (GPL license).
If you just wanted to write a program that reacts on certain weather data (or whatever is available on a
computer these days), you could have done this without an NXC program of course (just using remote
control software like the MATLAB toolbox), resulting in a much simpler program. But then you‘re in certain
other ways limited (Bluetooth latency, or real time motor control for example). The way I documented it in
this little tutorial, you could adapt the NXC program to work without a computer in range, and only use
external data if they are available. The main point is that I wanted to illustrate some NXC-to-Computer
communication.
So what do you think? What new kind of applications are possible? Any great ideas? If you did anything
interesting, useful, or funny with this example, or have any other questions, please don‘t hesitate to start a
discussion in the forums!
Linus Atorf
Add starLikeShareShare with noteEmailAdd tags
Jun 2, 2009 10:56 PM
What to do next? – Part 2
by guy
During my last blog I gave a very general overview of digital systems and digital communication. Now let‘s
dive into development!
To begin you are going to need a development board for an FPGA or microcontroller. I chose the Digilent
(http://www.digilentinc.com) Nexys 2 board. It uses a Xilinx Spartan 3E FPGA. You will also want a bread
board to develop the communications circuit. Digilent also sells I/O devices called PMODs. I got their
servo motor interface PMOD. As a side note, all these components will work with a project for the RCX or
NXT. Finally you will need some resistors to build into the input circuit to keep from frying the FPGA.
Remember how I said digital systems work in pulses? Well these pulses are read every so often as
defined by the system clock. For the RCX servo motor controller we have to have two clocks. Using
verilog (a programming language for hardware) we can divide the clock into the two clocks we need.
Clock speeds can vary from servo to servo, but expect to program for 10 pulses per millisecond. The
other clock will need to run at 10 pulses per second for the RCX. To write code in verilog, you will need a
program from Xilinx that will allow you to create the file you download to the FPGA. For help regarding
verilog, send me a PM. Wikipedia has good documentation, but once you begin to understand it, it is
really easy.
Once you have your two clocks made, let‘s work on the important part: the servo PWM. This is the real
hard part. For this you are going to need to use one of your clocks (the faster one). You need to be able
to control the 0‘s and 1‘s going to the motor. This can be done with a simple if statements. Again, exact
times depend on the motor you choose!
Now you need to read the signal coming from the RCX. I uses eight clock counts (one byte) but you can
work with different counts. You want to count up all the 1‘s in your chosen cycle. Your code then needs to
pass this to the PWM controller and have it decide on the time. That is it. Pretty simple right? Well, try and
see. If you can master this fairly simple project (yet one that no one has tackled) then you are ready to
work on the NXT!
This is how I approached the problem, and it sets you up for a good basic understanding of digital
systems. Wikipedia and google are your friends. Once this all makes sense then you can begin to work
on the NXT. I will say the I2C stuff for my next blog, but I think this will take you enough time!
–Andy Milluzzi
Add starLikeShareShare with noteEmailAdd tags
May 25, 2009 11:49 AM
PID Control: Staying Put
by Xander
I racked my brain trying to come up with another example of PID control that didn‘t involve a whole lot of
hocus pocus and math for my next article. Then I remembered; a few months ago when I first got
my Hitechnic Magnetic Compass Sensor, I wrote a quick program to test it. It was nothing special, just a
program that would allow the robot to sit on a spinning platform but remain pointing in the direction it
started off at. I had forgotten that it has a small PID control in it to make it react faster if the platform was
spun more quickly.
Popout
So how does this one work? When the program starts, the robot checks its current heading and makes
this its Set Point. Any change in the position of the spinning platform will cause the robot to rotate as
well, thus changing its heading. The difference between the new heading and the Set Point is the error.
Using the PID control a response is calculated and actuated by the motors. If the platform is rotated
slowly, the robot will in turn only pivot slowly about its axis. However, if you give the platform a nice spin,
the robot will speed up its motors and try to keep up.
You can download the RobotC source code from here: [LINK]. Make sure you calibrate the compass and
mount it as far from the motor and brick as possible (at least 15 cms) due to magnetic interference.
Add starLikeShareShare with noteEmailAdd tags
May 25, 2009 1:06 AM
Frequency response (dB/dBA) of the sound sensor
by Linus
When playing around with the NXT‘s sound sensor I wasn‘t probably the only one wondering about the
different modes, dB and dBA. Without going much into detail, dB (or decibel) is the unit to measure sound
pressure, basically what we describe as volume. This kind of measurement is not that simple (due to the
physics behind sound levels, frequency, and so on). Also the human hear interprets sounds a certain
way, which is why we have adjusted decibels, dBA. You can read a brief description on the official site of
the NXT sound sensor.
While all the theory is one thing, I wanted to see how the sound sensor reacts on tones of different
frequencies in reality. And what would be easier than to use the NXT‘s built-in speaker? You can use it to
produce a tone of a given frequency (for example with the direct command PlayTone), and then record
the sound pressue with the sound sensor. That is exactly what I have done (the MATLAB script can be
found here), and here are the results:
Now this looks interesting! It shows how the sound sensor determined different volume levels for different
frequencies, whereas the actual volume of the speaker was not changed. Since two unknown devices
where used in this test (the NXT‘s sound sensor as well as its speaker), we cannot know where exactly
this behavior comes from. And as I mentioned above, measuring sound pressure levels is a complicated
thing, which is why it is hard to say (for me, at least) how the curve should look in an ideal world. But we
can analyze the data a bit further without having to worry too much about exact acoustics.
With dBA units one tries to account for the fact that different frequencies are perceived as having a
different volume by the human ear. There are different weightings, the following picture shows the case
for dBA (taken from this site):
As you can see, the human ear perceives tones between 1kHz and 10kHz as the loudest ones. To see
what the sound sensor does when returning the data in either dB or dBA, I simply divided dBA by dB
values to see their relative amplification:
The shape of this curve is not quite similar to the one we expect (note the different axes in the two plots).
There is no real conclusion that can be drawn here, at least not with more tests…
So what is the use of these new insights (if any)? First of all, we have a picture of the difference between
dB and dBA modes. Apart from some aspects of the NXT speaker one could discuss (but I will not do this
right now), we know that the sound sensor picks up different tones with different readings. Unfortunately,
the sound sensor reading is also influenced by its distance from the speaker. What we could use however
are relative volumes of different tones.
Maybe this way multiple NXTs could communicate with each other via beeps, independent from their
distance (i.e. from the absolute volume of the beeps). I imagine a certain beep-code being sent,
something like a sequence of tones with different frequencies. The sound sensor could record the
according sound levels of the tones, and calculate the ratio between them. If everything goes well, this
ratio should stay fairly constant and enable transmission of information.
I am going to investigate this idea further some time in the future. Another thing on the to-do-list would be
to repeat the described experiment, but this time with different (better) speakers…
Add starLikeShareShare with noteEmailAdd tags
May 20, 2009 4:53 AM
What to do next? - Part 1
by guy
1 person liked this
I have had the honor of being a member on the nxtasy.org forums for six months now and I have seen
some amazing things done with the NXT. Each time I see someone do something new or get a new
sensor I keep thinking what‘s next. I don‘t mean next by parts or new Mindstorms, I mean next in
expanding what we already have. As many of you know, I am a computer Engineering student at RoseHulman Institute of Technology. During winter term, I was introduced to a new form of micro processing:
the FPGA. FPGAs, or Field Programmable Gate Arrays, are programmable logic devices developed by
Xlinix in the 1980‘s. What makes these devices special is that you control how they process data and you
control how they interact with other digital systems. To me this seems like a perfect way to expand my
NXT‘s power. Over the next few weeks I plan to introduce you to the basics of embedded hardware
development and apply those skills to create useful sensors and processing units that can be change to
do whatever you like, whenever you like; think super-sensor system! Now before we can develop for
something that is as complex as the NXT, we need to start with the basics. To understand logic devices,
you must understand that digital systems run in 0‘s and 1‘s and communicate through pulsed signals (this
method is called serial connections). While the NXT has several other components, like memory and
registries, we first need to understand how to make things talk. A relatively simple demonstration can be
seen in the RCX servo motor controller I developed. By writing my own function that creates a pulsed
signal between the RCX output and FPGA, the RCX is able to interact with the rest of the world in a much
more complex manner. The pulsed signals coming out of the RCX were reduced in voltage and the FPGA
clock was adjusted to accept the speed of the RCX processor. From this the FPGA reads the signal and
produces the correct response. How that exactly works is another blog, but understanding the high level
serial connection is the first step to understanding development for the NXT. I can go on for pages and
pages on this technology, but I will leave you with this to digest about basic digital communication. If you
would like more information, please feel free to PM me on the forums or check out Wikipedia.org.
– Andrew Milluzzi
Add starLikeShareShare with noteEmailAdd tags
May 20, 2009 4:53 AM
New contributor
by guy
I would like to welcome Linus Atorf to NXTasy list of contributors. Here‘s some bio on Linus:
Hi everybody! I‘m Linus Atorf, a 25-year-old physics student from Aachen, Germany. I‘ve been working
with LEGO Mindstorms for 2 years now, since I joined the Insitute for Imaging and Computer Vision at
RWTH Aachen University. There I‘ve helped developing the RWTH - Mindstorms NXT Toolbox for
MATLAB from scratch. Since 2007, every year almost 400 students (field of study Electrical Engineering,
Information Technology, and Computer Engineering) work with 200 NXT sets during a full-time laboratory
course lasting 8 days [1]. The lab is used to teach the first-year students (about 20 years old)
programming in MATLAB, mathematical methods and of course teamwork skills, while hopefully having
some fun with LEGO robots. Most of the time I‘m working with MATLAB, but recently I also began to
enjoy NXC. During my work I occasionally stumble upon interesting NXT-related things I‘d like to share or I could show you some of the impressive robots our students build (like this tic tac toe playing bot [2])…
[1] http://mindstorms.lfb.rwth-aachen.de/index.php/en
[2] http://thenxtstep.blogspot.com/2008/12/tic-tac-toe-playing-nxt.html
Add starLikeShareShare with noteEmailAdd tags
May 10, 2009 12:04 PM
How do we perceive objects?
by guy
1 person liked this
Nils Voelker sent me an email on this NXT creation he made. It was a part of an art and design exhibit in
Netherlands. The exhibit had images of objects such as an apple or a chicken, an eye-tracker followed
the observer and recorded the points on the object he looked at, and this ceiling-mounted NXT made
spots on a piece of paper recording these points. See more pictures and videos on Nils site here.
Add starLikeShareShare with noteEmailAdd tags
May 4, 2009 3:00 AM
Introduction to PID control
by Xander
Popout
In my previous article I mentioned that closed control systems are used in a cruise control to maintain the
speed of a car, despite varying outside influences such as hills. Line following is not all that different from
maintaining a certain speed. There‘s an ideal situation we‘d like to maintain, called the Set Point, in this
case keeping the robot centered over the line. The outside influences aren‘t hills but corners, unequal
motor speeds and differences in the amounts of resistance between the left and right axels and wheels.
If we didn‘t compensate for these things somehow, we‘d end up losing the line pretty quickly.
The straightforward approach
A very unsubtle way to approach this problem is to simply stop the robot when it loses the line, turn to
make it find the line and then continue straight until it loses the line again. Rinse and repeat. Your robot‘s
path would probably resemble something like this
It‘s not a very efficient path to travel and your robot won‘t be able to accelerate much before having to
grind to a halt to make a turn to get back onto the line. Surely there has to be a better way to do this?
The answer is Proportional, Integral and Derivative (PID) control.
The PID approach
PID control allows you to not just base your robot‘s behaviour on whether or not it can see the line but
also on how quickly it‘s zig-zagging across the line and how long it‘s been off-centre. PID control uses a
few terms and concepts that need to be understood before we can move on to the next part:
Set Point – our preferred position over the line.
Current position – our current position over line.
Error – the difference between the current position and the Set Point.
Proportional – provides a linear response to the error.
Integral – keeps track of the accumulated error over time. That means that the longer the robot is not
centered, the more significant this part becomes.
Derivative – provides a response which is proportional to the rate of change. This part becomes bigger
the faster the robot loses track of the line.
The significance of the above PID factors is controlled by three constants, kP, Ki and Kd. These are
used to increase or decrease the amounts the factors add to the overall response of the system.
Putting theory to practice
Sensors come in all shapes and sizes. I was lucky enough to be a beta tester for the upcoming
Mindsensors LineLeader sensor. This sensor has 8 reflective sensors that return a ‗1‘ when they detect a
line and a ‗0‘ when they see nothing. Each one of the internal sensors is given a value, going from 10 for
the left most sensor to 80 for the right most sensor.
Sensor# detecting a line: 5
Value: 50
Sensor# detecting a line: 3, 4, 5, 6
Value: (30+40+50+60) / 4 = 45
Sensors# detecting a line: 8
Value: 80
If the line were right in the middle of the sensor, the value would be 45, so we‘ll use that as our Set Point.
Incidentally, this is also the default value for this sensor.
I made a short video (see also at top of post) to demonstrate the effects of the two most important factors,
P and D. Very often the I factor is not needed for things like line following.
Obviously, given additional time and effort, there are ways to smoothen this robot‘s path even further.
Fine tuning a PID control system is an art. Many books and other types of publications have been written
on the subject. I prefer the very scientific ―fiddle with it until it works‖ approach.
In my next article I will go more in depth and also deal with the actual programming side of it. If you‘re
allergic to math, don‘t worry, I‘ll try to keep it as math-free as I can. I‘ll try to strike a balance between
theory and practice.
Add starLikeShareShare with noteEmailAdd tags
May 3, 2009 7:12 PM
Hacking the new digital temperature sensor
by guy
Our forums user Mars Flyer hacked the new digital temperature sensors. These sensors did not had
support so far in the NXT 1.1, but using a program in NXC he found the port and the chip inside
(Microchip MCP9803). Now these sensors can be used with NXC. Read more here.
Add starLikeShareShare with noteEmailAdd tags
May 3, 2009 5:06 PM
Control systems continued: PID control
by Xander
In my previous article I mentioned that closed control systems are used in a cruise control to maintain the
speed of a car, despite varying outside influences such as hills. Line following is not all that different from
maintaining a certain speed. There‘s an ideal situation we‘d like to maintain, called the Set Point, in this
case keeping the robot centered over the line. The outside influences aren‘t hills but corners, unequal
motor speeds and differences in the amounts of resistance between the left and right axels and wheels.
If we didn‘t compensate for these things somehow, we‘d end up losing the line pretty quickly.
The straightforward approach
A very unsubtle way to approach this problem is to simply stop the robot when it loses the line, turn to
make it find the line and then continue straight until it loses the line again. Rinse and repeat. Your robot‘s
path would probably resemble something like this
It‘s not a very efficient path to travel and your robot won‘t be able to accelerate much before having to
grind to a halt to make a turn to get back onto the line. Surely there has to be a better way to do this?
The answer is Proportional, Integral and Derivative (PID) control.
The PID approach
PID control allows you to not just base your robot‘s behaviour on whether or not it can see the line but
also on how quickly it‘s zig-zagging across the line and how long it‘s been off-centre. PID control uses a
few terms and concepts that need to be understood before we can move on to the next part:
Set Point – our preferred position over the line.
Current position – our current position over line.
Error – the difference between the current position and the Set Point.
Proportional – provides a linear response to the error.
Integral – keeps track of the accumulated error over time. That means that the longer the robot is not
centered, the more significant this part becomes.
Derivative – provides a response which is proportional to the rate of change. This part becomes bigger
the faster the robot loses track of the line.
The significance of the above PID factors is controlled by three constants, kP, Ki and Kd. These are
used to increase or decrease the amounts the factors add to the overall response of the system.
Putting theory to practice
Sensors come in all shapes and sizes. I was lucky enough to be a beta tester for the upcoming
Mindsensors LineLeader sensor. This sensor has 8 reflective sensors that return a ‗1‘ when they detect a
line and a ‗0‘ when they see nothing. Each one of the internal sensors is given a value, going from 10 for
the left most sensor to 80 for the right most sensor.
Sensor# detecting a line: 5
Value: 50
Sensor# detecting a line: 3, 4, 5, 6
Value: (30+40+50+60) / 4 = 45
Sensors# detecting a line: 8
Value: 80
If the line were right in the middle of the sensor, the value would be 45, so we‘ll use that as our Set Point.
Incidentally, this is also the default value for this sensor.
I made a short video to demonstrate the effects of the two most important factors, P and D. Very often
the I factor is not needed for things like line following.
Obviously, given additional time and effort, there are ways to smoothen this robot‘s path even further.
Fine tuning a PID control system is an art. Many books and other types of publications have been written
on the subject. I prefer the very scientific ―fiddle with it until it works‖ approach.
In my next article I will go more in depth and also deal with the actual programming side of it. If you‘re
allergic to math, don‘t worry, I‘ll try to keep it as math-free as I can. I‘ll try to strike a balance between
theory and practice.
Add starLikeShareShare with noteEmailAdd tags
May 2, 2009 4:34 PM
Comparing firmware
by guy
IAR recently released a free compiler for the open source firmware code (get it here). Lego uses this
compiler to develop the firmware for NXT. However, it is also possible to compile the sources with the free
GCC (see the NXTGCC project here). Rasmus Ulslev Pedersen has begun to compare the performance
of the commercial compiler IAR with the free open source alternative GCC. You can see the compiler
comparisons here.
Add starLikeShareShare with noteEmailAdd tags
Apr 30, 2009 12:47 AM
Another new contributer to NXTasy.org
by guy
I‘m happy to introduce Rasmus, known as nxtgcc in the forums, as a new contributor to NXTasy.org.
Here‘s some bio on Rasmus:
Hi fellow Mindstorms fans. My name is Rasmus Ulslev Pedersen, LEGO MCP member, and I enjoy
working with firmware replacements on NXT. I created the first firmware development toolkit for NXT; it is
called NXTGCC and you can download it here. It‘s main audience are those of us who like to take
Mindstorms to the NXTreme
. I work mainly with the GCC tools in relation to NXT, but I certainly
enjoy watching the work done by programmers using the IAR compiler. For a living…, I do this stuff: I am
trying to contribute useful things via research and teaching activities as an associate professor, the
Embedded Software Laboratory, Dept. of Informatics, Copenhagen Business School (see here).
Add starLikeShareShare with noteEmailAdd tags
Apr 26, 2009 1:58 PM
New HiTechnic IR Seeker V2 sensor
by Xander
As some of you might have noticed, the IR Seeker hadn‘t been
available on the HiTechnic website for a while and was recently pulled
from the Lego Shop. However, fears of its demise were highly
exaggerated as a newer, more feature rich version has taken its place.
The new IR Seeker is not only able to tell the direction and signal strength of normal IR light but also on
two separate modulated frequencies, namely 600 and 1200 Hz. That would allow you to use it to
distinguish between two different homing beacons, for example.
A RobotC driver for this new sensor is available as part of the latest release (RC1) of the 3rd Party
RobotC Drivers Suite, which you can download here. Other changes in this release include a driver for
the HiTechnic Compass sensor.
Add starLikeShareShare with noteEmailAdd tags
Apr 24, 2009 11:31 AM
Introduction to control systems
by Xander
Control; it‘s all around us. We use it every time we move a finger, take a step and with every breath of
our lungs. Nature has plenty of automatic control systems, like the body‘s temperature, heart rate or even
the feeling that you need to eat. Other control systems are learned like keeping your balance while
walking or riding a bicycle.
Open control
There are many types of control systems. An open control system is one without feedback. Think of it as
telling your robot‘s motors to run at 70% without actually checking if they‘re turning that fast. It‘s blind
control. Your motors will receive the same amount of power no matter what. What will happen if your
robot encounters rough terrain or an incline? The motors will slow down, despite you having set the
speed to 70%. This is because your control system doesn‘t measure desired speed versus actual speed.
Closed control
A closed control loop is one where the actual result of the controlling action is measured and compared to
a desired result. The desired result is also known as the ―Set Point‖. The difference between the Set
Point and the actual result is known as the error. This error is fed into a system that calculates the motor
speed to be sent to the motors based on this error. Cruise control is a great example of this kind of
system. You set the Set Point to 80 km/h, and the control system will calculate the right amount of power
the engine should generate. On the normal flat road this will be a fairly constant amount. However, when
you hit a hill, your engine will encounter more resistance and the car will slow down to 70 km/h. The new
slower speed is compared to our Set Point, 80 km/h and an error of 10 km/h is calculated. The control
system calculates the new (higher) power the engine should generate and make it run faster. The car‘s
new speed is checked against the desired speed and if there is still an error, the control system will
perform additional corrections until the desired speed is reached once again. This loop will repeat until
you switch off the cruise control or you run out of petrol!
The tricky part is how to calculate by how much the engine‘s output should be increased to match the
desired speed. There are various methods for doing this but the most commonly used one is the
proportional-integral-derivative control (a.k.a PID-control). In the next article I will discuss what PIDcontrol is, how it works and how you can use it to follow a line.
– Xander
Add starLikeShareShare with noteEmailAdd tags
Apr 22, 2009 11:40 PM
GDB debugger for NXTGCC
by guy
Rasmus Ulslev Pedersen has been developing NXTGCC, a GCC toolchain based NXT firmware
alternative. Now, NXTGCC also support low-level debugging via GDB. This means that one can but
breakpoints in the executed code, and get on a USB-connected PC information on the ARM CPU state,
namely registers etc.
More details can be found in the GDB page of NXTGCC project.
Add starLikeShareShare with noteEmailAdd tags
Apr 21, 2009 9:46 AM
Wii as 3D tracker
by guy
Popout
This post is not about an NXT application, but rather on a solution I had in mind long ago (but had no time
to implement) which can be very useful for NXT. One of the caveats of NXT is accurate 3D positioning.
Since GPS is both inaccurate within centimeters scale and indoor reception is problematic there is no
easy solution for 3D positioning. The video above shows how a group in the university of Cambridge
made a 3D tracker with 2 Wiimotes. I challenge everyone to come up with a similar solution for NXT, and
would be very happy to blog about it!
Add starLikeShareShare with noteEmailAdd tags
Apr 19, 2009 5:52 PM
New NXTasy.org contributer
by guy
I am happy to introduce a new contributor in NXTasy.org! Xander Soldaat from the Netherlands. Here‘s
some bio from him:
Hello everyone. My name is Xander Soldaat and I live in Rotterdam, The Netherlands. I‘m currently 34
years old and work as a Linux project engineer. I‘ve been programming and building with my NXTs for
about 1.5 years now. My preferred programming environment is RobotC. Prior to dabbling with my NXTs,
I used the Parallax Propeller and the Basic Stamp. I‘ve had Technic Lego since I was about 5 or so and
have always had a keen interest in electronics. When I am not playing with my robots, I like to spend time
with my wonderful wife, two dogs, cat, 5 turtles and tortoise. I also like to play World of Warcraft every
now and again.
I also keep my own blog, which you can read here: [LINK]. I write mostly about robotics and the NXT in
particular.
Add starLikeShareShare with noteEmailAdd tags
Apr 14, 2009 1:10 AM
LabView interface for HiTechnic Sensors
by guy
Finally, with the introduction of their new website design HiTechnic also allow downloading some VIs for
using their sensors in LabView. Their download page has VIs for the compass, color, acceleration,
EOPD, gyro, IRSeeker, prototype and touch sensor multiplexer.
Personally, I find LabView to be the best way to use the NXT with the standard firmware. In particular, the
‗debug‘ mode allow watching the internals of the code running on the NXT using a nice user-interface with
dials, gauges etc. The new sensor VIs are a most-welcome addition to the NXT toolkit by LabView.
On a more peronal note, NXTasy has been too quiet lately. I have been very busy with real-world stuff,
but hopefully in the future I will have more time to keep this blog updated. I think it is good to have more
than one good news source (i.e. thenxtstep), and in particular am trying to steer this blog toward more
AFOL interests. If you are an AFOL who post regularly on the forums, and want to join the blog writers
group, please email me.
Guy Ziv, NXTasy.org editor
Add starLikeShareShare with noteEmailAdd tags
Mar 8, 2009 2:20 PM
Teach creativity with LEGO Engineering
by claude
Seems that this blog starts sinking into ice age. Hmm…
To globally warm it up, I want to share with you the link to a most exciting presentation conducted by
Tufts professor Chris Rogers.
Enjoy !
Add starLikeShareShare with noteEmailAdd tags
Jan 25, 2009 4:57 PM
1D-navigation using a scalar Kalman filter
by claude
This Tribot has a fixed caster and moves back and forth into one direction only. The special receiver from
ourinfrared/ultrasonic beacon system is mounted on the NXT. Not visible on the picture is the beacon
itself that periodically sends out IR/US bursts, which are used to measure the distance between the
robot and the beacon. The robot is programmed to follow a 1D-path that corresponds to an inverted
cosine in the time domain. It‘s the goal that the robot should move along the planned trajectory with best
timing.
Valuable distance cues are only available rarely. Errors in the localization system may occur. In order to
estimate the position and control the robot‘s speed, we are using a scalar Kalman filter. The program has
been realized with the LabVIEW NXT toolkit. (It was particularly tricky to do the job with integer numbers.)
http://www.convict.lu/htm/rob/ir_us.htm#Kalman
Add starLikeShareShare with noteEmailAdd tags
Jan 17, 2009 4:51 AM
NXT MATLAB Bluetooth Router
by Daniele Benedettelli
Ever wanted to setup a complete Bluetooth network made by a master NXT and 3
slave NXTs with the slightest effort? The NXT MATLAB Bluetooth Router NXC
library I wrote solves this problem.
The NXT brick attached to the computer via USB acts as wireless router: it
connects to named slave NXTs automatically, and then forwards them the USB
messages you send from the computer. This way, you can control a 3-mobile robot
team using the powerful MATLAB environment. Click here for details and
download.
Add starLikeShareShare with noteEmailAdd tags
Jan 8, 2009 9:18 AM
Tribot simulation from SimplySim
by guy
SimplySim, a French simulation company, released a package for MS Robotics Developer Studio (whose
‗Express‘ version is free) that simulates TriBot. You can design code that ―run‖ on the simulated TriBot on
a real tribot (via interface, I guess Bluetooth).
The simulation has many sensors implemented, including US. This mean you can, for example, play with
navigation, catching objects, mapping etc. in the simulated office environment.
See information and download here.
Add starLikeShareShare with noteEmailAdd tags
Jan 1, 2009 2:08 PM
Cool Mindstorms site
by claude
There are many excellent LEGO Mindstorms sites out there. Here certainly one of the most remarkable
high level sites from the ETH in Zürich, Switzerland - don‘t be afraid of the German language; just go
through the many projects - :
http://www.tik.ee.ethz.ch/tik/education/lectures/PPS/mindstorms/
… and admire this one:
eth_cmucam_project
Add starLikeShareShare with noteEmailAdd tags
Nov 17, 2008 2:12 PM
new pbLua version
by guy
Ralph has released a new pbLua version.
Changes in website:
The tutorials have all been reviewed for errors again
Improvements in the firmware:
1. BT and USB Consoles works better.
2. Added some more initialization to the motors and tuned the driver. Now the first regulated motor
command works properly.
3. Added (experimentally) the Lua debug library. This allows you to do stuff like set Lua hooks to run
every n instructions so that you can break out of endless loops using the keyboard!
4. Fixed the RS485 routines to not crash if you send data before initializing the port to a baud rate
Good work, Ralph!
Add starLikeShareShare with noteEmailAdd tags
Nov 15, 2008 5:12 PM
Connecting Wii Nunchuk over I2C to NXT
by guy
Popout
Our forums reader Jens Friedrich (a.k.a t.wolf) posted here how to connect the Wii Nunchuk directly to the
NXT. The Nunchuk is an I2C device, with an analog stick and a 3-axis-accelerometer. This mod requires
removal of some resistors from the device, and Jens gives detailed description and images of the
process, as well as the NXC code that read the values from the device.
Excellent work!
Add starLikeShareShare with noteEmailAdd tags
Nov 12, 2008 4:30 PM
HiTechnic Servo Controller
by guy
As most of you know, FRC announced they will move from Vex to using LEGO NXT. For this, the
‗TETRIX‘ system was invented. It is an all metal robotic system, which uses the LEGO NXT as the ‗brain‘.
It can also be cross-built with LEGO Technic parts. The above image, taken from this LEGO Educational
store page shows the new HiTechnic servo motor controller for TETRIX. Since TETRIX can couple to
LEGO Technic, this controller should be useful for ―regular‖ NXT users too. Together with the new DC
controller (see here) these may revolutionize the number of motors one can use per NXT. Each servo
controller can attach to 6 R/C servos, and each DC controller to 2 DC motors. Up to 4 Servo/DC
controllers can be daisy-chained to one NT port. A simple calculations gives a maximum of 6×4x4=96
servos per NXT (this will need carrying lots of batteries, mind you!).
Add starLikeShareShare with noteEmailAdd tags
Nov 12, 2008 6:28 AM
LabVIEW for LEGO MINDSTORMS NXT book
by guy
NTS released Michael Gasperi new book - programming LMS with LabView. Since I was the technical
editor, I promise anyone interested in this field will find it very interesting. It covers LabView 8.5 (but the
toolkit works with LV 7.1+) and describes basic programming as it teaches the NXT toolkit step-by-step.
Order and preview chapter at http://www.ntspress.com/
Add starLikeShareShare with noteEmailAdd tags
Nov 11, 2008 12:16 PM
Spatial sound localizing robot
by claude
Sound localization is an extremely exciting topic. Please consult our site to learn more about it. The page
presents a LEGO™ Mindstorms® robot called Nic_3 that uses NXT and RCX bricks that are linked
through the HiTechnic IR-link module. The 3 DOFs robot samples 600 data-points of a continous sound
source on each channel of the stereo audio sensor. The sampling frequency is 36kHz. Then it performs
the cross-correlation and determines the time-lag between both signals. Applying a novel algorithm
(Kneip/Baumann 2008), the robot is able to localize a sound source in space with an average precision of
20° in azimuth and elevation.
Note that Nic_3 follows Nic_1, a 2D sound localizing robot and Nic_2, the spatial sound localizing robot
prototype being realized by Laurent Kneip that has a better accuracy of 10° -Laurent will
present Nic_2 soon on his site-.)
Also note that Nic_3 has already been used in a 2D-project before, which was annonced here on Sept.
1st 2008.
Add starLikeShareShare with noteEmailAdd tags
Nov 10, 2008 4:10 PM
LEGO Twistcar
by guy
Popout
My 3yr old girl got a ‗twistcar‘ for her birthday, and I was amazed by the ease she managed to move
herself forward, turn and even move backwards only by moving the wheel left and right. I made this
LEGO twistcar as a proof of concept. It uses a single NXT motor and can move forward and turn (very
sharply, in fact). What moves it forward is the friction between wheels and ground - when wheels are tilted
the NXT motor tries to force wheel slip motion. This has large resistance, so the whole thing moves
forward (imagine these wheels where fixed to the ground). When the motorized wheels are in line with the
front wheels, they don‘t affect the motion, and they slow the motion down when they start tiliting to the
other side.
Comments/questions/suggestions - use this topic.
p.s. Philo pointed me to Dave Parker ‗challenge‘ here. This model actually does move like a fish…
Add starLikeShareShare with noteEmailAdd tags
Nov 5, 2008 10:45 AM
PF Battery Box and NXTServo
by guy
Philo again, this time showing here how to hack the PF Battery Box to power mindsensors.com
NXTServo. Also included a LDraw files pack with NXTServo, RC motor and associated accessories.
Add starLikeShareShare with noteEmailAdd tags
Nov 4, 2008 6:44 AM
BlueWii
by guy
Popout
Paul T. published here about his latest project. This is a great combination of NXT, servo motors (4 of
them, controlled with mindsensors.com servo controller), Wii remote and camera sensor. Fantastic job!
Add starLikeShareShare with noteEmailAdd tags
Nov 4, 2008 5:44 AM
Zamor Launcher parts rendered in LDraw
by guy
Philippe Hurbain has put online three LDraw files, allowing rendering of Zamor Launcher, magazine and
sphere. Get them here:
Sphere:
http://www.ldraw.org/cgi-bin/ptdetail.cgi?f=parts/54821.dat
Launcher:
http://www.ldraw.org/cgi-bin/ptdetail.cgi?f=parts/54271.dat
Magazine:
http://www.ldraw.org/cgi-bin/ptdetail.cgi?f=parts/53550.dat
Add starLikeShareShare with noteEmailAdd tags
Nov 2, 2008 4:56 PM
Hacking LDD
by guy
This is not all-together NXT related, but certainly important for LDD models. Two features missing in
LEGO Digital Designer is the ability to control assembly order (which parts is added at what step, what
sub-assemblies are made etc.) and control view angle at different steps. Both features are very needed
for complex models.
A few days ago I found both features EXIST in the LDD file format, but not available in the software as
yet. In fact, an .lxf file made by LDD is a simple archive, which you can open with e.g. the popular WinZip
program. You‘ll find a .lxfml file inside, which is a text file (in .xml markup language). Here there‘re several
important sections:
1. Cameras - LDD defines one camera, with ‗CameraRefID‘ 0. You can set more with different IDs.
Simplest way is saving multiple copies of your model, open each .lxfml in text/xml editor (like free the
Microsoft XML Notepad) and copy the Camera definitions into one, changing the ID to ‗1′, ‗2′ etc.
2. Building instructions - shows the exact order of adding parts. Each ‗Step‘ has several ‗Part‘ instructions
corresponding to invididual Technic/NXT parts. The ‗Parts‘ section details each part, including the LEGO
part number (which is listed in www.peeron.com)
3. View angles - a ‘step‘ instruction can have an CameraRefID attribute (like ‗Scene‘ does) with a
reference ID of one of the camera. Doing this will automatically switch view angle in the ‗Builiding guide‘
mode to the other camera.
I hope LDD developers will make these features available to everyone, but till then the instructions above
should allow (advanced) users to fine-tune their LDD files and make better building instructions for
NXTLog etc.
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Oct 15, 2008 8:22 AM
Odin, a robot for odometry
by guy
A new NXT creation by Philo: ―Odin‖
From the website:
Odin is a robot that estimates its own position while it moves using odometry. In order to do that it
measures as precisely as possible distances travelled and orientation of displacement. Its mechanical
structure is well suited for that: when travelling it rolls on four parallel wheel so it is able to go very
straight. For turning, it raises itself on a central pivot, turns around it and goes down, ready for the next
move.
Building Instructions are online too!
Add starLikeShareShare with noteEmailAdd tags
Oct 14, 2008 3:11 PM
New Community section at LEGOengineering.com
by claude
Attention Educators!
LEGOengineering.com is happy to announce our new Community section. The Community section
empowers LEGO educators from around the world to share lesson plans and activities and get feedback
from other users. Users can also post questions, ideas, tips, problems and start discussions with the
worldwide community. Users can view and share photos of LEGO creations from students.
Becoming a member is easy. Just click the Join Now link here or on the Community front page. Within
seconds you will be able to upload content, ask questions, and make comments.
Check it out at http://www.legoengineering.com/
Add starLikeShareShare with noteEmailAdd tags
Oct 7, 2008 12:13 PM
New encased design for Mindsensors.com PSP-Nx
by guy
Mindsensors.com, obviously aware of the operational and esthetic, difficulties with using the bare PCB
sensors, is now making new encased versions of some of their sensors. It began with the camera sensor,
and now they made the above-imaged PSP-Nx sensor (which allow controlling the NXT by a PS-type
wireless controller). You can also see a 3d display of this sensor is found here.
Add starLikeShareShare with noteEmailAdd tags
Sep 26, 2008 1:19 PM
Advanced Display Image NXT-G Block
by guy
Following my block, Steve made this useful block for displaying just any .ric file with passing up to 5
parameters. Note that to use make your own .ric you‘ll need Andreas Dreier nxtRICeditV2 editor
(download here). You‘ll also need to save the .ric file in the ‗LEGO MINDSTORMS NXT\engine\Pictures‘
directory.
You can download it from Steve‘s page here, which has some other cool blocks and many good NXT
stuff.
Add starLikeShareShare with noteEmailAdd tags
Sep 20, 2008 5:29 PM
Advanced Display Text NXT-G Block
by guy
After a long break, I finally found some time to write a new block. This NXT-G block allows writing text on
the NXT‘s display using different fonts than the system font. In this release, I included two fonts by
Andreas Derier (to whom I owe the motivation for this block. without his new nxtRICeditV2 tool this block
would not be written) - a small letters font and a large letters font. I also include one of my own - an
upside-down font (useful if your robot has its NXT upside-down…). The block usage is self-explenatory,
but just in case - it comes with detailed help which integrate into NXT-G environment when you import it.
As an example for using this block - here‘s a screen capture of my NXT (using NeXTScreen):
I used the Display block to write on line 3, and the new font using the ‗Upside Down‘ font on line 1 (note
that for this font, you need to write your text right-to-left!):
In a few days I will post instructions on making new fonts. I will happily add contributed fonts to future
releases of the block. Also, I learned a few new tricks on block building which I will share in the near
future… Comments/questions are welcome!
Download the .zip package here
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Sep 18, 2008 11:49 AM
Control PF from NXT (the hacked way)
by guy
Controling power-function motors is possible with the IRLink sensor, but if you want a ‗hacked‘way - here
it is: wdaehn posted me this link where he blog on hacking the mindsensors.com RCX motors H-bridge to
control PF:
http://wdaehn.blogspot.com/2008/09/lego-mindstorms-nxt-and-power-functions.html
Nice work!
Add starLikeShareShare with noteEmailAdd tags
Sep 14, 2008 12:14 PM
UCB: A Robotic Controller in a 2×4 Brick
by sivan
Stefan Vorst designed the UCB, a controller small enough to fit in a 2×4 Lego brick (the picture above
shows a UCB that is not housed in a brick). It comes with a power supply that connects to a Lego 9V
battery pack; the power supply fits in a 2×2 brick (shown in the picture). The UCB can control two Lego
motors. It also has a 12-pin connector that can be used to control up to 6 LEDs, or to interface to sensors.
An expansion connector can link the UCB to an NXT; the NXT can then control the UCB. In this mode,
the UCB can function as a motor controller, LED controller, or a sensor unit. The UCB is programmable;
the device in the background is a Pickit 2, a low-cost microcontroller programmer that can control the
UCB.
To learm more and to see the UCB in action, check out a video that shows it controlling motors,
connected to the NXT, and being re-programmed.
®
The UCB has been adopted by Stefan‘s club, the LEGO Modellbaufans Rheinland e. V. Code for the
UCB is available on sourceforge.
Add starLikeShareShare with noteEmailAdd tags
Sep 3, 2008 1:10 PM
PSumo
by guy
Steve Hessenplug came up with this great idea for LEGO events - an easiliy programmable sumo robots.
The idea is simple - the robots are allready built, and each have an RFID reader. ‗Programming‘ is done
by sweaping 5 cards in front of the sensor (each card has an RFID tag, and code for some function). This
is a great idea for very fast programming sessions - but obviously much more limited then NXT-G.
The details, movies and more explenations are here:
http://www.teamhassenplug.org/sumo/PSumo.html
Add starLikeShareShare with noteEmailAdd tags
Sep 1, 2008 10:45 AM
sound localizing LEGO robot
by claude
Here is our new sound localizing robot called Nic_3. It is capable of fixing the azimuth of a sound source
that is located in the horizontal plane. The localizing process is done using the stereo audio amplifier that
we already used with Nic_1 and Nic_2. (For several reasons Nic_2 has not been published yet.) The
amplifier is directly connected to the RCX inputs 2 and 3. (input 1 is used to power the sensor).
The RCX samples 2 x 1000 data-points on each ear at a frequency of 36kHz. Then it processes the timelag between both signals within 100ms. This is impressively fast, because we apply a high speed phase
detection.
The RCX repeats the sampling and detection process 10 times and takes the average of the
measurements. Then the RCX computes the azimuth from the time-lag and sends the angle to the NXT
through the HiTechnic IR-link.
The RCX program has been written in ULTIMATE ROBOLAB and H8-Assembler, while the NXT has
been programmed using the LabVIEW NXT-toolkit.
http://www.convict.lu/htm/rob/phase_detection.htm
Add starLikeShareShare with noteEmailAdd tags
Aug 31, 2008 6:04 PM
NXTLiftBoy Mark II
by guy
Popout
Here‘re details from NXTLiftBoy:
This is my second attempt at a forklift from a single NXT set.
On the model:
I think this one has better looks and a better design than the first one. Getting pictures when taking it
apart is planned for, like an upload to photobucket so anyone with a NXT and a differential can build it
afterwards.
The earlier forklift had a caster wheel that I wanted to avoid this time, and I wanted the center of gravity
down for better stability. I had to resort to allow myself a single part that is not in the NXT set, which is a
differential.
I started with the steering back wheel construction that has a very tight fit. Then I connected the second
motor, but I failed trying to gear it onto the differential, so I took the third motor and mounted it standing
up, which worked out better, because the motor axis was now parallel to the differential. Later I fortified
the lose end of the motor gear axis, to prevent gears slipping when fully accelerating in a turn.
The NXT brick was mounted just on top, but it had to be moved to the front as far as it could to prevent
the inner front wheel from slipping when taking curves. The brick has the USB socket backwards to allow
for easy ―fuelling‖ of software!
Under the brick a cable duct is formed by two beams. The motor cables run from the back through the
duct to the front and bend in rather tight turns, due to very compact building. One has to build it with the
cables inserted in the motors, wiring them afterwards is totally impossible.
Then I made a mounting point for the mast, and fortified the construction to deliver the forces when lifting
onto the front wheels.
The mast is the most obvious part I guess. I optimised the fork design to fit IKEA boxes. These boxes are
the same as those colorful used for my NXT Container Crane. Routing the rope was not so easy, it takes
a turn in the end, because the winch has a vertical axis.
From the remaining parts the cabin was made. It features a roll-over cage, backside motor lid with air
inlets, chair with captain left armrest with controls, rightside controls, steer with turning knob, dashboard,
gas- brake- and clutch pedals, left outside mirror (tilts and swivels), 4 outside spots for lighting the work
place, backlights.
Finally the US transducer was put in. I first had it ‗looking‘ sideways. I intended to program it to count the
rows of IKEA boxes it is passing, take a left turn at row X, then count the columns it is passing take a left
turn at column Y, in order to fetch one or more stacked IKEA boxes at height Z! That would allow for a
fully automated warehouse.
I was skeptical when it comes to the required precision… and indeed i did not manage to program it
properly, as without additional sensors (compass!) tiny errors accumulate.
The US sensor is now on top, so it can in principle see how many boxes it is approaching…
To have the forklift doing something very useful (ahem) and funny, I came up with the idea to have it
solve the Towers of Hanoi:
Towers of Hanoi is a well-known puzzle with three vertical pins. It starts with a pile of discs with top-todown increasing diameters slided onto the first pin. The task is to get the pile to the third pin, but only a
single disc may be moved at the time, and a bigger disc may never be put on a smaller disc. This is
typically solved using a programming technique called recursion. For 4 discs already 15 moves are
required.
Rather than pins and discs, i wanted to start with a pile of IKEA boxes numbered top-down 1, 2, 3. A
higher-numbered box may never be put on a lower numbered box. The forklift is programmed to move the
stack of boxes, one box at the time according to the rules, from the starting position on its left side to the
end position on its right side, while only using a third centered position for intermediate storage.
I failed to obtain sufficient reproducibility in moving, trying both NXT-G (the LEGO language) as well as
Java iCommand. Even preventing slipping by gradually adapting speed would not help. Maybe LeJOS
can do the trick?
So I challenge all to show me it can be done (without additional sensors).
I guess programming is not my strongest quality
Happy lifting once more,
NXTLiftBoy
Add starLikeShareShare with noteEmailAdd tags
Aug 21, 2008 5:57 PM
Minifigure turns 30!
by Josh
Check out this small article about the lego minifig! Did you know that there are 3 people for every 2
minifigs on earth?
Josh
Add starLikeShareShare with noteEmailAdd tags
Aug 21, 2008 1:24 PM
Clap back robot
by claude
Hi all, I just found this cool video from http://www.domabotics.com/projects.php. There are guys out there
doing excellent things!!!
Add starLikeShareShare with noteEmailAdd tags
Aug 18, 2008 3:15 PM
iBlock, the Lego-style iPod speaker
by Josh
From the website:
―Speakers for your iPod can be clunky affairs. They very rarely fit in your pocket, and we‘re almost certain
none of them look like a building block, even if they‘re almost the same size. That is until now! The
iBlocks have been cleverly modelled on one of our favourite childhood building blocks (you know the ones
we mean) and are small enough to pop in your pocket, so there‘s no need for extra cases or wires to
clutter up your bag. The sound is pretty impressive for something so small, the Active Bass System
makes sure the speakers give out quite a kick. All you need to do to get it working is to plug it in and we
just love the volume control buttons that have been camouflaged to look like ‗bumps‘ and discreetly
placed in the middle of the block. Compatible with 3rd Generation iPods onwards and the iPod Touch.‖
They come in red, white, and black. You can buy them here for £12.99
Josh
Add starLikeShareShare with noteEmailAdd tags
Aug 7, 2008 3:14 AM
FLL Climate Connections - Secrets??
by Josh
There are some hidden parts of the FLL Climate Connections mat! Can you find them? I‘ll give you a
hint - there is one secret message and one easter egg!
Josh
Add starLikeShareShare with noteEmailAdd tags
Aug 1, 2008 9:33 PM
Are you ready for Climate Connections?
by Josh
My field setup kit arrived today and the mat is arriving Monday. Are you ready? Be looking in the mail for
yours!
Josh
Add starLikeShareShare with noteEmailAdd tags
Jul 30, 2008 3:29 PM
H.A.L.E. (High Altitude LEGO Extravaganza)
by claude
http://www.unr.edu/nevadasat/HALE/
It certainly was the most exciting robot project we ever participated in.
Many thanks:
1. to the organizers : Dr. Eric Wang and his team at Nevada University. Great job guys !!!
2. to the sponsors : Nevada Space Grant, LEGO Company, Energizer, National Instruments
3. to the contributors :
* all the teams, although, honestly, I love most the FLL‘s contribution -under the guidance of David Levyand ex aequo the 4th grades‘ marshmallows under the supervision of Barbara Bratzel and Chris Rogers.
These kids leave us adults ashamed.
* Brian Davis‘s freefall robot and Gypsy prove reliability and hopefully will deliver lots of good pictures
* Eugene Tsai‘s Brix-Catcher : wow !
* Jurgen Leitner and David Leal Martinez‘ REEL-E : this is real research ! But please explain the name.
* The LEGO Mindstorms mysterious payload leaves us under suspens.
* Finally our own LUXPAK team: thanks to Francis Massen, Jean Mootz and Jean-Claude Krack, the LCD
students and the Convict robotics group: now let‘s hope we get valuable data.
(http://www.convict.lu/htm/rob/hale3.htm and http://www.legoengineering.com/content/view/98/65/ (thanks
Morgan!)
Claude Baumann
Add starLikeShareShare with noteEmailAdd tags
Jul 26, 2008 1:21 AM
Fire extinguisher from LEGO
by guy
Popout
Here‘s a nice project using the new linear actuator from BlueToothKiwi. The fire extinguisher uses the
new Linear actuator combined with the pneumatic pump with the plunger submerged in water tank.
Surprisingly it works like a treat, as you can see in the video.
Warning! be extra careful with anything involving open fire! Kids - don‘t do this without adult supervison!
Add starLikeShareShare with noteEmailAdd tags
Jul 4, 2008 12:42 PM
Happy 4th of July!
by Josh
Have a good day everyone!
Josh
Add starLikeShareShare with noteEmailAdd tags
Jun 22, 2008 3:59 PM
Remote Controlled NXT car
by guy
Juan Antonio sent me a link to this nice project, showing the NXT driving a RC car. In particular, I noticed
the use of the Lattebox NXTe controller I posted about a few while ago. Hopefully more details, like the
program codes, would be available.
Add starLikeShareShare with noteEmailAdd tags
Jun 21, 2008 3:27 PM
3 joint robotic arm
by guy
Popout
Here‘s a nice demonstration of 3 Hitechnic Gyro sensors by Ramin. Three gyros are mounted on the
operator‘s hand, and their reading (i.e. rotation per second) is integrated (using Runge-Kutta method) to
get the absolute angle which is set to the motor‘s. Very nice work! Notice there‘s sometimes a delay
between the operator and the robot, which is expected.
The code for this robot can be downloaded here.
Add starLikeShareShare with noteEmailAdd tags
Jun 18, 2008 10:35 AM
NXTCam v. 2
by guy
Mindsensors.com announced a new version of their NXT camera sensor. The new version comes with an
enclosure, and is supposed to have improved firmware, lens and power management.
I havn‘t seen the new sensor in action, but I sure hope the firmware upgrade improved the usefullness of
this highly desired sensor.
Add starLikeShareShare with noteEmailAdd tags
Jun 16, 2008 4:52 PM
New Datalogging NXT-G Block
by guy
It‘s been a while since I released a new NXT-G block. This one I‘ve been thinking about for almost two
years. It is a simple to use datalogging block. Nothing fancy - it create a file on your NXT (a BINARY file,
meaning it saves ALOT of space compared to regular File Access Block) and writes up to 4 inputs. Each
―record‖ is prefixed with a 1 byte ―header‖ that tells the local machine later how many bytes each input
took in the file. The ‗Upload‘ button is used to load and decode the datalog file into a regular comma-
delimited file you can open in e.g. Microsoft Excel.
The control panel is rather simple - select the range of values for each input. Use ‗Ignore Input‘ if you
havn‘t wired anything to that drawer. Otherwise, try to use the smallest range suitable to your needs
(again - this would save space on the NXT, allowing larger logfile). The upload button does just exactly
what you think it would… There‘s also an option not to erase the logfile after uploading. Notice that the
block requires the NXT to be connected via USB cable.
This is a first release, not heavily tested as I would‘ve like it do be. I opened this topic on the forums for
questions/bugs/comments.
Download the block from here.
Add starLikeShareShare with noteEmailAdd tags
Jun 16, 2008 2:18 PM
New Book: LabVIEW for MINDSTORMS
by guy
Michael Gasperi, whom most of you know wrote the excellent book Extreme NXT (among others), is
working on a new book from NTS press called ‗LabVIEW for MINDSTORMS‘. As the press release states
this book would introduce LabVIEW to non-LabVIEW programmers using the NXT platform. The book
covers both on-brick and direct command programming, and being the Technical Reviewer of the book - I
can promise it is gonna be a GREAT book!
Add starLikeShareShare with noteEmailAdd tags
Jun 14, 2008 9:22 AM
DDC is I2C, do you want to try?
by guy
I learned from Lugnet about this amazing option - an I2C connection allready present in my laptop‘s VGA
monitor port! It appears that there exists a Display Data Channel (DDC) option in various video cards
which in nothing but an I2C bus between the computer and the monitor. The author did not try DDC in
Windows platforms, not because it is impossible, but he claims he doesn‘t know how…
Anyone want to be first to show DDC communcation between PC and NXT? Here‘s a lead:
http://www.instructables.com/id/Worlds-Cheapest-I2C-I-Squared-C-Adapter/
Add starLikeShareShare with noteEmailAdd tags
Jun 6, 2008 11:21 PM
Meet Lego, the kid.
by Josh
The Administrative Court of Appeals in Stockholm has ruled that a Swedish boy has the right to be named
Lego. Take a look at the article!
Josh
Add starLikeShareShare with noteEmailAdd tags
Jun 6, 2008 5:35 PM
Lego Dalek
by Josh
Here‘s a neat Black Dalek from geekdad with accompanying Davros. The post can be found here and
building instructions here!
Josh
Add starLikeShareShare with noteEmailAdd tags
Jun 6, 2008 1:27 AM
Johnny-5 is Alive!
by Josh
Check out this cool replica of Johnny-5 designed by rack911. You can read the short article here.
Josh
Add starLikeShareShare with noteEmailAdd tags
Jun 1, 2008 11:59 AM
Jay Kinzie‘s NXT Transmission
by guy
A transmission allow extending the number of gears/wheels etc. driven by a given number of physical
motors. Inthis LDD file Jay Kinzie made a wonderful transmission, small and smart, and made only of
LDD parts (i.e. parts in the NXT set).
as a side note, there are supposed to be rubberbands on the black ball joints which are on the sliding bits
to pull the transmission out of gear. On the medium pulleys that have ball joints on them, they are
supposed to be the black peg type, not the grey keyed hole type.
Great work Jay!
Add starLikeShareShare with noteEmailAdd tags
May 30, 2008 1:59 AM
Connecting BT using NXC
by guy
As happend several time in the past, this forum topic proved what I considered ‗impossible‘ (and has
been telling this ―truth‖ over and over in the forum..) is simple… this time it is the ability to connect a BT
device programatically within NXC (and the standard firmware). This ability has long been possible in
alternative firmware (pbLua, RobotC etc.) by so far I allways thought it can‘t be done in NXT regular
firmware. As it turns out - I was wrong.
Thanks to our forum user ronmcrae for sending this code:
asm { dseg segment
args TCommExecuteFunction // define argument structure for syscall
dseg ends
set args.Cmd INTF_CONNECT // request bluetooth connection initiation
set args.Param1 0 // assumes the first entry in the table
set args.Param2 1 // connect on channel 1
syscall CommExecuteFunction,args} // and make it happen
On another site (www.mindstormsforum.de) I found an alternative code (see post here):
void connect() {
CommExecuteFunctionType args;
args.Cmd = INTF_CONNECT;
args.Param1 = 0; // device index
args.Param2 = 1; // connection index
SysCommExecuteFunction(args);
}
void disconnect() {
CommExecuteFunctionType args;
args.Cmd = INTF_DISCONNECT;
args.Param1 = 1; // connection index
SysCommExecuteFunction(args);
}
task main() {
connect();
Wait(5000);
disconnect();
}
I didn‘t test this, and can‘t read the post neither.. but it seems a cleaner way (no asm segement) to do the
same thing.
All these have one drawback - they assume the NXT you want to attach to is in the position 0 in the
stored ‗past connections‘ table on the Master NXT. Now I suppose there‘s no way to find an NXT by
name on this list, or am I wrong again
?
btw. since at the moment the LabVIEW SysCall is limited to a predefined set, I couldn‘t figure out a way to
do the same in LV (and then in an NXT-G block). Again - I might be wrong… but I am more confident on
this one, unfortunatly.
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
May 22, 2008 8:26 AM
List of NXT related books
by guy
David J. Perdue, author of ―The Unofficial LEGO MINDSTORMS NXT Inventor‘s Guide‖ made a web
page with a list of all available NXT books. Check it out here: http://www.booksnbots.com/
Add starLikeShareShare with noteEmailAdd tags
May 22, 2008 6:06 AM
Running nxtOSEK from ―standard‖ NXT
by guy
As Sivan published, he and John made possible to run native ARM codes from RAM. This requires an
―enhanced‖ firmware version is compatible with NXT-G, LabView and NXC but can also run native codes.
Takashi Chikamasa has now made a beta version of nxtOSEK which support this enhanced firmware.
You can write a code, complie it using nxtOSEK and run on the firmware John Hansen made.
Here‘re more details from Takashi:
I just uploaded a beta version of nxtOSEK (v2.02b0) which supports the enhanced NXT firmware:
https://sourceforge.net/project/showfiles.php?group_id=196690&package_id=274370&release_id=60110
8
nxtOSEK application is stored in Flash and it copied and executed from RAM. Once nxtOSEK is
executed, NXT is fully controlled by nxtOSEK application, so there is no difference between nxtOSEK in
ramboot and nxtOSEK in the enhanced firmware.
There are several benefits in case of using the enhanced LEGO standard firmware:
- You can use NXT-G, NXC/NBC and nxtOSEK without replacing the firmware.
- You can upload multiple nxtOSEK applications to a NXT.
- Support for Windows Vista (I guess)
If you wanted to write larger application over 64Kbytes, you could use NXT BIOS instead of the enhanced
firmware. (max. 224Kbytes Flash are available for your C/C++ application with nxtOSEK)
For more detailed information about this new feature, please check readme.txt in the zip file.
P.S. nxtOSEK v2.02 also supports LATTEBOX NXTe RC servo controller such as leJOS has done. NXT
becomes more than just a LEGO (even it‘s already enough great), but a multi-purpose embedded
platform!
Add starLikeShareShare with noteEmailAdd tags
May 19, 2008 3:14 PM
Running on the Bare Metal, the Easy Way
by sivan
John Hansen and I created a way to start programs that run on the bare metal (directly controlling the
processor) from an almost-standard firmware.
If you ever wished to program the NXT at the lowest and most powerful level, but did not want (or could
not) deal with SAM-BA, the native boot loader, then this project is just what you were looking for you. You
will be able to build C programs using the free GCC compiler suite and run them on the NXT. When the
program terminates (or when you press the little reset button hidden in the Technic hole below the USB
socket), the NXT returns to the standard firmware. You never lose the ability to download and run a NXTG or NXC program. You can learn a great deal about embedded programming by trying this out.
Perhaps more importantly, if you are the developer of a programming environment that normally gets
installed on the bare metal, this project would be useful for you too. It would allow users to invoke your
programming environment from the (almost) standard firmware.
The complete details and code to get you started are available here. The code includes a small set of
device drivers that currently support the motors, analog sensors, the key pad, the display, and sound.
I‘ll try to support the code on the Software Forum here at nxtasy.org (but feel free to send email if I don‘t
respond).
Add starLikeShareShare with noteEmailAdd tags
May 13, 2008 6:17 PM
Small press release about FLL
by Josh
This press release talks about Kjeld Kirk Kristiansen and the FLL Program.
Check it out here.
Josh
Add starLikeShareShare with noteEmailAdd tags
May 11, 2008 3:49 PM
Remote launching programs
by guy
As many of you know NXT-G is built upon LabView. This means that everything possible with LabView
and the NXTToolkit can be encapsulated into an NXT-G block. Doing so, however, is usually hard work
(especially if you want to do it right, i.e. have good control panel and icon drawing interface).
Here‘s a project in progress. A few weeks ago I looked into the internal of the toolkit VI ‗Write Message‘
which send BT string from master to slave devices and vise versa:
when you go deep into the internal codes (here‘s one good use for the NXTToolkit. Unlike regular NXT-G
implementation VIs these VIs are not password protected!) you find that for master BT devices the
message string is converted into a ‗BT packet‘ by this code fragment:
As some may recognize, this is a Direct Command message format. The 0×80 0×09 start means BT
Write Message telegram w/o reply (unfortunatly the master BT can‘t request reply, since the firmware
does not support it. If it could, there‘ve been many more possible uses for the kind of ―trick‖ I show here).
It then adds the mailbox, the message length and the message itself. All this is converted into a byte
array and sent over BT using a VI called ‗BT Write Buffer‘ (not shown).
Having seen this, I started thinking - what if I send other Direct Command telegrams from the master NXT
to a slave NXT? As I said earlier, only non-reply telegrams are possible. Among the possible telegrams is
the ‗Run Program‘ command (0×00 command). Indeed, if I have a program called ‗remote‘ on the slave
NXT running the following code on a master NXT executes ‗remote‘:
As I said in the beginning, this can be cast into an NXT-G block which can either run a program by name
on a connected NXT, or stop the current program (0×01 Direct Command). The question is - will it be
useful for anything? I will be happy to get your feedback on this at this forum topic.
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
May 11, 2008 3:49 PM
LEGO NXT Warriors
by guy
Popout
I think long ago some MCPs were playing with a similar concept, but I never saw real results. This guy did
a very nice job, combining NXT and Bionicle in a very convincing way. I wonder how far it can go - adding
maybe US to each horse, and maybe sending BT messages between the two?
There‘s a topic here on this project.
Add starLikeShareShare with noteEmailAdd tags
May 3, 2008 3:52 AM
Daniele Benedettelli‘s book
by claude
―Creating Cool Mindstorms NXT Robots‖ by Daniele Benedettelli has come out with some delay. The
author and editor‘s wise decision to take their time to do this book has purified the contents and enhanced
its quality… which can be only described with the attribute : excellent !
Danny has developed a handful sophisticated LEGO robots to which he gave life through control- and
behaviour-based programs. The reader is led through slowly growing degrees of difficulty and complexity
from ―Quasimodo‖ to ―JohnNXT‖, while learning about the essence of NXT C-programming and concepts
as diverse as finite state machine, hysteresis, underactuation, line following, Boolean operators, decision
tables… All these topics are well-woven to form a balanced patch-work of knowledge that has
characterized so many good robot books. You consequently learn by doing.
The author astutely combines NXT-programming with remarkable LEGO studless building in order to
realize and describe more and more complex robots. With a note of humour the reader is accompanied
through all the designs, where he has the impression of participating in the development of each
prototype, which definitely is one of the best didactical choices. The graphics of this book are of high
quality.
The absolute high-light of course is JohnNXT, the LEGO incarnation of the famous ―Short circuit‖-movie
robot. Daniele uses two NXTs (pardon : three!) for this project. Two NXTs control the robot and
communicate with each other over the RS485 high-speed connection. A third NXT is used in a ―Remote
Control‖ project and sends its commands via Bluetooth to the robot. But JohnNXT also can survive quite
autonomously through a behaviour-modelled program.
Well done Danny !
Add starLikeShareShare with noteEmailAdd tags
May 2, 2008 1:55 AM
Lego Pong with NXTCam
by tingeypa
Here is an interesting robot from wayneage that plays Pong using a NXTCam camera to track a ball in
real time. The NXTCam continuously sends the location (coordinates) of the ball to the NXT brick. The
robot keeps adjusting its position to hit the ball when it is close enough. Before the robot starts, the
NXTCam is taught the colours to track using another program called NXTCamView (this is not shown in
the video). As you can see it works quite well - nice work!
Popout
Add starLikeShareShare with noteEmailAdd tags
Apr 29, 2008 2:05 AM
Voyager - a GPS outdoors NXT
by guy
Popout
Here‘s a great project by John Brost. Inspired by Steve H. ‗Green Monster‘ he built this model, which also
uses Bluetooth GPS (and RobotC) to navigate around.
Voyager uses a 3-motor articulated steering design - one motor drives both wheels on the rear axle
through a differential and the front wheels are driven individually by the other two motors. It also has a
compass sensor and a GPS connected via bluetooth.
More pictures are found in NXTLog project page. Good work, John!
btw. Technically it IS possible to build a BT GPS NXT-G block. There‘s a lot of work involved, and very
little potential users. If anyone is interested, email me. I‘ve posted a few posts on GPS in NXTasy, and
since some implementations do work in NXC (under standard firmware) they can be ported and wrapped
into a NXT-G block (but with a lot of effort).
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Apr 24, 2008 4:57 PM
2008 FIRST LEGO League World Festival Award Winners
by Josh
Here is an article from LEGO about the World Festival in Atlanta.
Click here for the article on their Mindstorms main page, below the article about Dean Kamen.
This link seems to be permanent.
Josh
Add starLikeShareShare with noteEmailAdd tags
Apr 23, 2008 12:31 AM
Team Scores 3 Perfect 400‘s at FLL World Festival
by Josh
Congratulations to GREEN MAN GROUP who scored 3 perfect 400-point runs at the FLL World Festival
this April 16th-19th. They received the 1st Place Performance Award. GREEN MAN GROUP is a part of
The New England Robotics Designers - check out their website here.
Here is a link to the World Festival awards page, featuring a picture of the team and their robot.
Josh
Add starLikeShareShare with noteEmailAdd tags
Apr 16, 2008 5:08 PM
Little Joe - a biped walker LDD
by TooMuchCaffeine
Here is Little Joe, a biped walker. He was inspired originally by the work of Joe Nagata, but the feet are
probably the only bit of Joe‘s original that survives.
Little Joe has a pretty smooth and reliable walking action going on which you can see on video here. I‘m
very pleased with how he turned out. Just wish I‘d got him finished in time for the NXTlog competition!
There‘s not many instruction sets for bipeds out there (or not that I could find anyway). Hopefully this LDD
file will come in useful.
If anyone does build Little Joe, I‘d love to hear how you get on…
Add starLikeShareShare with noteEmailAdd tags
Apr 13, 2008 6:46 AM
New pbLua version
by guy
Ralph released yet another pbLua version - Beta 15a. The major change in this release is better support
for floats (i.e. non-integer variables).
There is now a new (well written) tutorial on using floats in pbLua.
Keep up the good work, Ralph!
Add starLikeShareShare with noteEmailAdd tags
Apr 13, 2008 3:52 AM
Power Functions Rover with 2 US
by guy
Popout
Here‘s a nice projecy by our forums reader markc. It uses PF motors and two ultrasound sensors to
navigate around, avoiding obstacles. Nice work!
More details, closeup photos and discussion here.
Add starLikeShareShare with noteEmailAdd tags
Apr 12, 2008 6:52 PM
A Four-Legged Critter
by sivan
I was inspired by a NXT robot called RoboDog to build a four-legged critter. I ended up building it without
the NXT, but I it still came out cute. I used the Power-Functions battery box and receiver, as well as a
Power-Functions motor to rotate the head. But the legs are powered by an RC Buggy 9V motor, which is
connected to the Power-Functions receiver by an extension cable. Click the picture for a video.
Add starLikeShareShare with noteEmailAdd tags
Apr 8, 2008 12:31 AM
New pbLua version
by guy
Here‘s a message from Ralph Hempel:
There‘s a new pbLua version Beta14n that fixes a few issues in the file system, as well as adding a new
function called Checksum() to sum the characters in a string.
The file system tutorial has a section at the end that shows you how to automatically run a Lua file on
power up with no intervention and no console attached. That would have been handy for the UAV
project…
Here are the latest new tutorials:
File System
HiTechnic IR Link
Codatex RFID Sensor
Precision Motor Control (like a servo)
Add starLikeShareShare with noteEmailAdd tags
Apr 7, 2008 4:29 PM
Clamp-N-lift
by guy
Popout
Paul made this model which clamp and lift the ball with one motor. It might not be the only possibility, but
it is a nice one! Thanks for the LDD instructions, Paul!
Add starLikeShareShare with noteEmailAdd tags
Apr 7, 2008 4:29 PM
Higher education with NXT
by guy
Our forum member Linus has described a toolkit for MATLAB control of the NXT. This pointed me
to thisimpressive student course in RWTH at Aachen. In this course students use MATLAB signal
processing tools to analyze motors and sensors of NXT, and built very elaborate NXT models using
MATLAB as the programming language (these robots run using the computer as a controller, not onbrick). The project statistics are impressive - over 300 students and 60 supervisors participated in Winter
07/08. Their website also has nice images and video of various projects done in the past.
Add starLikeShareShare with noteEmailAdd tags
Apr 7, 2008 3:29 PM
More NXT servo
by guy
A few days ago I wrote about LatteBox servo controller. Today I found that Mindsensors.com is also
working on a 8 servo controller. Not so many details yet, but I‘ll post more when I get any.
Add starLikeShareShare with noteEmailAdd tags
Apr 7, 2008 2:29 PM
NXT plays connect 4
by guy
Popout
Sascha from Germany sent me this:
Here‘s an NXT project that let you compete against him in the classical ―Connect 4″. This robot uses the
NXT kit, and is programmed with NXC using MINIMAX algorithm.
Add starLikeShareShare with noteEmailAdd tags
Apr 5, 2008 7:22 AM
roBlocks
by guy
roBlocks is a coming new toy robotic system developed in CMU. Programming them seems to be simple connect the right cubes together… They have sensors, actuators, operators (which do math..) and utility
blocks (including a ‗comm‘ block, which I guess means it communicates to a computer…)
I emailed them for more details, which I‘ll post asap. In the meanwhile, I wonder if anyone wants to make
a multi-NXT version… Maybe a community-organized project to define standard dimensions, connection
scheme and inter-NXT BT/RS485 protocol. Anyone interested?
Update: from a paper published here I found this quote:
We plan to build a programming environment for more sophisticated programmers who wish to modify the
behaviors that are built into the blocks. This would make our development cycle easier, but more
importantly it would enable roBlocks users to take the next step toward programming distributed robotics
algorithms.
Add starLikeShareShare with noteEmailAdd tags
Apr 5, 2008 7:22 AM
Adding servos to NXT
by guy
Lattebox, a newcomer to the 3rd party products for NXT, sells an I2C multiplexer combined with a 10servo driver box. Check it out here.
(thanks to Chris from diydrones.com for the link)
Add starLikeShareShare with noteEmailAdd tags
Apr 5, 2008 7:22 AM
Changes on LEGO.com
by guy
Two major changes in the official LEGO MINDSTORMS website (mindstorms.lego.com). First, NXTLog is
now upgraded, so you can upload video, rank projects and search projects easier then before.
Second, a new section called ‗Ask the NXTperts‘ allow you to ask and get answers from selected MCP
members, including myself (here‘s my profile on lego site). So sign in, and start asking question!
Add starLikeShareShare with noteEmailAdd tags
Apr 5, 2008 1:22 AM
NXT-G 2.0 Update
by Josh
I talked with LEGO again today and here is the latest information:


Maximum sampling rate is still 10Hz in the datalogging section. They are working to
improve this.
Current estimated release date is January 2009.
The main feature of NXT-G 2.0 is datalogging capability - no other updates were highlighted.
Josh
Add starLikeShareShare with noteEmailAdd tags
Apr 1, 2008 6:07 AM
LEGO R&D EM Gun
by guy
Popout
Anyone care to guess what is this thing?
Add starLikeShareShare with noteEmailAdd tags
Mar 31, 2008 10:00 PM
RoboLab Conference
by Josh
Is anyone going to the RoboLab Conference in Enfield on Friday? If so, post here!
See you there!
Josh
Add starLikeShareShare with noteEmailAdd tags
Mar 19, 2008 4:51 AM
NXTCam videos
by tingeypa
Here are a couple of good videos showing the mindsensors NXTCam in action. The first is an
instructional video from markr showing how the NXTCam can be used in Line Tracking mode.
Popout
The second and third videos are from zeroqnaga showing a pair of robots. One robot is equipped with a
NXTCam which is used to track and follow the other robot. First by day, then by night!
Popout
Popout
Add starLikeShareShare with noteEmailAdd tags
Mar 17, 2008 2:17 PM
NXT-compatible infrared/ultrasonic beacon system
by claude
We brought our old RCX-beacon system to the NXT level. Please consult
http://www.convict.lu/htm/rob/ir_us.htm
Add starLikeShareShare with noteEmailAdd tags
Mar 8, 2008 9:04 PM
Another small USB stick
by Josh
Check out this one. Only 2 studs long, but a full brick in height. 1 GB capacity. 20 EUROS from Japan.
See the article here, which contains a link to the website.
Josh
Add starLikeShareShare with noteEmailAdd tags
Mar 8, 2008 3:06 PM
Tiniest LEGO USB Memory Key?
by dave
Looking for something to do on a cold snowy day? What better thing to do than to hack together what
may be the tiniest LEGO USB memory key? There are others out there - some use a 2×4 brick or 2×2
brick. This unit fits snugly in a 2×3 plate. A second plate is added for cosmetic purposes. This unit uses
the Gizmo Jr. 2GB memory key. A perfect
fit!
Check it out here at www.plastibots.com.
Add starLikeShareShare with noteEmailAdd tags
Mar 5, 2008 7:00 PM
Creative 6-13 year olds - apply here!
by Josh
―ENFIELD, Conn., March 5 /PRNewswire/ — Today, LEGO Systems, Inc. issued the call for all 6-13 year
olds who consider themselves curious, imaginative and creative to apply for the second annual LEGO(R)
Creativity Awards. Designed to encourage lifelong curiosity and creativity, the LEGO Creativity Awards
are an opportunity for budding inventors, explorers, creators and dreamers of all kinds to gain recognition
for the imaginations that will make them the ―builders of tomorrow.‖ Beginning today through May 23,
2008, children from across the U.S. and Canada (excluding Quebec) are invited to submit essay
responses that showcase diverse talents in all things creative.‖
Read the full article here.
Josh
Add starLikeShareShare with noteEmailAdd tags
Feb 23, 2008 10:52 AM
NXTLOG reaches 5000 submissions!
by guy
One week until NXTLOG reaches 5000 projects!
Gather your NXT components and submit your best design. The NXTLOG moderators will freeze
NXTLOG submissions at 4999 and in one week will choose the robot that best demonstrates the true
LEGO MINDSTORMS NXT creative spirit. Will your robot be the NXTLOG 5000?
And to all MINDSTORMS NXT Camera Bot challenge participants, you still have until February 29th to
submit your entries.
We will announce both the NXTLOG 5000 and Camera Bot winners the week of March 3rd.
What will you make?
Add starLikeShareShare with noteEmailAdd tags
Feb 23, 2008 10:52 AM
RCX sensor multiplexer for NXT
by guy
Mindsensors.com is now selling this multiplexer, allowing connection of 4 RCX style sensor to one NXT
port.
RXMux supports following sensors:
RCX Touch Sensor
RCX Light Sensor
RCX Rotation Sensor
RCX Temperature Sensor
More details can be found here.
Add starLikeShareShare with noteEmailAdd tags
Feb 18, 2008 3:29 PM
NXT Plane Shooter
by guy
Popout
Another amazing work by NXTLiftBoy - a paper plane shooter, made from a single NXT set.
You can find link to builiding instructions and some additional details here. Follow the instructions below
from NXTLiftBoy:
Here is an update for NXTPlaneShooter:
I made pictures while taking it apart.
You can find these ―build instructions‖ on PhotoBucket.
I uploaded the pictures in batches of 100, and the order got corrupted again
Make sure you follow the picture numbers in reverse! The first picture to look at is named IMG_2546.JPG,
the next has number 2545 and so on downto until 2167, which is the last picture.
It seems to jump every batch, so at each xx66 you need to jump and locate xx65.
You can verify the number of a picture by hovering the mouse over it and reading the status bar of your
browser (enable it in your view if need be).
To find the proper building order do like this:
1 follow the link above to the album,
2 click ―View All‖ and be patient to load all 380 shots in one page…
3 scroll 80 pictures down until the one with the green batteries in the brick, here it starts!
4 build up- and backwards the first set of 80 pictures,
5 jump from 2467 to 2466, located 80+100 pictures down now, 2466 is just next to the big gear wheel,
6 build back 100 pictures to 2367, just until the battery box again,
7 jump from 2367 to 2366, located 100+100 pictures down now,
and repeat steps 6 and 7 twice, offsetting the numbers by 100 every time, so you took all 380 simple
steps to build this beast…:)
You need to be aware that the NXTPlaneShooter requires manual operation, or you can write your own
program for it in the LEGO visual programming language (NXT-G). Take care not to snap the ropes!
The paper plane has a staple in the front, ensuring that the plane moves along with the accelerating grey
pin, otherwise the paper may just glide through the slit in the grey pin.
Happy shooting,
NXTLiftBoy
Add starLikeShareShare with noteEmailAdd tags
Feb 18, 2008 8:29 AM
Black Tread Links!!!
by Josh
Yes - it‘s true. LEGO has listened to us and included the following tread links in black!
Which set? These in black will be found in the 7645
MT-61 Crystal Reaper from the Mars Mission Line.
American MSRP is $50.
This is not definite, but incredibly likely. The initial
prototype did not have them, but the final version most
likely will.
I also noticed there were some rumors about black
tread links in 8294 Excavator. Sorry but this set will
not have them in black.
Josh
Add starLikeShareShare with noteEmailAdd tags
Feb 13, 2008 6:14 PM
UniBot 2 - a single-motor base unit
that can turn
by TooMuchCaffeine
Some of you may be aware of UniBot 2 from the discussion on the forums, or from my site.
UniBot 2 can be used as a base unit for more complicated robots. The interesting thing about this robot is
that it only uses one motor but can still turn by using a ‗floating worm‘. This effectively ‗frees-up‘ a motor
from turning duties, leaving you with two motors for more functionality from the rest of your robot.
Following comments on the original design, this second version of UniBot features more attachment
points for a mechanism on top, a better ball-castor arrangement, and a more robust construction. Also,
the design now only uses pieces in the NXT retail set, so hopefully it will help users with only one set (like
me) build some more complicated robots.
I‘d be interested to hear if anyone uses the LDD file to build UniBot, and what contraptions people might
put on top of it that use that ‗extra‘ motor.
Tip ‗o the hat to 222doc, whose excellent description of a ‗floating worm‘ arrangement in the forums
prompted me to start building UniBot.
The LDD file for UniBot 2 can be found here.
Add starLikeShareShare with noteEmailAdd tags
Feb 12, 2008 1:10 PM
BricxCC Scripting
by john
BricxCC now has preliminary but fully functional support for compiling and executing PC-based scripts to
control your programmable brick (NXT, RCX, Spybot, whatever). These scripts can be edited in BricxCC
with syntax highlighting and (coming soon) code and argument completion/insight support. The active
brick connection is used to send commands to the brick. The exact same interface used internally by
BricxCC (originally based on the Spirit OCX control) to communicate with a programmable brick is
exposed within the scripting language. The scripting language is RemoteObjects Pascal Script. Here are
a couple sample scripts:
program joybtn01p;
const
OUT_C = 4;
begin
BrickComm.SetMotorPower(OUT_C, 2, 4);
BrickComm.SetFwd(OUT_C)
BrickComm.MotorsOn(OUT_C);
end.
program joybtn01r;
const
OUT_C = 4;
begin
BrickComm.MotorsOff(OUT_C);
end.
These scripts will work for either a connection to an RCX or to an NXT. The BrickComm class‘s public
interface is shown at
http://bricxcc.sourceforge.net/uSpirit.html
BricxCC also has a mechanism for assigning scripts to joystick button press and release events (up to 32
buttons). The first script above would execute when the joystick button 1 is pressed since it is named
joybtn01p.rops while the second would execute when button 1 is released. These script files must be
located at
C:\Documents and Settings\jhansen\Application Data\JoCar Consulting\BricxCC\3.3
replacing ―jhansen‖ with your own username.
All the pascal scripts have a .rops extension. If you have a script open in an editor window you can
compile it and run it using the standard BricxCC compile and Run toolbar buttons or menu items. You
can define Pascal Script templates and customize the syntax highlighting color scheme like you can with
any other supported programming language.
Soon the scripting language will have access to all of the tool windows in BricxCC. You can even write
scripts that display GUI dialogs with event handlers, etc…
http://bricxcc.sourceforge.net/test_release.zip
John Hansen
Add starLikeShareShare with noteEmailAdd tags
Feb 12, 2008 3:10 AM
Nashorn - Zamor-based NXT shooter
by guy
Matthias Paul Scholz published building instructions for this Zamor shooter.
Add starLikeShareShare with noteEmailAdd tags
Feb 12, 2008 3:10 AM
Challenge No 4 - last 3 weeks
by guy
As you remember, there are less than 3 weeks for the deadline on the 4th challenge. There were very
nice contributions submitted so far, but it is still open to others. The challenge is sponsored by
mindsensors.com, contributing 60USD coupon for their online shop for the winner.
Add starLikeShareShare with noteEmailAdd tags
Feb 12, 2008 2:31 AM
PF Speed control (and more) in NBC/NXC
by guy
John Hansen published a test release of NBC/NXC with better interface to HiTecnic IRLink, allowing
speed (PWM) contol of PF motors and other stuff.
Check it here:
http://bricxcc.sourceforge.net/
Add starLikeShareShare with noteEmailAdd tags
Feb 12, 2008 2:00 AM
Taking pictures of your NXT creations
by guy
Dave Parker made this wonderful page with instructions on taking quality pictures of LEGO NXT
creations. There‘s a quick and simple page for kids, and mor elaborate page for those with more
patience.. Thanks Dave!
Add starLikeShareShare with noteEmailAdd tags
Feb 12, 2008 1:48 AM
NXTLog
by guy
Here‘s some ―inside information‖ I received about NXTLog:
1) People need to remember that a large part of the moderation is done by fellow AFOLs as a volunteer
job, so there will be accidental inconsistencies
2) Yes, there was a ―change‖ on NXTLog…LEGO legal said no more links of any kind to external sites
(though official implementation is delayed as LEGO figures out what to do about the many links that are
already posted
3) Yes, comments with names are rejected
Bottom line: LEGO is working to improve NXTLog. Give them a little more time
Add starLikeShareShare with noteEmailAdd tags
Feb 9, 2008 6:43 PM
Using the Power-Functions Remote to Control an NXT
by sivan
The robot on the top is controlled by the Power-Functions remote through the home-made IR link that the
robot carries. The NXT reads the IR commands from the link and uses them to control the motors.
Channel 1 on the remote controls the drive motors, and channel 4 controls the grabber. The program that
runs on the IR link is the same program that I posted earlier, which is able to both send Power-Functions
commands and to receive them. An NXC program on the NXT parses the 16-bit command to extract the
channel and specific command (this was facilitated by Lego‘s publication of the protocol).
The little vehicle on the lower left is a conventional Power-Functions vehicle, using a battery box, a
receiver, and two medium motors (one for each large wheel). It receives on channel 2, so the same
remote can control both it and the robot.
Click on the image to watch a video of the two in action.
Add starLikeShareShare with noteEmailAdd tags
Feb 2, 2008 3:42 PM
HiSpeed communication between multiple NXTs
by guy
Popout
Mark made this wonderful demo showing how you can use port 4 (RS485) to communicate between
multiple (three, in this demonstration) NXTs. The video explains well how this is done, and show how to
connect two NXTs (via a regular cable), 4 NXTs via mindsensors.com port splitter, and even wiring NXTs
100 feet apart!
The NXTs were programmed using NXC, and the source codes can be downloaded here. The codes are
modified versions of John Hansen sample RS485 files.
UPDATE: Philo sent me the following comment:
It is a common but very bad practice to use only two wires to connect RS485 devices: the ground should
be conneced too, even though RS485 uses differential lines. Though it can work, as exemplified in the
video, ommitting the ground may cause subtle failures and even dramatic ones (destroyed RS485 driver).
The drivers used in the NXT withstand a ground potential difference of only -7V to +12V. This might be
exceeded if the connected NXTs have other external connection, eg to the mains via the battery/adapter.
Add starLikeShareShare with noteEmailAdd tags
Jan 30, 2008 3:51 PM
Site Maintenance
by eric
Bear with us as I troubleshoot some forum issues. I was debating whether or not to take the whole
system down for maintenance, but it appears some parts are still working. Shouldn‘t be too long before all
is resolved. I apologize for the inconvenience.
It‘s been a while since I‘ve checked in on everybody. I must say, it‘s an absolute honor to host such a
great community of people. Thank you for all your support and contributions. And, of course, thanks to
Guy for leading the nxtasy charge! Since I‘m here for a few, I‘ll also try to do a few touch-ups on the site
— some major, some minor. In the meantime, please excuse the dust. Thanks!
Add starLikeShareShare with noteEmailAdd tags
Jan 30, 2008 3:51 PM
New website - nxtprograms.com
by guy
Dave Parker opened a new NXT website, where he posts free detailed building instructions and
downloadable programs for lots of fun projects that require only the basic retail NXT set.
Projects are sorted by difficulty levels, and are have well documented photographed building instructions
and programs.
Check it out - http://www.nxtprograms.com/
Add starLikeShareShare with noteEmailAdd tags
Jan 30, 2008 3:25 PM
Multi-Sensitivity Acceleration Sensor for NXT
by guy
Mindsensors.com announced a new multi-range acceleration sensor for the NXT. It‘s a three axis sensor
with program-selectable range of 2.5G, 3.3G, 6.7G, 10.0G. More details here.
Add starLikeShareShare with noteEmailAdd tags
Jan 25, 2008 6:26 PM
Official Specification of the Power-Functions IR Protocol
by sivan
Lego just released the specification of the Power Functions infrared protocol. Although I have already
reverse engineered the commands that the remote-control sends and was able to send these commands
from an add-on board connected to the NXT, the receiver can actually respond to more commands. It can
respond to commands that start motors and keep them on indefinitely (the existing PF remote only sends
commands that keep the motors running for a bit more than a second). It can also provide a variable
amount of power to the motors, not just full-forward or full-reverse, which is all the existing remote sends.
So the specification should allow custom remotes to produce more sophisticated behaviors. Also, the
document contains the precise rules and tolerances, so it should make custom remotes (and custom
receivers) more robust.
A quick update: I was able to emit the new commands form my home-made IR link, and thereby to run
the PF motors at various power levels and to run them indefinitely when the remote was off.
Add starLikeShareShare with noteEmailAdd tags
Jan 23, 2008 6:29 AM
WiFiCamBot
by dave
I seem to be getting in a trend of creating robots and not fully completing them…
WiFiCamBot is one of them. The intent was to create a bot that I could use PF to remote
control with an attached camera all wirelessly connected. WiFiCamBot uses a Panasonic
BL-C30 WiFi colour camera with built-in webserver to capture and transmit video via my
local network to one of my websites. This is all done with no wires tethered to the bot - all power is onboard and it uses the Power Functions system for remote control.
Visit my site for more details and images: www.plastibots.com
Add starLikeShareShare with noteEmailAdd tags
Jan 18, 2008 6:43 AM
LDraw NXT parts kit overhaul
by guy
Philo published an improved version of all LDraw NXT parts, quite realistic as can be judged from the
above image. You can download the files, as well as see some information of the NXT color scheme
issues at Philo‘s webpage:
http://philohome.com/nxtldraw/nxtldraw.htm
Add starLikeShareShare with noteEmailAdd tags
Jan 17, 2008 3:30 PM
NXTruck by NXTLiftBoy
by guy
Popout
Here‘s a video showing NXTLiftBoy latest project. Here‘re a few details I got from him:
About the model:
This is the LEGO alternate model for set 8285 tow truck, but it is enhanced by including a NXT brick and
3 motors for remotely driving,steering and (de)coupling the trailer by a wireless gamepad.
The gamepad and some Java programming allow for proportional control. It is not so hard to control this
model. Picking up a trailer however requires high-precision maneuvering because the trailer pin must
engage in the right hole.
I applied your idea to convert rotation in translation with the worm sliding an axis with bushings, thanks for
that idea:)
You can find still further info and photos at MOCpages.
Add starLikeShareShare with noteEmailAdd tags
Jan 17, 2008 6:41 AM
BETA for Mindsensors RCX Sensor Multiplexer
by guy
Mindsensors.com announced a limited beta of their new RCX Sensor Multiplexer, allowing connecting 4
RCX sensors into one digital NXT port. See here for details.
Add starLikeShareShare with noteEmailAdd tags
Jan 17, 2008 6:16 AM
New Contributer to NXTasy!
by guy
Joshua Heinzl has joined our list of contributers! Here are a few words by Josh:
I live in Southern New Hampshire. My interests include: Robotics, Programming, Scuba Diving,
Underwater Photography, Martial Arts, HAM Radio, Piano, Clarinet, Saxophone, Soccer, and Baseball. I
am a RoboLab Alpha tester and recently attended the 2nd Annual International Lego Engineering
Symposium at Tufts University. I‘ve been working with Lego Robotics for 5 years. I‘m currently writing a
book on RoboLab. You may have seen my in the past at the 1st or 2nd RoboLab Conference in Enfield,
CT, or at either of the Lego Engineering Symposiums.
Josh
Add starLikeShareShare with noteEmailAdd tags
Jan 12, 2008 4:59 PM
Google for Mindstorms
by guy
Rich Hoeg sent me a link to a specialized google search page he built, which searches only Mindstorms
related sites. If anyone wants to give it a try - click here.
Add starLikeShareShare with noteEmailAdd tags
Jan 12, 2008 3:59 PM
Pre-release version of enhanced NBC/NXC firmware
by guy
John Hansen, who is developing an enhanced version of the NXT firmware for NBC/NXC users,
published this on Lugnet:
I have uploaded a pre-release of a new enhanced NBC/NXC firmware (1.06a) which you may want to try
out. It has a new arrop opcode which supports a number of useful array operations.
OPARR_SUM, OPARR_MEAN, OPARR_SUMSQR, OPARR_STD, OPARR_MIN, OPARR_MAX, and
OPARR_SORT. In the case of OPARR_SORT the output parameter should be an array of the same type
as the input array. In all the other cases it can be any scalar type large enough to hold the resulting value.
arrop op, dest, src, start, length
I haven‘t exposed this as an official API function within NXC yet but the opcodes are added to the NBC
compiler. In NXC you can use it via a simple macro wrapped around an asm block. Like so:
#define ArrayOp(_cmd, _out, _asrc, _idx, _len) asm { arrop _cmd, _out, _asrc, _idx, _len }
I‘ve also optimized some array move routines which will help in places where one array is copied to
another array. Testing in a tight loop where I copy a 30 element array to another 50000 times took 22.5
seconds with the standard firmware and only 7.4 seconds with the optimizations in place.
I‘ve also added some new system call functions to more easily expose the FindFirst and FindNext loader
module functions and other functions in that module. And I‘ve wrapped the Hi-Speed IOMap stuff in some
higher-level system call functions that should make interacting with that port a bit easier (and a bit faster
since it doesn‘t go through the IOMapRead/IOMapWrite code). I have not yet exposed these new system
call functions in the NBC compiler (or in NXC) so you can‘t quite use these yet. I should have a test
version of NBC up this weekend which will have these functions available for use if you tell the
compiler to target the enhanced firmware.
Also added to the enhanced NBC/NXC firmware are preliminary versions of functions from math.h,
including acos, asin, atan, cos, sin, tan, cosh, sinh, tanh, log, log10, exp, pow, ceil, floor, sqrt, atan2,
fmod, and fabs. These are preliminary since they all operate currently on integer types. The sin, cos, asin,
and acos opcodes currently deal with scaled integer inputs or results (*100) and degrees instead of
radians to match the existing subroutines in
NBC/NXC that Tamas Sorosy wrote. Some of the other functions use the same scale-by-100 approach as
well. Could be a bug or two here also since I haven‘t tested the code much yet. All of these are available
in the latest build of NBC (and in NXC via asm blocks). The new test release of BricxCC will syntax
highlight these new opcodes and constants when writing NBC code.
http://bricxcc.sourceforge.net/lms_arm_jch.zip
http://bricxcc.sourceforge.net/test_release.zip
After all these additions the enhanced NBC/NXC firmware still leaves more room for user files on the NXT
than the standard 1.05 firmware.
Please let me know what you think.
John Hansen
Add starLikeShareShare with noteEmailAdd tags
Jan 12, 2008 12:59 PM
More Custom Parts! Flexible Parts and a Custom Motor
by sivan
Sibrecht Bouwstra, a student at the Technical University of Eindhoven, just published a project report
describing custom Technic parts. Her project focused on two kinds of parts: flexible parts, which you can
see in the top picture, and a motor (she wanted to make a silent, or more precisely very quiet, motor). The
report describes several different methods of making flexible parts, and the picture above shows the most
successful products. The motor unit includes a motor with internal gearing (using a worm gear).
Sibrecht‘s web site includes a detailed illustrated project report and a movie showing the motor driving
these flexible elements to create a fluid motion (click on Gallery then Lego).
Add starLikeShareShare with noteEmailAdd tags
Jan 11, 2008 4:42 PM
Theo Jnr
by guy
Popout
TooMuchCaffeine has been working on this NXT walker for the NXTasy Challenge #4. Ever since I
saw this movie of the works of Theo Jansen I wanted to make an NXT version. There have been a few
LEGO versions allready, but I think this is the first NXT version which both walks and turns. The leg
design from TMC is shown below:
TMC also put the LDD files on NXTLog here.
Good work TMC! You certainly get the 25 bonus points for original design, but I‘m afraid it won‘t help
much with 80 seconds per turn (and a record, so far, of 20 seconds…).
Add starLikeShareShare with noteEmailAdd tags
Jan 10, 2008 4:25 PM
RFID sensor for NXT
by guy
A few people in the past have made RFID sensors for the NXT. At last, there‘s an ―official‖ third party
product for those of less technical capabilities… LEGO has announced yesturday an official partnership
with Codatex producing the NXT RFID Sensor seen in the above image. Some technical features frm
Codatex website:
- Reads 125 kHZ transponders of type EM4102
- 5 bytes number, i.e. 240 combinations (i.e. 1.099.511.627.775 numbers)
- The reader has three modes of reading: Single read, Continuous read, Stop
- Reading distance up to 3 cm depending on transponder size and orientation
- Transparent front cap with LED signal at detection of a transponder
- Auto power off for saving battery power
- Firmware upgrade feature for future enhancements (saving hardware cost)
I‘ve had a prototype of this sensor for some time, and it work very nicely - provided you place it close
enough to the RFID tag and at the correct angle (RFID uses radio frequency, and the antenna has well
defined spatial response). The package would contain a sensor and two tags, with holes matching
Technic pegs. More details are found here.
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Jan 6, 2008 6:49 AM
ChoppperBot - a helicopter simulator
by TooMuchCaffeine
Some of you may have seen ChopperBot previously in the forums or on my site.
The LDD files and building guide for this robot are now available on NXTlog here.
If anyone builds ChopperBot, please let me know how you get on.
Add starLikeShareShare with noteEmailAdd tags
Jan 4, 2008 6:47 AM
Connecting two NXTs via Hi-Speed Port 4
by guy
John Hansen put this code piece in Lugnet:
I‘ve been getting a number of emails from some people who want to know how to
use the hi-speed RS-485 port 4 functionality in the NXT using the standard
firmware. With John Barnes‘ help I now know how to get it to work correctly.
Here is a simple program that demonstrates how to send a message to a device
attached to the hi-speed port:
#define MESS_WAIT 20
void SendRS485Message(const string msg)
{
byte mlen = ArrayLen(msg);
SetHSOutputBuffer(0, mlen, msg);
SetHSOutputBufferOutPtr(0);
SetHSOutputBufferInPtr(mlen);
SetHSState(HS_SEND_DATA);
SetHSFlags(HS_UPDATE); //send it
}
task main()
{
SetSensorType(IN_4, SENSOR_TYPE_HIGHSPEED);
SetHSState(HS_INITIALISE);
SetHSFlags(HS_UPDATE);
Wait(10);
while (true) {
SendRS485Message(‖goofy‖);
Wait(50);
}
}
Once you have initialized the port type and the hi-speed state machine by
calling SetHsState(HS_INITIALISE) and SetHsFlags(HS_UPDATE) then reading
messages is about as simple as calling GetHSInputBuffer(offset, size, buffer);
According to folks at LEGO you can simply use a sensor wire to connect two NXTs
together on port 4 and send data back and forth using this sort of code.
John Hansen
If anyone makes a demonstration of two NXTs communication using this method - let me know! I‘ll be
happy to blog and post your code here.
Add starLikeShareShare with noteEmailAdd tags
Dec 30, 2007 5:01 PM
Making Custom NXT/Technic Parts
by sivan
Saakia Bakker, a student at the Eindhoven University of Technology created some custom NXT (Technic)
parts using rapid prototyping (a three-dimensional printing-like technology). This was done in the context
of trying to build a Lego hovercraft, but the part-manufacturing technique itself is interesting in its own
right. Check out thedetailed report for more details.
Any suggestions for other really cool and useful parts?
Add starLikeShareShare with noteEmailAdd tags
Dec 27, 2007 2:40 PM
A 4-Wheel Drive, 4-Wheel Steering Vehicle with Suspension
by sivan
Building a 4-wheel drive vehicle with steering always seemed like a difficult challenge to me. A few days
ago I came across an interesting and compact design for a pendular suspension (thanks
to TechnicBRICKs for highlighting this design). This is basically a 2-wheel module that incorporates a
drive-train mechanism, a steering mechanism, and suspension. This clever and compact design is due to
S. Ariel, who provides complete building instructions for this module. I used two of these modules to build
a 4-wheel drive vehicle, with 4-wheel steering and a front suspension. It actually also has a suspension
for the rear wheels as well, but the overall suspension was too soft so the vehicle wobbled, so I locked
the rear suspension. Perhaps it would have worked better with 8 rather than 4 shock absorbers.
The vehicle is powered by two Power-Functions motors. It moves quite slowly, since the drive train uses a
worm gear to rotate the differentials. But it is sturdy and strong. I was able to mount a NXT with batteries
in front, along with a sound sensor and a grabber arm (with a NXT motor), and it still moved well.
I built the overall structure from several modules that snap together in about 3 minutes.
Check out the video to see how the vehicle moves, how its suspension allows it to overcome obstacles,
and how the modules are put together quickly.
Add starLikeShareShare with noteEmailAdd tags
Dec 22, 2007 6:10 PM
A Power-Functions Remote-Controlled Vehicle
by sivan
I uploaded a video (with some stills in it) of a Power-Functions remote controlled car. It uses a dualdifferential drive so that it can go straight well. (The video also shows stills of an earlier version that used
a more conventional steering; but it was almost impossible to make it go straight.)
The Power-Functions parts are from the Monster Dino, which is a great fun to build but not so exciting to
play with, since it moves fairly slowly and since you can‘t steer it. The same is true for the alternate
model, an alligator.
So I was trying to use the remote-control capability to build a vehicle that would be fast and
maneuverable. The video shows the result, which is really fun to play with.
Not really NXT, but still fun!
Add starLikeShareShare with noteEmailAdd tags
Dec 15, 2007 1:29 PM
LEGO DigiComp II
by guy
Popout
Brian Davis (MDP, MCP etc.) made this nice LEGO version of a ―computer‖. This isn‘t NXT specific, but
very interesting for people involved into basics of computing. Nice work Brian!
Add starLikeShareShare with noteEmailAdd tags
Dec 14, 2007 7:10 PM
NXT Medley
by tingeypa
Check out these classic Christmas videos posted by the OrganFairy of him playing a medley with his
modified AlphaRex.
Popout
Popout
Add starLikeShareShare with noteEmailAdd tags
Dec 12, 2007 4:10 PM
Challenge #3 - Part 1
by guy
Well, instead of writing everything (a formable task considering the length) I decided to split the write-up
into multiple posts. So, finally, here is the first part of the challenge 3 summery:
What did we have? eight competitors and a total of thirteen submissions. The goal, I remind, was to build
a robot that moves a weight 1 meter in air. Score was given, among other factors, to the robot
body/weight ratio. Due to the similarity with ants, I called these robots ‗ANxT‘s….
The figure below shows the progression of body/weight ratio from the challenge announcement (Jul 9th)
till the deadline. I must admit you surprised me (again…) with the amazing results at the final
submissions.
As promised, I will put some information on each of the competitors robots.
To get started I show below the robot of kbirk from Denmark (1.1 body/weight ratio):
the video of this robot is found here and the RobotC file is here.
The second robot is from Brickmaster_MV, a 13 years old NXTer from the US. I enjoyed the image below
showing weighting of the robot:
Well, he did find a better way to measure it‘s weight later… His robot reached body/weight ratio of 2.3. A
better view of his ANxT is this:
You can see this robot in action here. His robot didn‘t pass the second black line at the end of the
process, but it doesn‘t matter much in this case…
I enjoyed very much getting these two submissions. Both kbirk and Brickmaster_MV knew they had no
chance at winning when they submitted their robots, but both said they enjoyed and learned a lot in the
process – which is the reason for these NXTasy.org challenges anyhow!
to be continued…
Add starLikeShareShare with noteEmailAdd tags
Dec 10, 2007 1:41 PM
FLL Power Puzzle
by guy
With the coming FLL regional finals, I thought to pay tribute to Jonathan and Richard, contributers of
TheNXTStep, and give easy links to their excellent review on FLL Power Puzzle missions.
FLL Mission Overview Part 1 - Roof Solar Panel
FLL Mission Overview Part 2 - Solar Power Satellite
FLL Mission Overview Part 3 - Hydro-Dam
FLL Mission Overview Part 4 - Power Plant Supply
FLL Mission Overview Part 5 - Tree Planting
FLL Mission Overview Part 6 - Oil Drilling
FLL Mission Overview Part 7 - Wave Turbine
FLL Mission Overview Part 8 - Grid Connection
FLL Mission Overview Part 9 - Coal Mining
FLL Mission Overview Part 10 - Personal Vehicle Choice
FLL Mission Overview Part 11 - Oil Barrels
FLL Mission Overview Part 12 - Corn
FLL Mission Overview Part 13 - Uranium
FLL Mission Overview Part 14 - Wind Turbines
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2007 3:33 PM
NXTasy Challenge 4
by guy
I apologize for not publishing all the nice video and photos of the previous challenge, but I decided not to
delay the announcement of NXTasy.org challenge No. 4 - so here it is!
The mission is simple - make an NXT bot that moves around on the black oval circle in the NXT test mat.
The fastest robot to make a complete circle wins 60$ coupon courtesy of mindsensors.com!
Oh, did I mention wheels are not allowed? =)
Deadline: March 1st, 2008
I encourage people to post any information they wish to share on their submission before the deadline to
inspire others, but will not force anyone nor will I do so myself until the above date.
Comments/questions (and answers) and extra rules on-the-fly will be found in this forum topic.
Guy Ziv
NXTasy.org Editor
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2007 3:10 PM
Table Cleanup
by guy
Popout
Alban made this robot to clean his desk. In the spirit of the upcoming NXTLog Sumo, you can get some
inspiration for other usage of this robot. More details and images are here (french only). I think my desk is
too cruded for this nice NXT to be effective…
Add starLikeShareShare with noteEmailAdd tags
Dec 5, 2007 1:32 AM
NXT Sumo
by guy
Popout
BlueToothKiwi (and his family) made these three NXT robot sumo - the good, the bad and the ugly. Great
use of NXT and power function elements with impressive results too!
Add starLikeShareShare with noteEmailAdd tags
Dec 3, 2007 3:10 PM
dogWALKER: walker with instructions
by TooMuchCaffeine
Hello, not posted anything for ages, sorry. Been getting and starting a new job in the real world…
However, last weekend I built this little walker which I turned into a dog. Really pleased with the
transmission setup which has much less slippage in the gears compared with that classic ―cogs all down
the side‖ way of doing walkers which I‘ve seen loads of examples of.
I was keen to do instructions for this one, as I think it‘s a good robot for kids to build. Still feels to me like
there‘s a lack of decent instructions for younger builders with the online community tending to concentrate
on fairly advanced stuff.
I wanted to use LDD‘s instruction generation for this and I am really impressed with it. The LDD file itself
will be available on NXTlog shortly, but in the meantime the html instructions generated can be
found here
Add starLikeShareShare with noteEmailAdd tags
Dec 2, 2007 4:31 PM
SCARA Robot
by tingeypa
Popout
Check out this YouTube video of a Lego SCARA robot arm by pishita69. SCARA stands for Selective
Compliant Articulated Robot Arm. This type of design is often used in pick-and-place, assembly, and
packaging applications. You can find out more about scara robots here. Nice work.
Add starLikeShareShare with noteEmailAdd tags
Nov 29, 2007 11:12 AM
New HiTechnic Prototype Baord
by guy
HiTechnic released their ‗Prototype board‘. The Prototype board is available in two models, one with a
prototype grid to solder your designs creating a permanent sensor or device interface and the solderless
design that plugs into a solderless breadboard so you can quickly create many designs and reuse your
electronic components. They also have a Prototype Kit which includes jumper wires and a breadboard.
What can you do with this? Well, even without exensive knowledge in electronics you can build your own
sensors for NXT. The board has 5 analog inputs (i.e. the NXT will read a numeric value proportional to
the voltage on these pins) and 6 digital pins which may be inputs (e.g. switchs) or outputs (e.g. LEDs).
Also, you have 9v, 4.3v, 5v and 3.3v power supply wires.
Take a look at HiTechnic website for more details.
Add starLikeShareShare with noteEmailAdd tags
Nov 23, 2007 2:45 AM
Homemade Gramophone NXT
by guy
Popout
In the above video José Pino‘s demonstrates how to built a Mindstorms NXT gramophone from a little
more then an NXT, a motor, some wheels and a fast food cup. He powered the motor at 25% which
makes the vinyl disk to spin approximately 33 1/2 RPM. Very nice!
[Via Hacked Gadgets]
Add starLikeShareShare with noteEmailAdd tags
Nov 20, 2007 2:40 PM
Thanksgiving Discount at mindsensors.com
by guy
Here‘s an email I received from mindsensors.com:
We are offering 30% off Any Purchase.
At website, use coupon code: BLACKFRIDAY
The sale is valid until end of the day on Nov-23-2007
Add starLikeShareShare with noteEmailAdd tags
Nov 20, 2007 3:00 AM
NXT Container Crane
by guy
Popout
Another nice work from NXTLiftBoy - a container crane, made from a single LEGO Mindstorms NXT set,
two long axis, rope and a few centimeters garden or aquarium hose. Read more here.
Add starLikeShareShare with noteEmailAdd tags
Nov 20, 2007 2:45 AM
LEJOS OSEK v. 1.06
by guy
LEJOS OSEK version 1.06 was just released. LEJOS OSEK is an open source firmware for LEGO
MINDSTORMS NXT focused on high speed real-time control applications for the NXT. You can read
more and download it here.
A nice feature is the Embedded Coder Robot NXT which allow you to create MATLAB(tm) and
Simulink(tm) code (both from the MathWorks company) and compile it into the NXT.
Add starLikeShareShare with noteEmailAdd tags
Nov 20, 2007 2:45 AM
Physics 101
by guy
As some already noticed, I have a passion for doing physical experiments using NXT. This time I got hold
of the HiTechnic Acceleration sensor. Well, Brian Davis already posted on thenxtstep on some nice
measurements in a ride, so I looked for something else. At the end, I decided to measure the centripetal
force acting on a rotating body. For those who haven‘t studied physics (or finished it too long ago..) any
body in a rotating frame of reference experience two forces - Coriolis force and the centripetal force. I will
ignore the former since it is too weak, and concentrate on the second term only. The magnitude of the
centripetal force is proportional to the square of the angular velocity (i.e. how many rotations per second)
and to the distance from the radial distance from the center. The centripetal force points toward the center
of rotation. One can read more on the centripetal force here.
The apparatus I built, which is shown above, use two motors to rotate the NXT, the motors and the
acceleration sensor inside a solid triangular construction. The frame was built to allow for either horizontal
measurement (as seen in the picture) or vertical measurement when connected to a large LEGO board
(not yet performed). The code, written in NXT-G, increases the speed (‖power‖ value in Move block)
gradually from 30 to 100. At each speed, it rotated for 15 seconds collecting timer, rotation counter and X,
Y, Z accelerations into a file. The picture below (click to enlarge) shows the main loop of the code:
Each file contained a long list of numbers, which need to be arranged into a 5 column spreadsheet for the
respective measurement. This was done using either Excel or MATLAB (my favorite tool for just about
everything..). This already made some problems as I found the NXT, for an unknown reason), cut off
some of the last values in some of the files. Nevertheless, I had plenty of measurement points at each
speed, and in zero power too (i.e. stationary). The raw data files (the speed is denoted in the filename,
e.g. ‗Speed50.txt‘ is for motors power 50) can be downloaded here.
What‘s next? First I calculated the rotation velocity. To do this, one has to do a numerical derivative of the
rotation counter values. Since the intervals between measurements is not always constant (as was
observed many times in the past, the NXT pauses for several 10s of ms to store data in it‘s non-volatile
memory) I divided the rotation counter increment by the timer increment between each two consecutive
measurements. The average of this, when taking into consideration gear ratio (8:24 in this setup) and
doing some scaling, is the number of degrees the sensor rotates in a second. Next, the average
acceleration for each axis was calculated, using data only from the 10′th measurement point onward. This
ensured that the jerk experienced when the motors start moving (my code had them stopped and
restarted, in retrospect it could‘ve been done better..) is removed from the analysis.
Finally, I plot the average and standard deviation of each acceleration component, as a function of
rotation velocity:
What do we see? Well, I don‘t quite understand it myself… The HiTechnic sensor has it‘s three axes
oriented as shown in the picture below (taken from HiTechnic website):
Thus, the Y direction points down (toward the center of Earth) in my setup. When there is no motion, it
reads about 200 (which is equal to 1 g or 10 m/s^2). This is the correct magnitude, although the I
expected the opposite sign (HiTechnic: is there an error in the direction of the Y axis in this diagram?).
However, when the NXT starts spinning there is a pronounced decrease in the Y component. This I
cannot explain. The X component is about zero, which makes perfect sense, and the Z component (which
I expected to be the centripetal force) does indeed increase non-linearly with velocity (more detailed
analysis will be published in the future, once I understand the Y axis behavior).
I‘ll be happy to get your comments and answer questions in this forum topic. If anyone understands what
happened in the Y axis - I‘ll be happy to hear it!
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Nov 19, 2007 3:45 PM
NXTCam Follower
by tingeypa
Popout
Check out NXTCam Follower by Mark R. It uses the new mindsensors NXTCam sensor to keep a ball at
a set distance from the robot. Mark has posted his programs on the NXTCam Wiki. Nice work!
Add starLikeShareShare with noteEmailAdd tags
Nov 18, 2007 2:44 PM
Taito Space Invaders
by guy
Antonio Scarfone created this arcade game for the NXT, adapted from an original Commodore 64 game.
It uses NXC and the Enhanced NXT Firmware by John Hansen.
Amazing!
Add starLikeShareShare with noteEmailAdd tags
Nov 13, 2007 10:56 PM
Comparison of Programming Environments for NXT
by Dick Swan
The winter issue of Robot magazine contains a comparison of the various programming solutions for the
NXT. It‘s available online at http://www.botmag.com/articles/10-31-07_NXT.shtml. The
comparison includes implementation of a simple line following program using the different programming
languages including screenshots from the different environments. [Note: I wrote the article and also
helped author ROBOTC].
Another NXT programming language discussion was justed posted on the Wired magazine web site
athttp://blog.wired.com/geekdad/2007/11/the-best-progra.html. Chris Anderson of Wired has been using
his NXT to control his UAV — Unmanned Aerial Vehicle — and has tried many of the programming
environments. For more on his airplane, see the videos
at http://diydrones.com/video/video/show?id=705844:Video:43
Add starLikeShareShare with noteEmailAdd tags
Nov 7, 2007 2:37 AM
NXT Fireworks Igniter
by guy
Popout
To celebrate Guy Fawkes day safely, BlueToothKiwi prepared an autonomous NXT to lit multiple
fireworks. Nice work!
Add starLikeShareShare with noteEmailAdd tags
Nov 6, 2007 2:10 AM
Model Differ by MP
by guy
Matthias Paul Scholz (MP) published a new tool for LDRAW, allowing comparision of two LDRAW lego
models. It also allow comparision of a model with the standard retail NXT set. Why is this good for? If you
want to know if a particular model can be build with the standard set, or what extra parts do you need for
this.
Download from MP‘s page here.
Add starLikeShareShare with noteEmailAdd tags
Nov 2, 2007 4:10 AM
NXT Constructopedia - Beta 2
by guy
A useful resource for individuals and educators alike. It explains and give building instructions for various
NXT/motors attachments, swirling/sliding fronts, few simple projects and a nice quick start car.
Download it here.
Add starLikeShareShare with noteEmailAdd tags
Oct 29, 2007 5:40 PM
Challenge 3 Winner
by guy
It‘s been a too busy month, with real-life job and MCP duties filling up my day/night time fully. I am sorry
for the large delay in putting online the 3rd challenge results - but here‘re some preliminary outcomes 3rd place - 222Doc with final grade 52
2nd place - Fuzzpault with final grade of 58
and the winner of 60$ cupon from mindsensors.com is Dad and Adams with final grade of 73!
Some more figures Lightest ANxT belongs to 222Doc with 606 gram (his final version weight 624 gram)
Best lifter - Fuzzpault with a weight of 53.3 kg!
Quickest ANxT is Brickmaster_MV (13 yr old) with a record of 8 seconds (but only lifting 1.8 it‘s body
weight)
Thanks everyone for participating. I will try to put online pictures and videos of all contributions in the near
future.
Guy Ziv
NXTasy.org Editor, MCP2.0
Add starLikeShareShare with noteEmailAdd tags
Oct 22, 2007 3:38 AM
MathScript Block Released
by guy
MathScript Block Released
by guy
Here‘s a new NXT-G block I‘ve written for mathematical expressions. The block let‘s you wire up to 6
inputs (marked ‗A‘ to ‗F‘) and write a mathematical expressions (e.g. ‗(A-32)^5/3-B*C‘) which can include
math operators (+, -, *, /), modulo %, power ^ (only positive integer powers can be calculated) and as
many brackets as you like. Notice that the NXT only supports integer math, so 1/2*(A-5)^2
will allways return 0 (since 1 is less then 2) while (A-5)^2/2 will return the correct value (rounded to
nearest integer).
A sample program picture is found here.
A forum topic for questions on the new block is found here.
NOTE: this block uses advanced, and undocumented, VI scripting functions to generate efficient LV code
encapsulated into an empty template implementation VI. I will post some explentations of the main code
part soon.
Add starLikeShareShare with noteEmailAdd tags
Oct 18, 2007 10:32 AM
(title unknown)
by sivan
I just posted a writeup on an IR Link that allows the NXT to send commands to the Power-Functions
receiver (the commands tell the receiver to turn the Power Functions motors on and off) and to receive
commands from the Power-Functions remote control. The device can keep sending a ―turn on‖ command
to the Power-Functions receiver repeatedly on its own, thereby keeping the motor on without requiring
further NXT communications. You can buy such devices from both HiTechnic and Mindsensors, but it was
fun to build one. Some of the interesting aspects of this project are:



Deciphering the Power-Functions communications protocol,
Using an external AVR microcontroller with the NXT, and
Automatic configuration of the I2C pull-up resistors.
Add starLikeShareShare with noteEmailAdd tags
Oct 16, 2007 5:22 PM
Frangible LEGO
by guy
Popout
Brian Davis (MCP, contributer to thenxtstep) put on YouTube this wonderful movie showing how Zamor
shooters can be effective… There‘s a bit of the motorized Bulldozer at the end.
Add starLikeShareShare with noteEmailAdd tags
Oct 16, 2007 5:22 PM
Spin Doctor, A spinning kilough platform
by guy
Popout
Our forums reader daytona955 posted here on his new kilough platform. What I really liked on this work is
the use of alternating active/passive light sensor to find (in many cases) obstacles ahead of time (notice it
changes direction before hitting the wall) as well as moving in a line while rotating around it‘s own axis
(for scanning the area around). Good work!
Add starLikeShareShare with noteEmailAdd tags
Oct 11, 2007 9:40 AM
NXT Power Programming
by john
I‘d like to officially announce that Variant Press will soon publish my new book, NXT Power Programming.
It should be available November 7th. You can pre-order it
now at Amazon.com or Variant Press.
I hope everyone who purchases a copy of NXT Power Programming will find it to be a
very helpful tool for programming the NXT using NXC or NBC.
Here is an excerpt from the back cover:
NXT Power Programming delivers everything you need to create the robot you‘ve
always dreamed about. This is the definitive guide to C programming by the developer
of some of the most powerful and popular development tools for LEGO
MINDSTORMS. John C. Hansen presents a comprehensive yet friendly set of tools
that allow you to create almost any robot you can imagine. Inside, you‘ll find an ingenious set of projects
that explore the complete arsenal of NXT functionality. At the heart of these projects is Versa, a versatile
mobile robot platform utilizing modular attachments.
Master the Art of:











NXC, a C language for the NXT
BricxCC, a full featured programming environment
Sensors and Motors
Utilities for Music, Sound Sampling, Graphics and more
NBC, an Assembler Language for the NXT
Building Robots without Bricks
Handheld Arcade Games on the NXT
An Intruder System using a Sphere Cannon
NXT to NXT Bluetooth communications
NXT to Bluetooth devices
The latest sensors from HiTechnic and mindsensors.com
Add starLikeShareShare with noteEmailAdd tags
Oct 9, 2007 3:03 PM
MLCad models for retail models
by guy
V. Padovan has online MLCad models (.mpd files) for the four basic models - the Tribot, RoboArm, Spike
and Alpha Rex. For those NXT LEGO CAD modellers out there - these are good resource for starting a
modified version of your own! Download the files here.
Add starLikeShareShare with noteEmailAdd tags
Oct 8, 2007 6:05 PM
RFID Rover
by guy
A wonderful work by Anders Sorborg - a rover which uses RFID tags to navigate around the house. See
the details, video and pictures here.
Add starLikeShareShare with noteEmailAdd tags
Oct 7, 2007 7:38 AM
Power Functions presentation
by guy
Philo (in collaboration with Didier Enjary) published an excelent presentation of the new PF motors series.
Read it here.
Add starLikeShareShare with noteEmailAdd tags
Oct 1, 2007 4:46 PM
RobotC and Debugging
by guy
Here‘s something I got from Dick Swan, the developer of RobotC:
Debugging your programs is always a challenge on the NXT. ROBOTC is one of the few programming
solutions for the NXT that offer a traditional run-time ―debugger‖ capability. It‘s usually a lot easier to
correct programs with a debugger rather than manually inserting ―print‖ or ―display‖ statements in your
program to try to figure out what‘s wrong.
The capabilities of a run-time debugger can be shown using the ROBOTC solution. The PC screen shot
above illustrates several of debugger features
With the ROBOTC debugger you can:






Start and stop your program execution from the PC
―Single step‖ through your program executing one line of code at a time and examining the
results (i.e. the values of variables) the flow of execution.
Define ―breakpoints‖ in your code that will cause program execution to be suspended when
they are reached during program execution
Read and write the values of all the variables defined in your program
Read the write the ―values‖ of motors and sensors as your program is executing.
Remote the NXT LCD and buttons to your PC desktop.
For more details on the features of the ROBOTC debugger, open this file.
PERSONAL NOTE: The free NXC/NBC also has a real-time debugger. But they have different feature
sets and capabilities. Maybe John Hansen can shed more light on this issue?
Add starLikeShareShare with noteEmailAdd tags
Oct 1, 2007 4:46 PM
Mindsensors.com Camera for NXT
by guy
Andy pointed out that mindsensors.com accepts orders for the new camera sensor for NXT, shipping at
October 12th. More details can be read here.
Add starLikeShareShare with noteEmailAdd tags
Oct 1, 2007 3:46 PM
More on HiTechnic IRLink and PF
by guy
As I posted a few days ago, the new HiTechnic IRLink (which should be available from HiTechnic in about
a week) opens up new opportunities for controlling extra motors with the NXT. The IRLink sensor (i.e. it
connects in a sensor port) allows the NXT to control the new RC LEGO trains, control the RCX (like the
RCX IR Tower did) and control the new Power Function motors. The new PF motors, which are available
in 2007 kits like the LEGO Creator Dinosaur (1 medium and 1 large motor) and the 8275 Technic
Bulldozer (2 medium motors, 2 large motors) have their own battery box (a conversion cable for directly
connecting to the NXT is supposed to be released soon) and can connect either directly to the battery box
or via a special IR receiver. The IR receiver allow controlling the PF motors via a special remote control,
also available from LEGO in the above mentioned kits.
So, back to the IRLink from HiTechnic. Since each IR receiver control 2 motors (let‘s call them motor 1
and motor 2) and can have 1 of 4 ‗channels‘, you can operate up to 8 PF motors using one IRLink.
Notice, however, that the current needed will probably require more then 1 battery box for 8 motors
running in parallel…. HiTechnic will release 3 special NXT-G blocks for the IRLink - one for RC Train
system, one for RCX communication and one for controlling PF motors. In the rest of this post I am going
to discuss the later block.
Before we go off - a short reminder. When you wire one of the regular NXT servo motors, the simplest
program I can think of is ‗run motor until I press orange button‘. Below is an NXT-G program that does just
that:
Quite simple, isn‘t it? So, when I first got my IRLink connected to my NXT (after importing the NXT-G
block from HiTechnic) I dropped the block on my diagram and made this program:
the control panel for the PF block is shown below
As you can see, I asked Motor 1 to move ‗Forward‘ and then had a ‗Wait for Button Press‘. Eagerly I ran
the program and to my great disappointment the motor rotated for a short moment and then stopped. The
program, however, was still running until I pressed the orange button.
What happened? Well, here‘s the catch. The IRLink acts just as the Remote Control does. When you
want a PF motor to move forward you move one of the RC joysticks up and hold it until you want it to
stop. If you press forward for a short period and then release the knob, the motor would rotate for a short
period - just like what happened in my first program.
What should be done? If you want a persistent motion, you should put the PF block in a loop. You must
also make sure that executing the rest of the loop does not take too much time, else the motion will be
jerky. My second program is shown below:
now the motor rotated continuously as I expected. As this block‘s behavior is quite different then the
concept of ‗Move Unlimited‘ block, this may be a cause for some confusion at first.
Remember - when in doubt about how to use IRLink for controlling PF motors, think in terms of how you
would have done the same with the manual PF Remote Control. I am having great fun with these
motors….
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Sep 30, 2007 6:25 PM
SPAM problem
by guy
NXTasy has been under a large-scale SPAM attack lately, which is why some posts got many unproper
comments. I‘ve removed commenting till further notice, at least until I can set up a better spam filter.
Guy Ziv
NXTasy.org Editor
Add starLikeShareShare with noteEmailAdd tags
Sep 30, 2007 12:25 PM
ISOGAWA Yoshihito‘s ―LEGO Technic Tora no Maki‖
by sivan
ISOGAWA Yoshihito, who has already written one NXT book and one Technic/Mindstorms book (both in
Japanese), has released a beautiful LEGO Technic book in PDF format. The book is available for
download; you are asked to pay $10 if you decide to use the book. The book shows a wide range of
Technic mechanisms and small constructions. The mechanisms range from simple gear reductions to
suspensions, clutches, and much more. The creations include many different vehicles and walkers, all
fairly simple to reproduce. The book uses many different LEGO parts, some new (NXT motors, Power
Functions motors and battery boxes) and some old (RCX motors, small pneumatic cylinders, the solar
cell). In some cases, the book shows how to build essentially the same construction with two different
kinds of motors or other specialized parts. The book covers basically all the kinds of mechanisms that you
can build with Technic: gears, chains, pulleys, pneumatic, and so on. There is essentially no text, just
pictures to illustrate principles and mechanisms. The graphics are beautiful, with clever icons to indicate
chapters.
Browsing through the book will surely remind you why you enjoy LEGO so much!
Add starLikeShareShare with noteEmailAdd tags
Sep 25, 2007 4:47 AM
Autonomous robotic bulldozer
by guy
Popout
Here‘s a YouTube of a totally autonomous robotic bulldozer. It uses the new Power Function (PF) motors,
which are totally controlled by the NXT via infrared signals through the new HiTechnic ‗Infrared Link‘ (or
IR-Link) sensor about to hit the markets. This ―sensor‖ would allow you to control up to 4 IR recievers (so
up to 8 motors!) without any output port of the NXT. You can see the bulldozer scanning the environment
with the Ultrasonic sensors and then flattening anything in its path using the Ripper and the blade.
Thanks Tim for sharing this with us!
Add starLikeShareShare with noteEmailAdd tags
Sep 24, 2007 2:22 AM
One Week Left for NXTasy Challenge #3
by guy
Did all you ANxT breeders gave this challenge a try? One week left for the 3rd NXTasy challenge! The
record weight/ANxT body ratio is around 30, held by 222Doc who insists he‘s ‗for fun only‘ so the 1st prize
(60$ cupon for online purchase at mindsensors.com, thanks mindsensors!) will go to the next highest
score (unless someone else pass 222Doc, anyone trying?) which currently is a ratio of 24 reached by
Lren.
Keep up! only seven days left….
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Sep 24, 2007 2:22 AM
NXT Rube Goldberg machine
by guy
Popout
An artile in Geekdad blog talks about ―Leonardo‘s Basement‖ , an educational organization for boys and
girls ages 6 to 16 and their families in Minneapolis. One of their creations is this Rube Goldberg
machine made of 6 (if I counted well) NXT‘s which was built by some 10 & 11-year olds made in their
―Sensors and Motors and Gears, Oh My!‖ class.
Add starLikeShareShare with noteEmailAdd tags
Sep 22, 2007 4:22 PM
NXT in SecondLife
by guy
Popout
see discussion topic here.
Add starLikeShareShare with noteEmailAdd tags
Sep 21, 2007 7:32 AM
Vernier and NXT
by guy
With the coming release of their NXT adaptor, Vernier put online an impressive webpage
http://www.vernier.com/nxt/ with links, NXT-G block and information on sensors the new adaptor works
with. These includes:
25-g Accelerometer
Barometer
Charge Sensor
Colorimeter
Conductivity Probe
Current Probe
Differential Voltage Probe
Dissolved Oxygen Sensor
Dual-Range Force Sensor
Electrode Amplifier
Extra Long Temperature Probe
Flow Rate Sensor
Force Plate
Gas Pressure Sensor
Hand Dynamometer
Instrumentation Amplifier
Light Sensor
Low-g Accelerometer
Magnetic Field Sensor
O2 Gas Sensor
ORP Sensor
pH Sensor
Relative Humidity Sensor
Salinity Sensor
Soil Moisture Sensor
Sound Level Meter
Stainless Steel Temperature Probe
Surface Temperature Sensor
Thermocouple
Turbidity Sensor
UVA Sensor
UVB Sensor
An impressive list, isn‘t it?
Add starLikeShareShare with noteEmailAdd tags
Sep 18, 2007 5:47 PM
Parsing GPS NMEA message
by guy
After few hours of LabView coding, I finally made an NXT code (see larger image here) that can parse
NMEA (GPS) $GPGGA message (i.e. GPS fix data). I thank Dick Swan for his RobotC code which
inspired the algorithm. Timing tests show that the NXT using firmware 1.05 runs this code in around 92
milisecond. This would be good enough for update rates of few Hz.
Next I plan to design the NXT-G block for BT GPS. I was thinking of a block with two ‗action‘ options ‗update‘ and ‗read‘. The former delays the program till it reads a BT buffer (or a timeout occurs), and tries
to parse the new NMEA message. It returns a Yes/No output which say if it was successful (so one can
make a ‗Wait for‘ block until a successful GPS data is read). Once a good data is read it is stored in a
‗global‘ data holder. The later option ‗read‘ returns the last stored value of lat. and long. position (maybe
only seconds part?), #satellites and altitude. In this mode you can define a waypoint (as GPS
coordinates) and a distance cutoff (in meters) and the block returns a Yes/No value if it is closer then
cutoff. It will also return the heading and distance to waypoint (so with a compass sensor you can steer
your NXT to the waypoint). The basic use principle would be having one ‗update‘ GPS Block in a loop on
one sequence wire, and your running program with ‗read‘ GPS Blocks on a second sequence wire.
Comments/suggestion? Please use this forums topic.
Add starLikeShareShare with noteEmailAdd tags
Sep 18, 2007 12:26 PM
An Updated Firmware
by sivan
Lego has released an updated firmware. Here is what the web site says:
―Updating to LEGO MINDSTORMS NXT Firmware V1.05 will improve the following:
- Multiple datafile control within user programs
- Communication with 3rd party external devices
- Bluetooth communication within user programs
NOTE: Only update your firmware if you have experienced issues related to the above‖
Does anybody know more details about these improvements?
Via thenextstep.
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2007 3:01 PM
ANxTs at work!
by guy
222Doc reached a weight/ANxT body weight ratio of 30! Where will it end? Remind you - challenge #3
deadline was postponded to October 1st. Even if you can‘t beat 222Doc - give it a try! You‘ll learn a lot
from this challenge. I will put online all contributions at the end of the competition - and winner will get 60$
cupon courtasy of mindsensors.com!
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2007 2:35 PM
Processing and NXT
by guy
I‘ve got the following email from Diego Baca:
For those who want to use the NXT with Processing (http://processing.org ). Jorge Cardoso has created a
great Processing library to interface with the NXT brick. (http://jorgecardoso.org/processing/NXTComm/).
I have created a simple applet using his library and also have posted instructions of how to get it working
using OSX. http://www.diegobaca.co.uk/NXT/nxt.html
Hope this is of interest for everyone!
cheers,
diego
What is Processing? From the website:
Processing is an open source programming language and environment for people who want to program
images, animation, and interactions. It is used by students, artists, designers, researchers, and hobbyists
for learning, prototyping, and production. It is created to teach fundamentals of computer programming
within a visual context and to serve as a software sketchbook and professional production tool.
Processing is developed by artists and designers as an alternative to proprietary software tools in the
same domain.
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2007 2:02 AM
GPS with RobotC
by guy
Dick Swan, the developer of RobotC, sent me a sample code for using a BT GPS with NXT using
RobotC. The code can be downloaded here. As one can see in the image, it displays time, position and
other data on the NXT LCD display. This code requires a RobotC version which is still not public, which
can be rechived directly from Dick Swan (dickswan at sbcglobal dot net).
How easy is it doing GPS communcation with RobotC? Well - very easy. You first turn the BT to ‗Raw
Mode‘ by setBluetoothRawDataMode() command. Then you simply read data (say one char) from the BT
like a regular serial port with nxtReadRawBluetooth(BytesRead[0], 1). The rest of the code is GPS
specific message parsing etc.
I was also astonished how easy is it to connect BT device programatically in RobotC. The three lines at
the end of the code:
setSessionPIN(‖1234″);
bBTSkipPswdPrompt = true;
btConnect(2, kGPSName);
Is all you need! It defines the PIN code to use, tell the NXT not to show password dialog and connect to a
preset device (given by a const string kGPSName).
Add starLikeShareShare with noteEmailAdd tags
Sep 15, 2007 3:41 PM
NXT-G and GPS - closer than ever?
by guy
I‘ve been working on the issue of BT GPS connection for the past few days, ever since Antonio‘s NXC
code demonstrated that this is a possibility. In the LabView diagram above (click here for full resolution
image) I show a preliminary step toward this goal. I‘ve made VIs (i.e. the LabView term for blocks) that
read an ASCII stream, and some prelimiary string parsing VIs. Since I have no BT GPS, I had my PC
connect as the slave device, and wrote another LabView code that sends the NMEA-0183 formated
string:
$GPGGA,023346.028,3604.1654,N,08655.7973,W,0,00,50.0,198.2,M,-31.6,M,0.0,0000*76\r\n
at specified intervals (e.g. each 1000 milisecond).
The resulting file stored on the NXT contains a long list of this message:
GPGGA,023346.028,3604.1654,N,08655.7973,W,0,00,50.0,198.2,M,-31.6,M,0.0,0000
GPGGA,023346.028,3604.1654,N,08655.7973,W,0,00,50.0,198.2,M,-31.6,M,0.0,0000
GPGGA,023346.028,3604.1654,N,08655.7973,W,0,00,50.0,198.2,M,-31.6,M,0.0,0000
GPGGA,023346.028,3604.1654,N,08655.7973,W,0,00,50.0,198.2,M,-31.6,M,0.0,0000
.
.
.
without any errors so far. From another test is seems that as I suspected the NXT ‗catch‘ the GPS data
correctly every 2-3 cycles of my ―GPS‖ data stream.
What‘s next? Parsing the GPGGA data, and making the NXT-G block around all this… Keep watching for
it!
In the meantime, Antonio posted me an improved version of the code. He claims this code loses only
20% of the messages (compared to ~60% in mine, and his old code). You can download the new
code here. I still need to figure out what makes the difference, and see how I can implement it in
LabView…
Questions/comments - use this forum topic.
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Sep 14, 2007 5:01 PM
Standard firmware and GPS data
by guy
As I posted yesterday, Antonio Scarfone made a NXC code that managed to read a Bluetooth GPS
textual (NMEA-0183 format) readout. I‘ve tried the same thing long ago, but for the reasons listed below
dropped this project thinking it is impossible…
Why did I think so? Well, the Bluetooth SDK describes in the end of Appendix 1 (Communication
protocol) the structure of the ―expected‖ ‗data packet‘ - 2 byte packet size, command type byte, command
byte and data. This is very different with NMEA format which starts with e.g. $GPGGA and ends with
*XX\LF\CR (XX is a 2 char hex checksum, \LF\CR are line feed and cartridge return chars). For me, and
many other AFOLs this inconsistent format seemed impossible to overcome with the standard LEGO
firmware. Other firmware like pbLua (and soon RobotC) have BT ‘stream-mode‘ where program can deal
with the BT port like simple serial port. GPS communication with pbLua was reported a while ago, and
Steve Hassenplug recently converted his Green Monster to use GPS with RobotC. But using GPS with
NXC or NXT-G? I thought it will never happen.
All this was true till Antonio‘s code came about. I‘ve spent several hours looking at the code and going
over the firmware source files trying to understand how this works. Here‘re my preliminary conclusions.
1. The BT communication is done by the ‗Comm‘ module. The firmware consists of several modules, each
is invoked in a round robin loop every 1 millisecond.
2. When paired with a GPS, the NXT is the BT master. Thus, it does not expect data over the BT port until
the running NXT program checks for data (this is done with the NXTMessageRead syscall, or the
‗ReceiveRemoteString‘ in Antonio‘s code).
3. After the NXT sends a data packet to the slave (i.e. GPS) checking if ‗messages‘ are waiting - a packet
ignored by the GPS since the format is not NMEA, the NXT waits and checks if new BT data has arrived.
3. The first two bytes of the data (‘$G‘ typically) are treated as the packet size - which fools the NXT to
think a packet of >128 bytes (size of BT buffer) awaits him. It reads whatever is in the serial buffer (i.e.
rest of NMEA data) but as the usual NMEA data is smaller then 128 bytes it waits for another message to
complete 128 bytes.
4. The first message data, excluding the first two bytes, are put into the ‗BT Input Buffer‘ which is in the
IOMap of the comm port starting at offset 1157.
5. When a second packet arrives, the NXT fills all 128 bytes and tries to parse the new ―Command‖. It
expects a Command Type byte of 0×00, 0×01, 0×02, x80 or 0×81 but finds something else - an ASCII
char from the NMEA message. Note however, that ‗P‘ and ‗Q‘ chars (ASCII 0×80 and 0×81) might made
the NXT go on parsing the command as either Direct command or System command with possible
unexpected outcomes…
6. Since the command is unrecognized - the NXT firmware ignores it, but KEEPS the message (w/o the
first 2 bytes, and with second char (index 1) turned into 0×00) in the buffer. Also, in offset 1285 in the
IOMap it stores 128 as the size of the packet.
7. Now, a new NXTMessageRead call is needed for the NXT to check again the incoming BT data.
What‘s next? I‘ve been doing tests with NMEA messages using my PC as the slave BT device, and
LabView code that waits for the NXTMessageRead packet and sends NMEA constant back. Works as
described above. Another LabView code ran on the NXT, waiting for the IOMap value at 1285 to change
from 0, then read all 128 bytes and convert to string. Indeed, I managed to get the text pass from the PC
to the NXT, except three characters (first 2 removed as firmware thought this is the size of packet, then
another char converted to 0×00 by the firmware). My guess at this stage is that some *asynchronous*
loop would allow reading full NMEA strings every few cycles. Once this occurs, i.e. a string starting with $
and ending with * is found in the buffer, then NMEA parsing can be done. Furthermore, as NMEA
messages have a checksum (a value which tells if the message was corrupted) it may be possible to
verify integrity within the NXT program. Still some work to do till an NXT-G block is out, but most of the
mystery is solved…
Question/comments - use this forum topic.
Add starLikeShareShare with noteEmailAdd tags
Sep 14, 2007 12:01 PM
NXT-G support for Power Function
by guy
I‘ve asked mindsensors.com regarding NXT-G support of PF motors via their NR-Link. Indeed, the NRLink can remotely (via Infra-Red) control PF motors. Here‘s their reply:
NXT-G block for NR-Link, has groups of macros for RCX/Train/PF motors. From the ‗Action‘ pulldown,
select the device you are going to talk to, and from the ‗Macro‘ pulldown choose appropriate macros.
The NXT-G blocks are located here.
Add starLikeShareShare with noteEmailAdd tags
Sep 13, 2007 12:01 PM
GPS and the NXT
by guy
I have allways considered communicating with a BT GPS using the standard firmware an impossible
mission. Reason is that the standard firmware has it‘s own standard for building messages over the BT
serial port. Well, Antonio didn‘t think so… and managed to overcome these. From his email, I understand
that there‘re still some small problems with this NXC code - but it does stream NMEA data (the default
GPS textual format) to the NXT. With his permission, I uploaded the code for firmware 1.04 here. In a
coming post I‘ll try to explain in more detail the problems I thought will make this impossible.. and how
Anotoni solved them!
Now I only need to find enough time to make a NXT-G block which follows the same strategy and simply
returns world coordinates… Well, since I have no BT GPS it can be a bit difficult.
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Sep 13, 2007 12:01 PM
New pbLua version Beta13o with FLASH writing!
by guy
A new version of pbLua (by Ralph Hempel) is available here. The biggest addtional feature is the ability to
read and write to the FLASH, as well as read a string and execute is as a Lua script!
Add starLikeShareShare with noteEmailAdd tags
Sep 13, 2007 12:01 PM
LeJOS Tutorial
by guy
Here‘s a link for a tep-by-step tutorial explains in detail how to install java, leJOS and Eclipse on a
windows computer. LeJOS is a Java VM for the LEGO Mindstorms NXT which can be downloaded here.
Add starLikeShareShare with noteEmailAdd tags
Sep 13, 2007 12:01 PM
LDD on NXTLOG
by guy
LDD is now available on NXTLOG! you can only add an .lxf file and you cannot add an .lxf file as your
main image. An LDD info page with a ―how to add your LDD file to NXTLOG‖ will go up in a day or so.
Add starLikeShareShare with noteEmailAdd tags
Sep 13, 2007 12:01 PM
Robotic fingers
by guy
Popout
A step toward a true robotic NXT hand? Here a gyro sensor from HiTechnic is used to make the robotic
hand follow a person‘s hand.
Add starLikeShareShare with noteEmailAdd tags
Sep 11, 2007 3:15 PM
NXT DraXTer
by guy
NXTLitBoy new project is NXT DraXTer - a fast driving NXT car. You can watch it speeding
in this YouTube video. Building instructions are in PhotoBucket album here.
Add starLikeShareShare with noteEmailAdd tags
Sep 7, 2007 3:58 PM
NXT Rowing Robot
by guy
Popout
I know of very few attempts with floating NXTs. Here‘s another cool one…
Add starLikeShareShare with noteEmailAdd tags
Sep 7, 2007 3:58 PM
NXT bike
by guy
Popout
Here‘s a nice LEGO bike tester using NXT.
Add starLikeShareShare with noteEmailAdd tags
Sep 7, 2007 3:58 PM
ANxT challenge extended to October 1st
by guy
A new high-score in the 3rd NXTasy challenge! Lren has reached a bofy/weight ratio of 24 - passing
222Doc previous score of 21. I‘m very pleased to get this new contribution, as the number of participants
is still too small. I‘ve decided to extend the ANxT challenge deadline till October 1st, so if anyone thinks
he can still beat Lren - go to the drawing board!
Add starLikeShareShare with noteEmailAdd tags
Sep 2, 2007 4:02 PM
LHEX
by guy
Popout
I wouldn‘t like to be a bug when this thing comes around… See here for details.
Add starLikeShareShare with noteEmailAdd tags
Sep 1, 2007 1:02 PM
NXTLOG Back to School Building Challenge
by guy
A new challenge at NXTLOG - design a NXT robot that you would take to school.
What job would your robot do for you?
A writer robot?
A robot that helps your teacher clean up?
A robotic pet to keep in your desk?
A guard bot to protect your locker?
A lunch bot that brings your lunch for you?
A robot that turns the pages of your textbooks?
A robot that fetches you pencils?
See the details here.
Add starLikeShareShare with noteEmailAdd tags
Aug 29, 2007 3:43 PM
Book Review - NXT-G Programming Guide by James Kelly
by guy
I received a review copy of James Floyd Kelly‘s book ‗LEGO MINDSTORMS NXT-G Programming Guide‘
published by APRESS. James (Jim) does an excellent job explaining NXT-G to newbie programmers. To
date, this is the best resource I would suggest for NXT owner (especially younger ones) who stare at the
blocks palette in NXT-G wondering ―where should I start?‖. Jim gives a good introduction, explaining what
a ‗program‘ is all about, and teaches one after the other all the block in the NXT-G palette. Each block is
described in its own chapter, which are written short to free time for experimenting with the newly
acquired knowledge. The language is easy to understand, and Jim‘s humor makes it even more
enjoyable.
Still, in my opinion there‘re some material which are lacking in this excellent book. Building each chapter
to teach one block there‘s not much ‗integration‘ of the knowledge into more elaborate (and interesting)
programs. After learning on Move block and Sensor block one is fully prepared to make Tribot travel on a
line – a chapter explaining this program would be a great addition. I would have been happier if between
‗block-specific‘ chapters there were more in-depth chapters combining blocks into programs which are
more ‗fun‘ and exciting – which is the main reason kids play NXT, right?
Another issue is the lack of references. There is a huge (over 3000) models published in NXTLOG, many
contains simply NXT-G programs. I think any NXT book should refer it‘s reader to official sites (such as
NXTLOG) and community sites (such as NXTasy repository). It might have slipped my eyes – but I did not
find any references in the book.
Last, although each chapter ends with some discussion on possible experiments one can done with the
newly learned material, I find these instructions too obscure. I rather have a 2-3 listed items like ‗make
SPOT do this and that‘ then ‗it is possible to do this and that, and that too…‘. I personally believe kids
need more clear instructions what to do…
In conclusion – Jim‘s book is a great resource for kids. In particular kids who got their NXT as a present,
and have little or no adult support. Its weak points are less important for the novice, but would be more
important after some experience is gained. Maybe Jim is planning on publishing ‗NXT-G Programming
Guide - Part 2‘ with more ‗advanced‘ programming explained? Bottom line - strongly recommended.
Add starLikeShareShare with noteEmailAdd tags
Aug 29, 2007 3:43 PM
Giant Wheel or Kinematic Sculpture?
by guy
Popout
Our forums reader florijNXT was building this model in hope it moves like a giant wheel, which it doesn‘t.
Personally, I find it a nice example of ‗kinematic sculpture‘ from NXT
If you think you can make this move more regularly - florijNXT would love to hear your ideas in his
topic here.
Add starLikeShareShare with noteEmailAdd tags
Aug 23, 2007 8:04 PM
Conveying NXT state with spoken text
by tingeypa
When building NXT models, I like to get feedback on the state of the program or the state of sensors to
make sure they are working as intended. The matrix display on the front of the NXT brick is great for
some types of output and has some neat features. These include - showing up to 7 lines of text, drawing
shapes and images, and doing simple animations. Some projects have used this to great effect. However,
it has its limitations. The display is not very big, so you can‘t read it from across the room. You need to be
directly in front of it, so it can‘t be covered or facing away. And finally it only shows black or white pixels.
Your other options for outputing state include; the motors (a precious resource), the red led on the light
sensor (only good for binary output), and the speaker. Of these, the speaker is the best suited to fill the
gaps where the display is lacking. It it quite loud, can be heard in any direction and can quicky convey
different types of information.
Since the NXT can play sound files, we can use the speaker to play short spoken phrases. I use these to
provide feedback in my models. So – where do get the spoken phrases from? One option is to record
your own voice. For me, I prefer to use one of the text-to-speech web sites that convert written text
into wave files you can download. I quite like the voices at the AT&T Text-to-Speech Demo site. You just
follow these simple steps –
1. Choose a voice (mens/womans/regional etc.)
2. Enter the phrase to speak. Keep it down to a couple of words.
3. Download it to your PC
The downloaded phrase is in a wave file that needs to be converted to an RSO file format which the NXT
can play. There‘s a nifty program written by John Hansen called wav2rso which does this conversion for
you. It can convert a number of files at a time. You can set the quality of the conversion which effects the
size of the file produced (higher frequency = better quality = larger files)
Now upload the RSO file into your NXT. You can do this with either; the standard NXT programming
environment using the Memory Tab on the connection window, or one of the file managers in either
RobotC or the BricxCC development environment.
Finally, you add code to your program to play the file at the appropriate time (e.g. when changing
program state, or detecting an object). In NXT-G you use the Sound block to play the file. In RobotC you
use the PlaySoundFile function. In either case, you specify the name of the sound file to be played.
And that‘s it! With a few simple steps your model is speaking!
Here are some examples of my projects that have speech in them - OneMotorNXT, NXTShot
Add starLikeShareShare with noteEmailAdd tags
Aug 22, 2007 6:32 AM
NXTCavator Building Instructions
by guy
NXTLiftBoy published building instructions for his NXT Cavator. See them online here. The arm and
bucket are in a sub-album here.
btw. I‘ve not built this model myself, but NXTLifBoy calims this wonderful model can be built from a single
NXT set. If you try this - let me know…
Add starLikeShareShare with noteEmailAdd tags
Aug 18, 2007 7:31 AM
What Would You Take on a NXTpedition?
by sivan
I recently had to make that decision, moving to the Boston area with my family for a year or two. We only
brought with us the two pieces of luggage that the airlines allow, so I could not possibly bring all the parts
we have. But at the end, I really avoided making difficult decisions (like how many 24t gears to take). I
just packed almost all my NXT and Technic pieces as tightly as possible and took them with me. When
you pack tightly, the parts don‘t take that much space. I left behind only the studded beams (except for a
few), and all the non-Technic Lego parts.
Add starLikeShareShare with noteEmailAdd tags
Aug 18, 2007 7:31 AM
NXT-Specific Parts at 50% Off at the Lego Store in Burlington
by sivan
The Lego store in Burlington, MA (in the US) is selling all the NXT-specific parts at 50% off. This includes
the brick itself, motors, sensors, cables, etc. I assume that other Lego stores in the US are holding the
same sale.
An update: the store displays a sign saying all the parts are on sale, but Rick Rhodes wrote that the store
actually only has sound sensors in stock.
Add starLikeShareShare with noteEmailAdd tags
Aug 17, 2007 10:36 AM
(title unknown)
by guy
Ian Ahrris kindly pointed me to his website describing ready-made expension IO cards by Futurlec, which
can be (rather easiliy) integrated into the NXT. These commercially available boards include a 7-segment
display (image above) and an 8 LED output board.
Thanks Ian!
Add starLikeShareShare with noteEmailAdd tags
Aug 16, 2007 5:36 PM
NXT Kinematic Sculpture
by guy
Popout
A lovely creation by Havard Fjaer. I hope he upload building instructions somewhere…
Add starLikeShareShare with noteEmailAdd tags
Aug 14, 2007 4:44 PM
Tool release - NXTLogger v. 1.0 beta
by guy
I have uploaded an installer executable (notice this is a large 54Mb file due to LabView 8.2 run-time
engine) which installs ‗NXTLogger‘. This application, whose window is shown above, allows you to do
simple data logging from the NXT to the PC (running Windows). To work with it, you must connect your
NXT and your PC via Bluetooth from the NXT menus (i.e. with the NXT being the Master, and the PC
being the Slave). It records data obtained from a program running on the NXT. The program can be quite
simple, like the one below:
In the program I‘ve simply recorded timer value. It is VERY important to set the Send BT Message to
‗Number‘ instead of the default ‗Text‘. When running this program, I recorded 200 seconds with 3
milisecond intervals between samples, i.e. 330 Hz.
A somewhat more elaborate (and useful) program would record also some sensor value, like the raw data
from the sound sensor:
Implementing your own datalogging should be a trivial extension of these two examples.
What is the advantage over other datalogging techniques? Brian Davis has published some well
documented data-logging MyBlocks which utilize the NXT filesystem. This method, however, suffers from
three problems:
(1) The amount of data which it can store is limited due to the small FLASH on the NXT. This is especially
painful since the file access block writes numbers as text and not binary files (so does NXTLogger, but on
the PC hard drive…)
(2) It has unpredictable delays of tens of milliseconds when the NXT buffers fill up and it performs FLASH
write operation
(3) It uses excessively the FLASH, which personally I hate writing/erasing without real reason… I know it
should be OK for a million cycles, but why get there?
The biggest advantage of FLASH based logging, is that you don‘t need an active Bluetooth connection to
a PC nearby.
A user manual is in the works, but needs your comments and questions so I know what problems to
address. I‘ve opened a discussion topic in our forums here for this purpose.
Add starLikeShareShare with noteEmailAdd tags
Aug 13, 2007 8:34 AM
Sepp: a new bridge-laying robot
by TooMuchCaffeine
Popout
Got contacted by ―fraeggnxt‖ on YouTube, saying he‘d built a brother-robot to Madison, my bridge-layer.
His creation, Sepp, is a fantastic bit of work. Much faster and more reliable than Madison ever was. I
particularly like the use of twin light-sensors to line up straight against the gap-edge - wish I‘d thought of
that.
Add starLikeShareShare with noteEmailAdd tags
Aug 13, 2007 8:34 AM
Lego NXT Dalek
by TooMuchCaffeine
Popout
My 9 year-old son Danny is a major Dr Who fan, and challenged me recently to build him a Dalek.
This is probably the most fiddly construction I‘ve put together yet. The NXT internals were actually pretty
simple, but getting the ―shell‖ right was a major pain. Turned out alright though.
Looks genuinely sinister when it starts moving, brings back all those Dr Who ―behind the sofa‖ moments
from my childhood!
(I‘ve just thought, if you‘re not from the UK you may not have seen Dr Who on tv and have no idea what a
Dalek is. In that case, this post will make no sense at all, sorry!)
Add starLikeShareShare with noteEmailAdd tags
Aug 12, 2007 1:20 PM
Sepp: a new bridge-layer
by TooMuchCaffeine
Got contacted by "fraeggnxt" on YouTube. He said he'd created a brother-robot to Madison, my bridgelayin robot.
It's an excellent bit of work, faster and much more reliable than Madison ever was.
Add starLikeShareShare with noteEmailAdd tags
Aug 11, 2007 6:41 PM
NXT Rubik‘s cube solver - Final version
by guy
Popout
Daniele Benedettelli published this video, showing his NXT Rubik‘s cube solver in action.
Add starLikeShareShare with noteEmailAdd tags
Aug 10, 2007 5:41 PM
NXT I2C with PIC16F88
by claude
Find some hints on the troublesome topic of ―How to deal with I2C status -35″, which appears, if NXT
doesn‘t receive an ACK from the remote device. I2C lines are tristate ones. Probably, the device is
hooked in high impedance state, as it should pull down the line to ground being an output line at that
moment.
The PIC16F88 is programmed to detect the hooked state, then reconfigure the I2C pins to output with
high level shortly, then with low level during 2ms and to finally reconfigure the I2C module.
NEWS: giving the sensor a power-up time of a few seconds and not following the NI toolkit user
guide recommendation to write a few new bytes after status -35, but instead aborting the communication
and re-enabling as indicated above, makes the communication completely stable with a very low number
of lost packages: 120 (lost) / 123000 (sent) within 1 hour.
Read more… www.convict.lu/Jeunes/RoboticsIntro.htm
Add starLikeShareShare with noteEmailAdd tags
Aug 10, 2007 12:39 AM
NXT Cavator
by guy
Popout
NXTLiftBoy sent me this wonderful video, showing his latest creation - NXT Cavator.
I copy here his message:
Last week i made this NXTcavator.
Again it is from a single NXT, as long as you use the claws instead of the bucket.
I used the same (slightly adapted) home-brewn Java program to control it via BlueTooth as i used for the
forklift.
The base is very compact, rigid, heavy and stable. Guess i was lucky, it took me half an afternoon. The
arm however, took me several evenings to get right. I realised that a digging/grabbing action could be
done using a single motor, because a single motor can go down in two ways: one forward and one
backward. Feared the motor power would be insufficient but the NXT proved me wrong there
The disc gear wheel with its center hole was used to guide the cable from the brick in the base to the arm
motor. This allows for over 360 degrees of swinging.
When rebuilding, please make sure your cable to the arm motor runs freely through the disc wheel center
hole, else i suspect the cable gets eaten away by the inner teeth of the disc wheel. I had the cable
clamped in between the hollow slit in the motor and the axis that holds the motor to the disc wheel. The
cable then makes a sharp rectangular bend down through the center of the disc wheel. Guess this is
much clearer from the pictures i took.
When playing with this model, make sure you do not rotate it too long in one direction as the cable will
ultimately be torn apart easily: the power of the motor driving the worm driving the disc gear wheel is
incredible!
Mounting the arm motor immediately onto the disc wheel, i had to move the angular gear that drives the
worm wheel to the outside, else the motor would rotate into it and get stuck. So i lengthened the axis a
bit, and shifted the gear wheel to the other side of the gear wheel on the swing motor. Fortification of the
free end of the axis was needed. This was a real puzzle too, and i used the possibly weirdest piece of
which there is a single one in the NXT set. The result still has rather tight clearances, as is apparent from
a clip in the video. Actually the motor slides over the worm wheel, for which i found no solution, it works
anyway.
One other evening was spend on the counterweight/engine compartment. This contributes in my opinion
to the typical excavator look. It turned out that the excavator can be considered ―zero-tail-swing‖, as no
tail part exceeds the wheel base when swinging.
Then i added the drivers seat with cushioning and ―captain‖ arm rests, belts to ―buckle up‖ the driver, the
dashboard, the cabin with roll bars. Also the mirror and the four spot lights were added, like the orange
tail lights and steps for the driver to get in. The drivers seat nicely masks the arm motor and gives the
driver a centered high position with a clear view. From the remaining gears and axes i squeezed out a
trailing roller for flattening the ground. It is not in the video, but i will try to get it in pictures.
I am very satisfied with the outcome and the color scheme, having the arm and cabin in light colors and
the rest in dark grey and black mostly. Best of all: it works reasonably well, though again operating it like
a pro is hard, actually much harder than the forklift!
I need to sort out and upload the pictures for building it, but will keep you informed.
Add starLikeShareShare with noteEmailAdd tags
Aug 8, 2007 5:04 PM
3D Scanner
by guy
Popout
This nice project by bk8190 scan in three-dimensions a design made out of lego blocks. It scans by
positioning its probe above the apropriate block, then reading how many times it is able to lower the
probe before it is stopped by a block. The scanner outputs the data into a text file, so that it can be used
in other programs.
Nice work!
Add starLikeShareShare with noteEmailAdd tags
Aug 8, 2007 1:35 AM
KILO holonomic drive robot
by guy
Rod Gillies (aka TooMuchCaffeine) published building instructions for KILO, a holonomic Killoughplatform robot. You can find video of KILO in action here, and the building guide is here.
Add starLikeShareShare with noteEmailAdd tags
Aug 8, 2007 1:35 AM
3rd NXTLOG Building Challenge Winners
by guy
NXTLog announced the winners of their 3rd building challenge! See the details here.
Add starLikeShareShare with noteEmailAdd tags
Aug 6, 2007 10:06 AM
KILO: Instructions for a holonomic robot
by TooMuchCaffeine
Hello all. I‘ve finally finished a building guide and instructions for KILO, a holonomic Killough-platform
robot. You can find video of KILO in action here, and the building guide is here.
For anyone who doesn‘t know; ―holonomic‖ means the robot doesn‘t have to turn its body to change
direction, and a ―Killough-platform‖ is named after the creator of a robot design which used special wheels
which can move freely in different directions.
There are a good few of this type of robot out there, but personally I‘ll give a tip o‘ the hat to Philo‘s Rama
and Steve H‘s Omni for initial inspiration, and a nod and a wink to billy259 and GhostInside‘s nxtlog
projects. I think KILO is different enough to merit posting about, and I‘ve not found any other instructions
for this kind of robot online.
If you build KILO then please let me know how you get on…
Add starLikeShareShare with noteEmailAdd tags
Aug 5, 2007 5:03 PM
HiTechnic Gyro NXT-G block
by guy
This NXT-G block allow you to read degrees per second of rotation using HiTechnic Gyro sensor.
Add starLikeShareShare with noteEmailAdd tags
Aug 5, 2007 5:03 PM
BetterArm
by guy
Patrick Miles put online building instructions for an improved robotic arm here.
Add starLikeShareShare with noteEmailAdd tags
Aug 5, 2007 5:03 PM
Two new contributers to NXTasy.org!
by guy
NXTasy.org welcomes two new contributers - Paul Tingey and Rod Gillies.
A few words of intro by Paul:
Paul is a software developer from London, UK. Originally a Lego fan from many years ago, he rekindled
his passion with the introduction of Mindstorms NXT. His interests lie in all aspects of NXT development software (RobotC, LabView), firmware, electronics, CAD (Google sketchup) and mechanical design.
Paul‘s recent project‘s include - Wii-Like controller, NXTShot, OneMotorNXT and some new sensor
development (shhh - it‘s still under wraps). Pictures & videos of his projects can be seen at http://picasaweb.google.com/paul.tingey
A few words by Rod:
Hello. I‘m 37 years old, working in marketing and living in Edinburgh. Although I only recently got myself a
Mindstorms kit, I‘ve always loved Lego, particularly Technic. Despite an educational background in
computers, my robots tend to be about the construction rather than the programming. I am trying to get
more instructions and building guides out there, especially for younger builders - I think we sometimes
forget
how intimidating building can be for less-experienced builders once they start to move beyond the stuff in
the box.
Rod also has some great constructions on his own blog.
Welcome aboard!
Add starLikeShareShare with noteEmailAdd tags
Aug 2, 2007 12:02 PM
NXT Gyro released
by guy
HiTechnic released the Gyro sensor! See it here.
Add starLikeShareShare with noteEmailAdd tags
Aug 2, 2007 12:02 PM
Another RFID sensor
by guy
User RFID has made public a design project report he made in univ. of San Diego describing construction
of RFID sensor and assosiated NXT-G blocks. See it here.
Add starLikeShareShare with noteEmailAdd tags
Jul 31, 2007 4:33 PM
Another ball caster
by guy
A long time ago, I published building instructions for a ball caster design by Brian Davis (get it here). Now,
mindstormsmaster1 made these nice-looking (LDD) building instructions for a similar ball caster, with a
few less beams.
Add starLikeShareShare with noteEmailAdd tags
Jul 31, 2007 4:11 PM
Mindstorms Community Partners 2.0
by guy
As you all know, when the Mindstorms Developers Program (MDP) ended a year ago, LEGO chose 20
people as Mindstorms Community Partners (MCP). This year, they increased the number to 30 MCPs. I
am privilaged to be accepted into the MCP 2.0 program which is starting nowadays. Of course, due to the
prohibitive non-disclosure agreement (NDA) I just signed to join the MCP, I will not be able to say, well,
almost anything about what surprises LEGO plans for mindstorms. However, I will continue posting
public-domain NXT news as before. I will also continue review and moderate NXTasy forums, and pass
on to LEGO your ideas and/or suggestions. Notice, however, that due to the above-mentioned NDA I
cannot tell you if LEGO accept/appreciate/disregards anything you propose….
Yours,
Guy Ziv
NXTasy.org Editor
Add starLikeShareShare with noteEmailAdd tags
Jul 31, 2007 1:11 AM
Rack and Pinion Car
by guy
Popout
Cesar Barscevicius has put this nice video, demonstrating a rack and pinion drive, with each pair of
wheels (front and back) driven by one motor+differential and the third motor rotate the front wheels using
a well-built rack and pinion. I could not figure out the power transmission mechanism in the front wheels,
but maybe the builder will send some more details (and I‘ll be happy for building instructions for this
project!).
UPDATE: I‘ve got an email for Cesar. Indeed he used 4 double bevel gears, inspired by 222doc ―AWD
buggy 4×4x4″ NXTLog project. He has an NXTLog project page for this car here. I asked him for more
photos and maybe building instructions - stay tuned!
Add starLikeShareShare with noteEmailAdd tags
Jul 31, 2007 1:11 AM
NXT Brick Sorting Solenoids
by guy
Popout
markr80, whom we previously reported built interface for different solenoids to NXT, has published this
new YouTube. Here he demonstrate how to sort bricks by color using several soleniod-activated levers
that deflect the brick to different lanes at the bottom.
Add starLikeShareShare with noteEmailAdd tags
Jul 30, 2007 1:38 AM
NXTLiftBoy
by guy
NXTLiftBoy posted building instructions for his project on photobucket.
Also, I asked him for some additional details. Here is the reply:
MODEL
Apart from the technic pallet with the V10, the NXTLiftBoy was made from a single NXT set. I spent
several evenings over several weeks to construct it. I started with a solid fork and a mast that fitted the
fork. I dreamt of a mast in parts (telescopic), but thought that that would be too much to ask for. Wanting
the brick as a counterweight, it took a while before i gave it the simultaneous functions of weight,
backward extension and pivot wheel support. Particularly the pivot wheel was a pain. The big rotating
disc/wheel in the set had too much friction, so the wheel wouldn‘t follow but, at times, even bump around.
A single tyre would give it a too narrow base, so it tumbled over when turning at high speed. Two tyres
required the split axis, not visible from the outside. At one time, i even used a blue ball in a cage instead
of the pivoting wheels i ended up with now. The ball worked well but didn‘t have the looks…and the red
ball neither
After getting the pivoting wheel ok, i added the cabin, chair and mirror from the remaining parts.
To my taste, the cabin and brick ended up too high, maybe i‘ll have an attempt at a redesign/makeover,
suggestions are welcome.
SOFTWARE
Inspired by Brixcc, and using the iCommand library, i created a Java program that enabled me to control
it wirelessly with the mouse. The mouse is inside a control plane, at the center nothing happens. Moving
the mouse up makes the NXT move forward. Position in the plane determines speed. Left/right position of
the mouse in the plane determines the curve the NXT makes. At the edges it turns on the spot. In the
center it drives straight. Halfway the edges it turns around one of its wheels.
There 200×200 ways to drive the NXT, it is a proportional controller. It sends an update every 20
milliseconds to the NXT, but only if there is a change, to save batteries.
Left/Right-clicking the mouse makes the fork go up/down.
The fork has ‗auto-accelerate‘, meaning that upon click-and-holding the button, it increases fork speed
from 0 to 100 in about half a second. This way you get the speed without losing precision in maneuvering.
Double-clicking the mouse in the control plane (de)activates driving. If the mouse leaves the plane the
motors are stopped too. The software has radio buttons to configure the motors wiring and orientation.
Even with the custom software, it is a real challenge to get used to the controls and operate the forklift as
a pro!
Add starLikeShareShare with noteEmailAdd tags
Jul 29, 2007 2:07 AM
RFID sensor for NXT
by guy
Another long lasting who-will-be-the-first challenge completed! Anders has published in great detail how
he constructed an I2C RFID reader sensor for NXT. He used a Paralax RFID reader and a MSP430F169
MCU to communicate with the NXT.
More information, video and details are found here.
Well done Anders! Thanks for time you spent documenting this project!
Add starLikeShareShare with noteEmailAdd tags
Jul 29, 2007 1:07 AM
NXTPlotter
by guy
Our forums reader Krystman posted here on converting a LEGO #8094 Technic Control Center plotter
into an NXT driven plotter.
A YouTube video is here, and building instructions on flickr. More details in Krystman website.
Add starLikeShareShare with noteEmailAdd tags
Jul 28, 2007 3:12 PM
NXTAssembler 1.0 version alpha 2
by guy
Matteo Valdina (website) created a new compiler for NXT, similar in function to NBC (i.e. creates .rxe files
executables for the NXT) but based on XML. The last release is version alpha 2 of this ‗NXTAssembler
1.0′. You can download it here - http://sourceforge.net/projects/nxtassembler.
Examples of source code can be found in the folder ―AsXML Test/program‖ in the package.
The project require Java 1.5 or newer and for building require ―ant‖ tool (http://ant.apache.org/).
see also this topic on our forums for discussion of this new project.
Add starLikeShareShare with noteEmailAdd tags
Jul 28, 2007 3:07 PM
Challenge No. 3 Sponsorship
by guy
I‘m happy to announce that our third challenge ―The AnxT!‖ (see here for details), will be sponsored by
mindsensors.com. The winner of this challenge will get a 60$ cupon for purchase in mindsensors.com
online shop!
What are you waiting for? Build ANxTs!
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
Jul 28, 2007 3:07 PM
NXTLiftBoy
by guy
Popout
A nice NXT project by NXTLiftBoy. According to his email, he used Java for this project to do fast
proportional wireless control by a PC with a mouse. The programming allowed him to use BT remote
control on the ‗wrong‘ BT dongle and stack (Toshiba) which usually does not work. I hope he will send
more details on this later.
Nice work, NXTLiftBoy!
Add starLikeShareShare with noteEmailAdd tags
Jul 28, 2007 11:07 AM
An Eight-Legged Walker
by sivan
I posted building instructions for an eight-legged walker. It uses some custom sensors, but you can ignore
them and just reuse the platform.
Add starLikeShareShare with noteEmailAdd tags
Jul 26, 2007 1:18 AM
TINA - the concertina robot
by guy
TooMuchCaffeine published building instructions for TINA the concertina bot. See also the NXTLog
page here.
Add starLikeShareShare with noteEmailAdd tags
Jul 26, 2007 1:18 AM
quadWALKER
by guy
TooMuchCaffeine published building instructions for the base (i.e. without ultrasound sensor) of
quadWALKER. See also NXTLog page here.
Add starLikeShareShare with noteEmailAdd tags
Jul 24, 2007 12:41 PM
Coding4Fun: MS Robotics Studio
by eric
Last week, Coding4Fun posted an article/tutorial on using MS Robotics Studio with the LEGO Mindstorms
NXT.
In this article, Brian Peek will demonstrate how to use Microsoft Robotics Studio to control the Lego
Mindstorms NXT kit. A simple remote-controlled robot will be built and controlled using C# and the MSRS
Visual Programming Language (VPL).
Add starLikeShareShare with noteEmailAdd tags
Jul 23, 2007 5:26 PM
First ANxTs have arrived!
by guy
The first two submissions for NXTasy challenge #3 have arrived!
The first submission, from ‗Dad and Adam‘ is called ‗Sandow‘. It has a lift object weight/ANxT body weight
ratio of 15.2 (!) and a mass-transfer rate of 77.7 kg cm/sec.
Second submission by Mac Ruiz, aka 222Doc, has a lift object weight/ANxT body weight ratio of 5.15 with
a mass-transfer rate of 34.5 kg cm/sec.
Keep going, guys! Deadline is still far - September 15th 2007!
Add starLikeShareShare with noteEmailAdd tags
Jul 21, 2007 2:16 PM
CdS Light Sensor NXT-G Block
by guy
Michael Gasperi made this block for an CdS Light Sensor with LED Control. The schematics for building
this sensor are found here.
Add starLikeShareShare with noteEmailAdd tags
Jul 19, 2007 9:03 AM
Author Reply to Book Review: The Da Vinci Invetions Book
by guy
A few days ago I raised some issues concerning Matthias new book ―Advanced NXT: The Da Vinci
Inventions Book‖ in my book review. I asked Matthias for comments on these issues, and I hereby attach
his comments exactly as I got them:
―Guy, thanks for your review of the book and the overall good rating. I agree with you that the usage of
parts that are not contained in the NXT kit may prove as some initial obstacle to readers of the book who
do not possess other LEGO material than the kit. Yet, with some
creativeness, most of these parts might be replaced by NXT kit ones (for instance, the kit‘s turntable can
be used instead of the old-style turntable you mention for the Revolving Bridge). As stated in the book,
there‘s a particular book-related page on my own web site
at http://mynxt.matthiaspaulscholz.eu/book/index.html, where people can find media related to the book.
Amongst other things, for each model there‘s a list of parts used that are not contained in the NXT kit,
alongside to links in which sets to find them (almost anyone
stems from the NXT‘s predecessor, the RIS 2.0 MINDSTORMS kit) - following an idea of your‘s.
This page(s) will also make for your wish of providing videos and detailed pictures for the models to help
buyers of the book in managing the more difficult building steps (so stay tuned for material to be
presented there in the next days and weeks). After all, I have
hoped to help out already in the book with rather detailed instructions, in particular on the more
complicated parts of the construction process. Well, the models are rather advanced in the end.
As for the graphical quality of the building instructions: there‘s always a trade-off between resolution in
detail and size of the book. And one‘s always only as good as the tools that are available (sadly, LDD 2.2
was not available then and it still has some drawbacks that
would have made it useless for the models in the book anyway). However, I don‘t think the instructions
are that bad (they have been created with LDraw) - I still consider them rather fine and useful for the
builder. I should be pretty surprised if people would not be able
to build the models in the book just because the instructions are not comprehensible enough. If that is the
case (and any reader is encouraged to tell me so then), I will be the first to provide help on my web site.
Last but not least, I consider the detailed discussion of the five presently most important programming
environments that run run on the brick an asset of the book. I know of no other publication presently
available that provides such a detailed way to compare these languages and IDEs with real examples
and decide on their usefulness for one‘s
own needs and preferences in terms of NXT programming as the book at hand does. If a reader consider
them intimidating then, it helped him to make a decision after all that this kind of language is not his cup
of tea, dosn‘t it?. Of course one could have provided the code on a web site only and leave it out of the
book - but in my opinion, that appeals to the
content of almost any book: you can always move it from a book to a web site - but what would have
been the use of the book at all then?
Sorry for having made so much words, and thanks again for your review and having given me the
opportunity to make some remarks,
Matthias Paul Scholz (proud member of nxtasy.org for a long time already)‖
Thanks, Matthias for your comments and for making the extra material available for the readers!
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
Jul 18, 2007 2:59 PM
leJOS NXJ version 0.3 released!
by guy
As you all know, there are allready several programming alternatives for the NXT. These include, for
example, NXT-G, RobotC, NXC etc. One other option is leJOS, a Java object-oriented language built on
top on TinyVM. As you can read in the following email I got from Brian Bagnall, one of leJOS developers,
this new release starts taking shape into a mature firmware alternative for the LEGO and RobotC
firmwares:
The latest version of leJOS NXJ is finally ready! For those who aren‘t familiar with leJOS, it‘s a full
replacement firmware for the LEGO Mindstorms NXT brick that allows you to run Java programs on the
NXT brick. leJOS NXJ works with Windows, Linux and Mac OS X (a dedicated Mac build is coming soon).
Version 0.3 now includes some key features:
- A flash file system including implementations of java.io.File,
FileInputStream, and FileOutputStream.
- CompassPilot and CompassNavigator
- A menu system that supports executing and deleting programs, and LCP commands with NXJ
extensions over USB and Bluetooth
- Java streams over Bluetooth and USB
- USB support
- Flash native methods
- Working flash build of leJOS NXJ
- Improved LCP support (LEGO Communication Protocol) including file commands
- Improved Bluetooth support including setting the NXT name
- A file explorer that runs on your PC
And much more…
Check out www.lejos.org for more information.
I hope these guys release some tutorials soon, since understanding how to use leJOS from the examples
source and the API is somewhat challenging….
Add starLikeShareShare with noteEmailAdd tags
Jul 18, 2007 2:59 PM
Kong videos on YouTube
by guy
John Brost put on YouTube three videos of Kong. Kong was designed & built to compete in the rock
crawler challenge at Brickworld ‗07 in Chicago, IL, and won the event.
Now, John put some videos online, see them at the links below:
http://www.youtube.com/watch?v=Y9eEYHZI1JU
http://www.youtube.com/watch?v=0gzhwBWrCRY
http://www.youtube.com/watch?v=sgUAK1xQOpQ
There‘s also a NXTLog page here.
Add starLikeShareShare with noteEmailAdd tags
Jul 16, 2007 9:47 AM
Book Review: The Da Vinci Inventions Book
by guy
A few days ago I rechived a review copy of the new APRESS book ‗Advanced NXT: The Da Vinci
Inventions Book‘ by Matthias Paul Scholz. After a few days, I finally managed to read through the whole
thing (but didn‘t build any of it‘s designs, for reasons explained below).
Bottom line - it‘s a good book, especially if you are looking for fully detailed building instructions and
programming instructions. The book covers 5 of Da Vinci greatest works - the armored car, the catapult,
the revolving bridge, the aerial screw (known by mistake as the ‗helicopter‘) and the flying machine. Each
work is described in a chapter of its own with historical background, discussion of the particular LEGO
challenges and mechanisms used, full building instructions and programming details in NXT-G, RobotC,
NXC, pbLua and leJOS. Before getting into the detailed codes, a nice diagram explains the program flow.
Paul also gave good introduction to NXT and Da Vinci, as well as nice outlook on future improvements
one can attempt for the 5 models, and two other Da Vinchi inventions which may be attempted by the
reader.
Having said allready that this is a good book, it does have some drawbacks. The major one, for me at
least, was the use of many pieces which are not part of the Mindstorms NXT #8527 retail kit (or the #9797
educational base set). Unfortunatly, the book does not give alternatives using the parts in the basic sets
parts, nor give any indication which extra sets are needed and where to buy them. Some models use
hard-to-get parts, like the revolving bridge which uses the old-style turntable (Peeron #2855 and #2856).
Unfortunatly, I could not build some of the models due to lack of pieces…
Paul gives programming instructions in five different languages. Alltough some will find this an excellent
way to learn new languages by comparision, I think it is not important. One could have, for example, put
all the extra codes online, leaving only NXT-G (and maybe RobotC) code in text. For young readers,
these detailed textual codes would probably be somewhat intimidating.
Another nice-to-have feature which I lack, is an online page with more pictures and videos of the
machines in action. I think this would help understand some of the more difficult constructions steps, and
especialy the use of strings in models such as the revolving bridge and the flying machine.
Last, as in allmost all black-and-white books with building instructions, the graphical aspects are
problematic. In some figures the casted shadows distracts the eye, while in others the pieces are too
reflective and some even appear to be transparent! I know how hard it is to make publication quality
building instructions… I just hope a better solution will come up soon (and with the release of LDD 2.2 it
may be close, even though it still lacks a lot more Technic pieces and other features to be a good
candidate to replace good old LeoCAD/MLCad).
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
Jul 15, 2007 3:46 PM
Average NXT-G Block
by guy
The Average Block lets you convert instantaneous measurement into time-averaged measurements. The
block is simple to use - put in the new value in ‗New Value‘ drawer, and get the running average in the
‗Average‘ output. You can choose how many time points to average - 10, 20, 50, 100, 200, 500 or 1000.
See the attached sample .rbt file, which displays time-averaged sound level on the NXT screen.
Add starLikeShareShare with noteEmailAdd tags
Jul 14, 2007 4:46 AM
New contributer to NXTasy!
by guy
NXTasy welcomes Mac Ruiz, aka 222doc in our forums, as a contributer to NXTasy.org. Mac is a retired
construction superintendent from AZ. His personal website contains many creative NXT designs and he is
an active member in our forums. Mac also wrote a chapter on robotic animals in the ‗Building Robots with
LEGO Mindstorms NXT‘ recently published by Syngress.
Welcome, Mac!
Add starLikeShareShare with noteEmailAdd tags
Jul 14, 2007 3:46 AM
New Repository Project
by guy
Laurens Valk published building instructions (made with Google SketchUp) for his Brick Sorter. I added
this project to the NXTasy repository ‗Projects‘ page here. That page contains over 20 NXT models with
links to building instructions, made by various authors.
With the released of LDD 2.2, making building instructions is even easier then before! I invite everyone to
share LDD files and building instructions in our repository, simply by emailing me with guy (at) nxtasy.org.
Add starLikeShareShare with noteEmailAdd tags
Jul 14, 2007 3:46 AM
LEGO Digital Designer v. 2.2
by guy
A new version of LDD (LEGO Digital Designer) was released in July 2007. This new version has all the
parts included in the retail 8572 set of mindstorms NXT.
Add starLikeShareShare with noteEmailAdd tags
Jul 14, 2007 2:46 AM
Brick Sorter
by guy
Laurens Valk published building instructions (made with Google SketchUp) for his Brick Sorter.
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2007 3:34 PM
Real-time clock Sensor NXT-G Block
by guy
This block allow you to get/set the time in mindsensors.com real-time clock sensor.
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2007 2:33 PM
More NXT-G Blocks
by guy
Techno-stuff has released dedicated NXT-G blocks for their air pressure sensor and motion detector
(passive IR sensor). The new blocks can be found in the NXTasy repository NXT-G blocks list.
Reminder - If you encounter anything you thing worth getting into the categorized repository, email me at
guy (at) nxtasy.org!
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2007 2:33 PM
Techno-stuff Passive InfraRed Sensor NXT-G Block
by guy
This block will let you use the Techno-stuff motion detector (i.e. Passive InfraRed sensor).
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2007 2:33 PM
Techno-stuff Air Pressure Sensor NXT-G Block
by guy
This block will let you read air-pressure values (either in kPa or PSI) from the air-pressure sensor of
techno-stuff.
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2007 1:33 PM
Solenoids on Lego NXT
by guy
Popout
Aother nice project from markr80 - NXT controlled solenoids. Well documented video, and good
references too (see YouTube description here)
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2007 11:33 AM
Quantum Torque NXT sensors
by guy
I never heard of Quantum Torque, did you? Well, their website says that ―Quantum Torque is a
independent Australian internet shop which aims to provide components and products that can be used
for robotics and embedded electronics projects‖. The picture above is a ‗cball Infrared Ball Sensor‘ - 8 x
infrared photodetectors arranged in a 180 degree semi-circle. It has I2C interface, and their site has NXTG and RobotC examples. Other products on their site is a ‗iball‘ (1 x infrared photodetector with NXT
socket) and an NXT breakout PCB board. Check their site for details.
Add starLikeShareShare with noteEmailAdd tags
Jul 9, 2007 1:33 AM
NXTasy Challenge #3 - The ANxT!
by guy
NXTasy challenge #3 if finally annouched! Your mission will be to build an NXT ‗Ant‘ or ‗ANxT‘ in short.
Ants are remarkable little creatures, capable of lifting weights several times their own body weight (if you
search the net, you frequently find sites quoting that ants can lift 10, 20 and even 50 times their own body
weight. However, I could not found a scientific proof for these values…).
The goal of your ANxT would be to move an object (the ‗weight‘) a distance of 1 meter without touching
the floor. The grade will be 50% determined by the object weight/ANxT weight ratio, 30% by the mass
transfer rate and 20% by how much your ANxT is, well, ‗antish‘…
Oh, and the object must be bigger then your ANxT in all dimensions, did I mention that already
?
The full details, rules, submission procedure, deadline etc. are here.
Add starLikeShareShare with noteEmailAdd tags
Jul 6, 2007 6:40 AM
(title unknown)
by guy
Our forums reader 222doc published about this NXT creation he calls ‗IT‘. IT moves by bending it‘s knees
till the upper part touches ground, and lifts the other (previously bottom) part up, and vise versa. More
details (any video soon?) here.
Add starLikeShareShare with noteEmailAdd tags
Jul 3, 2007 8:12 AM
New NBC/NXC beta
by guy
A new beta version b31 is on its way from John Hansen. Quoting from Lugnet:
―…
The main new features are a safecall keyword and compiler switch which lets you call subroutines from
multiple threads without having to manually wrap the call in Acquire & Release. If you mark a function as
being a safecall function then the compiler will handle it automatically for you. And if you want all your
functions to be called using the safecall convention then you can simply add the -safecall switch to the
NBC command line.
Also new in NBC b31 as well as in BricxCC‘s built-in version of b31 there is now support for the RICScript
programming language which lets you create RIC files via a text-based script. There will be
enhancements here that involve importing a sprite from an external file and things like that but for now it
is at least fully functional and well integrated with the latest BricxCC test release. ―
Add starLikeShareShare with noteEmailAdd tags
Jul 3, 2007 8:12 AM
Connect a GPS with pbLua
by guy
Ralph Hempel describes how to use pbLua to stream Bluetooth GPS data to the NXT. See this page for
the code and details.
Add starLikeShareShare with noteEmailAdd tags
Jun 30, 2007 3:12 PM
NXT sky scout
by guy
Can‘t find a star in the night sky? Our forums reader squig can help! Here he posted on building a NXT to
locates astronomical objects. Great work squig!
Add starLikeShareShare with noteEmailAdd tags
Jun 30, 2007 3:12 PM
RoboWorm avoiding obstacles
by guy
Popout
Our forums reader pawelec posted here on this nice NXT worm.
btw. here‘s an answer for thenxtstep question regarding knob wheel…
Add starLikeShareShare with noteEmailAdd tags
Jun 30, 2007 2:36 PM
NXT solves maze, helps another…
by guy
Popout
Out forums reader yeikiu has this website describing his (and his university partners) NXT maze solver.
The Master NXT solves the maze using Tremaux algorithm, and then sends the Slave NXT the directions
over bluetooth. A discussion topic is here. Very nice project!
Add starLikeShareShare with noteEmailAdd tags
Jun 30, 2007 3:09 AM
Control NXT by MacBook gravity sensor
by guy
Popout
Here‘s a YouTube showing how to control the NXT using the gravity sensor of a Apple MacBook Pro in
order to remote control a LEGO MINDSTORMS NXT robot. They connect via bluetooth, and the
Interactive Geometry Software Cinderella.2 is used as controlling software. It reads the data from the
gravity sensor of the MacBook, processes it and then controls the motors of the NXT robot accordingly.
More info about Cinderella at http://cinderella.de
Add starLikeShareShare with noteEmailAdd tags
Jun 28, 2007 1:08 AM
Pssst…
by rachel
nxtasy.org has just turned one. Yes, it‘s true: Eric‘s first post dates back to June 28th, 2006. The site and
the forums have been growing steadily ever since. Happy Birthday nxtasy.org! Thank you all for making it
such a great community.
Add starLikeShareShare with noteEmailAdd tags
Jun 23, 2007 10:27 AM
Building Robots with LEGO Mindstorms NXT
by guy
Finally, the author names of the new book from Syngress ‗Building Robots with LEGO Mindstorms NXT‘
have appeared here. Besides Dave, who was the editor of the new book, 3 other contributers are
members of NXTasy.org: Sivan Toledo, Dick Swan and Guy Ziv. I can assure you that there‘s a lot of
interesting new material in the new edition of the best selling RCX version.
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
Jun 19, 2007 4:00 PM
Walking NXT Biped
by guy
Popout
Here‘s some Japanesse movie I found on YouTube. This biped realy walk, lifting its feet completely of the
ground.
A few more NXT biped YouTube videoss by the same Joe Nagata can be found here. Joe Nagata also
has a homepage (in Japanesse) here. Joe - if you‘re reading this please send me an email with more
(English) details!
Add starLikeShareShare with noteEmailAdd tags
Jun 19, 2007 4:00 PM
NXTasy.org Challenge 2 results
by guy
Challenge 2 is now over, and it is time to show some video of the participants. I hope next challenge we
have more submissions! I‘ve created a dedicated page for challenge 2 results, which is accessible from
the Challenges link at the top of the homepage. A direct link to the page is here.
Add starLikeShareShare with noteEmailAdd tags
Jun 18, 2007 4:56 AM
Using Stepper Motors
by sivan
Steppers are motors that move in discrete steps. You can control them to move a given number of steps
without any feedback. You can rotate them slowly but with a lot of force without using any gears.
See full description of the project (which includes a video) to learn how to integrate a common stepper
motor into a NXT creation and how control it.
My controller was influenced by a stepper controller that Michael Gasperi posted to one of the
forums. See the forum for the Michael‘s circuit and program, and click here for a video of his stepper in
action.
Add starLikeShareShare with noteEmailAdd tags
Jun 13, 2007 5:08 PM
POB-Bridge
by guy
Here‘s a new product from POB-Technology - POB-Bridge. The POB-Bridge allows you to :
- Get analog values on 5 analog inputs.
- 8 digital Inputs/Outputs.
- UART Communication.
- Connect a POB-EYE color camera to recognize forms.
POB-Technology has already developed 5 bricks to help the user to create his robot. Here‘s a link to
POB-Bridge specifications. A YouTube video is here.
Add starLikeShareShare with noteEmailAdd tags
Jun 11, 2007 1:57 AM
Madison: Bridge-Laying Robot (UPDATED)
by guy
Popout
Here‘s a VERY cool robot, which knows to detects gap, lowers bridge, crosses, and then picks bridge up
and gets ready to do it all again! Great work! I got an email from the creator (aka TooMuchCaffeine in
nxtlog) pointing to this NXTLOG page with the .rbt program.
Add starLikeShareShare with noteEmailAdd tags
Jun 11, 2007 1:57 AM
Making your own digital sensors
by guy
Popout
Michael Gasperi made a homebrew digital (I2C slave) sensor. Creating digital sensors typically requires
either some hardware which supports I2C communication, such as PCF8574 digital port expander, or a
microcontroller like the Microchip PIC. The later alternative is the most versetile, allowing using all the
microcontroller features to interface with the NXT. These include digital input/output, analog input/output,
UART (i.e. RS232, needed for instance for most GPS/GSM modules) etc. The pitfall, however, is that one
need to program the PIC to behave as a proper ―I2C Slave‖. In this dedicated page Michael explains how
to do this efficiently.
NOTE: Sivan Toledo did a similar job with the TI MSP430 family chips. Take a look here.
Add starLikeShareShare with noteEmailAdd tags
Jun 9, 2007 7:56 AM
NXT-Powered Trashbots
by dave
―A family of robots designed with the purpose of cleaning up the streets as well as to generate public
awareness of trash issues.‖
Although these may not seem like LEGO robots - they are… Just with some very cool looking costumes..
Check out the link for a video on the line of NXT-powered ―trashbots‖
http://www.tejstastic.com/robots/TBF.html
Add starLikeShareShare with noteEmailAdd tags
Jun 6, 2007 4:03 PM
Challenge #2 Winners!
by guy
NXTasy.org challenge #2 is over, and it is time to declare the winners. Unfortunately, we had very little
participation this time - only 2 contributions in the NXT-G category and 4 in the ‗other languages‘
category. I pledge everyone to answer my short survey here so I decide about future challenges.
In the NXT-G category only Larry Menor completed the task fully, with an average outcome of 54
seconds. Larry - you win 60$ for purchasing in mindsensors.com!
In second place we have Alex Dimitrov. Alex has almost made it to first place, with average time of only
28 seconds, but his robot fails to put back the ball (well, he says it does work when he doesn‘t video it…).
I‘ve given him some extra days to prove his claim - but he didn‘t reply.. For the sake of good will - you
earned the second place, and win $35 coupon at mindsensors.com.
The ‗other languages‘ category had some more participants. Here the second place goes to Michail
Zampetakis whose NBC programmed robot score 31 seconds on average. Michail - you won $35
courtesy of mindsensors.com. I want to thank the ‗not-winning‘ users (cheer up guys - at the end, it‘s all
about having fun!) Laurens Valk (RobotC, 33sec and VERY close to 2nd place..) and Victor Potenciano
(NXC, 85sec).
Finally - Hip-Hip-Hurry to Allen McArthur for a NXC programmed robot which complete the task with an
average of 16sec! Great job, Allen! You earned your first prize 60$ reward big times!
I‘m preparing a dedicated page with photos, videos and codes of all participants. Hopefully this will come
up soon, but patience is a blessing…
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
Jun 5, 2007 12:01 PM
Port Expander by Mindsensors.com
by guy
Mindsensors.com now sells a port expander. It allows either running 3 motors together (no separate
control over each motor speed or encoder readout) and multiplexing several digital (I2C) sensors on
single input ports. You can order it via mindsensors.com NXT Accessories page.
Add starLikeShareShare with noteEmailAdd tags
Jun 4, 2007 3:52 PM
A Solenoid-Triggered Gun
by sivan
The NXT servos and other Lego motors are useful actuators, but it‘s interesting to explore other
actuators. The ―Extreme NXT‖ book by Michael Gasperi, Philo, and Isabelle Hurbain shows how to use
many more actuators with the NXT: LED‘s, lamps, relays, motors, and a really exotic one called a muscle
wire. But it‘s always an interesting challenge to find out how to control new kinds of actuators, and it‘s
often even more interesting to find out ways to integrate them into the Lego/Technic/NXT building system.
In this project I tried to use a solenoid, which is basically an electromagnet that pulls a metal plunger
when current flows through it. There were three main challenges in this project: to integrate the solenoid
into a Technic mechanism, to find a good use for it in spite of the very short stroke (length of movement),
and to drive it either from a motor port or from a sensor port. The difficulty in using a sensor port is that
sensor ports cannot provide the high current required to activate the solenoid.
A web page describes the project with pictures and a short video. If you are interested, you may also
want to join the lively discussion on actuators in the hardware forum.
Add starLikeShareShare with noteEmailAdd tags
Jun 3, 2007 4:52 AM
Toy Piano Interfaced to NXT
by guy
Popout
Gasperi does it again! Here‘s a toy piano with 23 ‘switches‘ (i.e. keys) interfaced to one NXT port, using
two PCF8574s. More info here.
Add starLikeShareShare with noteEmailAdd tags
May 31, 2007 8:52 AM
Holonomic Drive
by guy
Popout
Here‘s another proof that one doesn‘t need omniwheels to holonomic drive.
UPDATE: our forums member Ghost42 published more info on this work here.
Add starLikeShareShare with noteEmailAdd tags
May 31, 2007 8:52 AM
Automated NXT Ashcan
by guy
Popout
In a series of videos, ‗pemiamos‘ shows the constuction of an NXT ashcan which opens when you get
close to it. Great idea and nice movies!
See the movies: 1, 2, 3, 4, 5, 6 and 7
Add starLikeShareShare with noteEmailAdd tags
May 30, 2007 7:52 AM
Digital-to-Analog NXT-G block
by guy
Michael Gasperi made a NXT-G block to communicate with the TDA8444 8 channel DAC chip. More
details and download here.
Add starLikeShareShare with noteEmailAdd tags
May 30, 2007 1:52 AM
Text Manipulation NXT-G Blocks
by guy
Here are a few NXT-G blocks for manipulating strings. There are 5 blocks in this archive:
1.
2.
3.
4.
5.
Text Compare
Text Length
Text Subset
Text Contains
Text to Number
whose function is evident by the block name.
download archive here.
Add starLikeShareShare with noteEmailAdd tags
May 30, 2007 1:52 AM
Servo Interface for NXT
by guy
Popout
Michael Gasperi latest hack - interfacing the NXT to a servo motor. In practice, this interface can control
other analog devices. Here he show how the digital-to-analog converter (connected to the NXT) is used to
control a voltage controlled oscillator that produces pulses capable of driving a RC Servo. More
details here and in thisforums post. Also, Michael used an old IBM 07G0032 keypad in this case, and he
has the details here.
Add starLikeShareShare with noteEmailAdd tags
May 24, 2007 8:43 AM
Pinging multiple US Sensors in RobotC
by guy
Steve Hassenplug contributed this modified driver written by Dick Swan, to continuously ping several
Ultrasonic sensor at a time, and store the reading in the SensorValue[] for the program to use in the
normal way.
The user program should include:
#include ―NXT 3x Ultrasonic Driver.c‖
to load the driver, and
StartTask(UltraSonic3xDriver);
to start the driver.
The number of US sensors, and the ports can be configured in the first few lines of the driver.
Download driver here.
Add starLikeShareShare with noteEmailAdd tags
May 23, 2007 3:48 AM
LEJOS OSEK open firmware for NXT
by guy
LEJOS OSEK is an open source firmware for LEGO Mindstorms NXT. LEJOS OSEK consists of I/O
driver of LEJOS NXJ platform source code, TOPPERS OSEK RTOS source code, and glue code to make
them work together.
LEJOS OSEK can provide:
-ANSI C/C++ (not C based, but real C) programming environment by using GCC
(GNU-ARM) tool chain
-LEJOS NXJ platform based device API for NXT Sensors, Motors, and other devices
-TOPPERS OSEK provided real-time multi tasking features proven in automotive
industry
-Rate Monotonic Scheduling with 1msec resolution by using OSEK Alarm
-Several examples (include a NXTway)
-Fast execution and less memory consumption
I.e. Application is executed natively on the ARM7 and NXTway consumed totally just about 20k bytes
(includes LEJOS OSEK itself)
LEJOS OSEK is focused on real-time control applications for NXT, thus nice GUI/file system are out of
target. Additionally, we can provide a graphical modeling, simulation, and code generation environment
which is called Embedded Coder Robot NXT.
Embedded Coder Robot NXT is LEGO Mindstorms NXT specific Blockset of The MathWorks MATLAB(R)
& Simulink(R) products. LEJOS OSEK will be also used as the run time environment of the Embedded
Coder Robot NXT applications. Embedded Coder Robot NXT can be downloaded from The MathWorks
File Exchange site:
[via Lugnet]
Add starLikeShareShare with noteEmailAdd tags
May 21, 2007 3:47 PM
NXT Radar - Part III
by guy
In this post I‘ll describe how I programmed the NXT Radar using LabView. I‘ve decided to use LabView,
the core engine of NXT-G, to demonstrate how to use a more ‗mature‘ graphical programming language
for NXT. The NI LabView toolkit for Mindstorms NXT (download free in NI website) allows, besides
making new NXT-G blocks (which I‘ve covered some advanced issues of in previous posts), to compile
programs for the NXT. The compiler used is the same as in NXT-G, yet one has more access to low-level
implementation of the firmware commands and typically less overhead. In writing the code I decided to
adopt a unconventional approach - let the NXTstream data to the PC as the Bluetooth master. To do this,
one simply connect to the PC from the Bluetooth menu on the NXT. The current fantom driver, however,
does not support this mode. The fantom driver is the interface layer between the Bluetooth serial port and
all other programs. Allmost all NXT fly-by-wire programming tools (for LabView, .NET, C# etc.) use
fantom to communicate with the NXT. To overcome the fantom limitations, I used direct serial port
commands in LabView, accessible in the VISA subVI menu.
(zoom)
The most important subVI I use is my ‗Get BT Message.vi‘ whose diagram is shown above. This VI
checks if there are at least two bytes waiting in the serial port buffer (each BT packet starts with 2 bytes
packet size). If not - it simply returns with a false value in ‗Valid?‘. If true, it converts the read 2 byte string
into unsigned integer (U16) with ‗Unflatten from String‘. An important issue here is the use of little-endian,
as opposed to the ‗Unflatten from String‘ default which is big-endian. The VI then waits for the whole
packet to arrive, and decompose it into a mailbox, a size and the actual message (sent as a nullterminated string).
(zoom)
The VI shown above is compiled and run on the NXT. One must use the USB cable to download this
when the NXT is configured as the BT master. This VI simply rotates the radar sensor, and sends the
value of the Sharp IR sensor and the rotation sensor as a single BT message.
(zoom)
Last, but not least, is the main LabView PC-side program. This VI initialize the BT serial port for getting
the incoming data stream. One crucial potential problem is the ‗Termination Character‘ usually used in
serial communication. Typically when the line-feed char (0×0A or ASCII code 10) is found in the incoming
serial buffer, any read buffer command will get the data truncated at that point. This is very bad when
binary data is transmited over the serial port, as is the case in this program. Fortunatly, the ‗VISA
Configure Serial Port‘ VI has an optional terminal which can disable this. After the port is opened, the VI
iterates the main loop. There it waits till a valid BT command is found (or front panel Stop button
pressed), decodes the two sent data pieces from the NXT code shown before, and creates a radar-like
polar display using the ‗Polar Plot‘ VI (which exists only on newer LabView professional/full versions).
The above programs, allthough clearly tailored for the NXT Radar, can be modified to allow any kind of
direct data streaming from the NXT to the PC. In the near future I‘ll post on a simple off-brick data logging
tool using this technique.
Guy ZivNXTasy.org
Add starLikeShareShare with noteEmailAdd tags
May 20, 2007 1:20 PM
Challenge 2 - 10 days left!
by guy
Only 10 days till the end of our second challenge! If you forgot - the rules are here. Prizes are $60 for first
place and $35 for second place in 2 categories given as cupons for purchasing in mindsensors.com.
Add starLikeShareShare with noteEmailAdd tags
May 17, 2007 2:45 AM
New Contributor to NXTasy.org
by guy
NXTasy.org welcomes our new contributor Daniele Benedettelli. Danny (an MDP member) has made
some great contributions to the NXT community, including an amazing Jhonny 5, Turtle, the Cube Solver
(see below) and soon-to-come starwars AT-ST biped model. His
website http://daniele.benedettelli.com/ is among the best NXT sites I‘ve seen, with clear information and
great graphical design. Danny also made contributions to the NXC Bluetooth library which is now part of
the NXC package.
Welcome aboard!
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
May 16, 2007 6:45 PM
Danny‘s NXT Rubik‘s cube solver is now fully automated!
by Daniele
After a long hard work, the Lego Rubik Utopy project is finished with success!
Check out details about this new generation LEGO Rubik‘s cube solver here.
The new amazing video is available here.
Daniele Benedettelli
Add starLikeShareShare with noteEmailAdd tags
May 16, 2007 1:45 PM
Programming NXT with AUTOMGEN 8.0
by guy
AUTOGEN is an automation software created by IRAI. It now supports NXT control over USB or
Bluetooth. Seehere for details.
AUTOMGEN 8.004 version is available for download here : www.irai.com/a8e
Add starLikeShareShare with noteEmailAdd tags
May 14, 2007 8:44 AM
AT-ST Moonwalker
by guy
Popout
It still doesn‘t seems to move well, but it‘s a VERY cool design…
Add starLikeShareShare with noteEmailAdd tags
May 14, 2007 8:44 AM
NxtShot version 2.0
by guy
Popout
Here‘s version 2.0 of the NxtShot I posted on April 26th. Don‘t miss the fantastic SketchUp animation
showing the canon model at the end of the video.
Add starLikeShareShare with noteEmailAdd tags
May 14, 2007 8:44 AM
NXT Johnny Five
by guy
Popout
Here‘s a Lego robot copy of famous Johnny Five I found on YouTube. I hope I‘ll find some details from
the maker.
Add starLikeShareShare with noteEmailAdd tags
May 12, 2007 3:15 PM
NXT Radar - Part II
by guy
Before I dwell into the technical details - a brief overview: NXT uses 6 wire ports. All passive/active RCX
style sensors use pins 1 and 2. Digital sensors typically use pins 4-6, unless they require also a 9V power
supply from pin 1.
The Lego Sonar sensor fits the last category. It requires 5 pins to function - +4.3V, ground, 2 digital (I2C)
bus wires and the 9V power supply.
Soon after I started working on this project I realized that the sonar sensor is not an option. The reason is
simple - all commerical cord untangler I could find only have 4 wires. These untanglers are used to
connect a phone handset with the phone itself, and thus need only 2 wires for the loudspeaker and 2 for
the mic. I could not find any manufacturer producing 6 wire untanglers (Maybe LEGO will make one some
day?). The untangler I did find was this:
This untangler fits perfectly into the base of the old Technic turntable (Peeron #2856), and can be easily
secured in place with thin 1×4 lego plates.
What of the sensor? well, I found out that mindsensors.com Sharp IR sensor does NOT require pins 1
and 2 to function, so this sensor can be incorporated into a radar-like sensor. But before I could build the
radar itself I needed to make some soldering. First, I used a Dremel to expose the contacts on the
untangler:
Then I cut one of my Lego wires, and an old phone cord and did some soldering. Make sure you put all
heat shrinks on before you solder! The resulting units look like this: (click to enlarge)
It required some practice till all wires were soldered correctly, but at the end it worked. Mounting this into
the turntable, I soon discovered that rotating it became more difficult (probably since the untangler is not
concentric), which required a very stable construction - connecting the turntable to the platform with
studless connectors, mounting gear very tightly and having the NXT motor connected directly to the
turntable base. After all this was done (summerizing many hours of failures in two sentences…) the radar
was ready!
Next post - programming using LabView…
Add starLikeShareShare with noteEmailAdd tags
May 12, 2007 2:15 PM
IBM PC PS/2 Keyboard Interface for NXT
by guy
Popout
Michael Gasperi did it again! Another cool hardware mod - an interface between the PS/2 keyboard and
NXT. See the details and video on this page. Also there‘s a discussion post on our forums here.
Add starLikeShareShare with noteEmailAdd tags
May 12, 2007 7:14 AM
NXT Radar - Part I
by guy
Here‘s my latest project - a true NXT radar. The Sharp IR Distance sensor from mindsensors.com is
mounted on a turntable on top of a mobile platform. The unique feature of this robot is that the sensor can
be rotated infinitely, without tangling the cables, using a modified handset untangler.
A discussion topic is here. More details will appear soon…
Add starLikeShareShare with noteEmailAdd tags
May 11, 2007 8:45 AM
Mindsensors.com Port Expander
by guy
Here‘s an image of the prototype port expander of mindsensors.com. As you can see, it will allow
connecting 3 digital sensors to one port. I‘m not sure, but it probably can connect multiple expanders to
connect even more sensors. I‘ll post more details on availability and use when I get them.
Add starLikeShareShare with noteEmailAdd tags
May 11, 2007 4:45 AM
20 Days to Challenge Deadline!
by guy
Only 20 days left till our NXTasy.org 2nd challenge is over! We already have a few contributions, both in
NXT-G and other programming languages. Still, I would be happy to see many more people trying to
complete the challenge, so we feel it‘s worth continuing this ―tradition‖.
I remind everyone of the rules, and the prizes sponsored by mindsensors.com:
1st prize in each category - $60 credit towards purchase at mindsensors.com
2nd prize in each category - $35 credit towards purchase at mindsensors.com
Add starLikeShareShare with noteEmailAdd tags
May 11, 2007 1:45 AM
Camera for NXT from mindsensors.com
by guy
Mindsensors is coming out with a camera for the NXT. The camera will be able to track up to 8 objects.
The beta trial is scheduled to begin on 1st June, and the plan is to make it generally available by end of
July.
More details and video is here http://www.mindsensors.com/index.php?module=pagemaster&PAGE_user_op=view_page&PAGE_id=54
Add starLikeShareShare with noteEmailAdd tags
May 10, 2007 8:18 AM
NXT Plotter
by guy
Völker Nils from Germany has made this impressive NXT plotter. Nice images and video on his site. The
programming was done in nxc, and is described in detail here. Take a look at the way he made a
homebrew long gear rack using modelling clay!
Add starLikeShareShare with noteEmailAdd tags
May 10, 2007 2:18 AM
News of the Month!
by guy
For those who are not very familiar with the nitty-gritty of the NXT digital I2C bus, I wish to highlight the
significance of the ‗Homebrew NXT port expander‘ published on NXTasy.
As many have experienced the major limitation in the NXT is the number of sensor and motor ports. The
only solution so far was using another NXT, communicating with Bluetooth with the first NXT (or RCX
communicating with other means, like published a while ago). HiTechnic has been developing an active
sensor multiplexer for some time (a picture of the prototype is here). This multiplexer will allow connecting
4 sensors – either passive (e.g. touch sensor), active (e.g. light sensor) or digital (e.g. sonar), to a single
NXT port.
The solution presented by xw25adc is different – his port expander connects in series just the four ‗digital‘
wires from the 6-wire NXT port – the +4.3V, the ground and the two digital I2C wires. Well, I‘m getting too
technical… Let‘s stop that.
So what this so innovative about xw25adc work? To connect more then one digital sensor to a one port
(i.e. a common ‗I2C bus‘) you must have the sensor recognize that other sensors are connected. Why?
Because the total of all sensors‘ pull-up resistors must equal 82kOhm. If you naively connect two digital
sensors, the pull-up resistance equals to two 82kOhm resistors in parallel which gives
82kOhm/2=41kOhm and the sensors will not function.
Anyone who read mindsensors.com manuals might notice a feature called ADPA: Supports Auto
Detecting Parallel Architecture (ADPA) for sensors. This means that ACCL-Nx can coexist with LEGO or
third party digital sensor on the same NXT port. This enables user to employ several sensors on the
same port without the need of external sensor multiplexer, reducing the overall size.‖ This feature is just
what one need to solve the previous problem – activating the ADPA on mindsensors.com sensors (it is
shipped turned off) make them sense and recognize if more sensors are wired to the same port, and
change the pull-up resistance to compensate this. xw25adc MUST have activated the ADPA feature, and
used the compass sensor ―advanced‖ I2C commands to change his ‗address‘ from the default value 2 to
4. As far as I know, this is the first demonstration of this feature in action. Now some may ask - Wow! Can
I do it too? Well, I can tell you that mindsensors.com have a prototype of a similar port expander in hand.
In a few days I will post an image of this prototype when it reaches me. I‘m currently working on a simple
PC/Mac application that will ‗manage‘ sensors – change ADPA on and off, change address etc. If I get
some help from Lego/NI this application might even incorporate into the ‗Tools‘ menu in NXT-G (no
promises…).
One final technical detail – what differs between HiTechnic sensor multiplexer and mindsensors.com
multiplexer? The former also allow connection of passive and active sensors, while the later supports only
digital sensors (actually, only digital sensors which do not require 9V supply). This requires active
components to regulate which sensor‘s analog readout is transfer to the NXT at any moment. For these
reasons, the HiTechnic multiplexer is expected to be more expansive (and it require 9V supply) then the
passive mindsensors.com ‗I2C expander‘.
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
May 9, 2007 1:17 PM
(Another) Balancing NXT robot
by guy
Our forums reader RegwayFB16 , a electrical engineering student from the University in Kassel in
Germany,posted on this self-balancing robot. The cool thing about this one is that it is programmed in
NXT-G ! The video can be seen here, and the program can be downloaded here.
Very nice RegwayFB16!
Add starLikeShareShare with noteEmailAdd tags
May 8, 2007 4:42 PM
NXT explorer
by guy
Here‘s a VERY nice looking ‗explorer‘ NXT by forums reader PTP. This explorer uses 3 multiplexed
touchsensors, the ultrasound sensor, a color sensor, and a compass sensor. The driving base is extremly
compact using two motors for navigation and the remaining motor port is used to drive two alternating
LEDs. More images and discussion in this post.
Add starLikeShareShare with noteEmailAdd tags
May 8, 2007 8:42 AM
Homebrew NXT port expander
by guy
I received an email from xw25adc, the maker of this nice port expander (so, finally I know how
made these I2C Read/WriteNXT-G blocks !). Here‘s his description:
In this video you see a NXT brick connected to 4 sensors, one mindstorm.com compass sensor at
address 4, one Acceleration Sensor at address 2 and two home brew 8574 input / output sensors at
address 40 (on left one) and 46 (to the right). These 8574s are 8 bit input / output integrated circuit chips
with a I2C interface. In this project the compass sensor is controlling a arrow at the top of the NXT
display, the Acceleration Sensor is controlling a pointing finger at the right of the NXT display and the
program is causing four lights connected to the 8574 chip on the right to blink in sequence. The program
reads the touch sensors connect to the 8574 on the left and turn on a programmed light when one of the
touch sensors is pressed.
Add starLikeShareShare with noteEmailAdd tags
May 7, 2007 3:39 PM
NXT Software version 1.1 announced!
by guy
From LEGO official website:
The LEGO® MINDSTORMS® NXT Software version 1.1 to be released in August 2007.
The team behind the LEGO MINDSTORMS NXT is happy to announce that from August 2007 the LEGO
MINDSTORMS NXT Software version 1.1 will be available for all users in five languages (English,
German, French, Dutch and Japanese). Among its new features this version includes full support for
Windows Vista (32-bit and 64-bit) and the new Intel-based Macintosh systems.
In addition, the new NXT Software offers improved performance and speed, especially for large program
development. New compression methods free up 30kb of useable memory on the NXT Intelligent Brick
and shrink most programs and sound files by 40%. The software programming module, called NXT-G,
features intelligent scroll + more than 100 other enhancements.
Availability to users:
The LEGO MINDSTORMS NXT software version 1.1 will be available in the LEGO MINDSTORMS NXT
#8527 robotics toolset from August 2007.
To support existing users of the LEGO MINDSTORMS NXT #8527, we offer a CD with the new NXT
Software version 1.1 for 19.99 USD, plus shipping. This offer will be available from our online shop,
Shop@Home.
Add starLikeShareShare with noteEmailAdd tags
May 7, 2007 9:39 AM
pbLua beta 7 now available
by guy
Ralph Hempel released a new beta version of pbLua. You can download it via pbLua website:
http://www.hempeldesigngroup.com/lego/pbLua/
What‘s new in this version? It‘s got some significant new features including:
1. The ability to turn the NXT off by pressing the orange button for at least three seconds
2. A startup screen that lets you select a Bluetooth device as the console. This will finally free you from
the tether of the USB cord!
3. The RS485 high speed port now also supports standard baud rates from 1200 to 921600. This must be
carefully used so that you don‘t flood the 128 byte RX and TX buffers at lower baud rates
[via Lugnet]
Add starLikeShareShare with noteEmailAdd tags
May 7, 2007 5:39 AM
NXT Lego Plane
by guy
Here‘s a cool project published by our forums reader andy. It‘s a plane made from Lego, with over 1
meter wing span. Check this post for details.
Nice work andy!
Add starLikeShareShare with noteEmailAdd tags
May 3, 2007 1:29 AM
Guide robot for visually impaired individuals
by guy
Our forums reader Randy describes in our forums this robot, made as a design project in his school. It
uses 3Devantech SRF02 ultrasonic sensors to detect obstacles, and controlled by a Wiimote remote.
When it detects an obstacle it provides a vibrational feedback to the user on the Wiimote. Read
more here.
Nice work Randy!
Add starLikeShareShare with noteEmailAdd tags
May 2, 2007 2:29 PM
Power NXT-G Block
by guy
Michael Gasperi made this NXT-G block which calculates X to the power Y.
Add starLikeShareShare with noteEmailAdd tags
May 2, 2007 4:29 AM
Microsoft Robotics Studio 1.5 (CTP May 2007)
by guy
A new (Community Technical Preview) version of Microsoft Robotics Studio was released from microsoft.
A short description from the website:
―The Microsoft® Robotics Studio is a Windows-based environment for academic, hobbyist and
commercial developers to easily create robotics applications across a wide variety of hardware. This
installation package installs the Microsoft Robotics Studio along with samples and tutorials.‖
You can download it here.
Add starLikeShareShare with noteEmailAdd tags
May 1, 2007 1:43 PM
Power outlet NXT mod
by guy
Our forums reader PTP posted on this NXT mod, allowing connecting camera or other devices directly
from the batteries power.
Nice job!
Add starLikeShareShare with noteEmailAdd tags
Apr 29, 2007 8:41 AM
Building models using Google SketchUp
by guy
Payton White has made available a collection of 75 NXT and technic pieces modeled in Google
SketchUp. Here‘s an email from Payton:
―I have modeled up 75+ detailed Technic and Mindstorms NXT parts in Google‘s SketchUp and made
them all available on Google‘s 3D Warehouse:
http://sketchup.google.com/3dwarehouse/cldetails?mid=26d528c1c35774f056ed665b21152bcd
I believe vetting builds in a tool like SketchUp is quite valuable for the seasoned builder [while at the
same time I don‘t dispute the value of sitting down with the real parts and snapping things together]. I‘ve
taken special care to make the parts appropriate for quick snapping and prototyping with the built-in
SketchUp functionality. For my money, it‘s a much better fit for Lego assembly than LDraw, etc.
Here‘s the blurb I‘ve posted for the collection of parts:
Over 75 parts in part groups including Technic pieces and Mindstorms NXT components. Everything is
modeled to 1:1 scale within roughly 0.5mm tolerance with respect to the real parts. Snapping helper
points are modeled with very high precision. Here are some tips to make using these models easier:
1) Set Window -> Model Info -> Units -> Enable Length Snapping to
4mm.
2) There are two detail layers for many models. Use ―HiFi‖ for the
most detailed versions and ―LoFi‖ for better interactive use while
modeling.
3) There is a ―Helpers‖ layer that includes line segments that
exactly model where connectors and axles fit with beams and
bushings, etc. Turn on this layer and x-ray mode for precise
―snapping‖ of parts.
Many thanks Payton! Now I need to learn what Google SketchUp is all about…
Add starLikeShareShare with noteEmailAdd tags
Apr 29, 2007 4:41 AM
Perfect Pitch: Accurately Recognizing Tones
by sivan
This home-made device allows the NXT to accurately recognize tones, as well as to produce a fairly
strong tone at a particular frequency. Click on the image for details.
Add starLikeShareShare with noteEmailAdd tags
Apr 28, 2007 3:41 PM
Challenge No. 2 - IMPORTANT UPDATES
by guy
I‘ve made a dedicated page for the official challenge rules here. Everything new in these rules was
already mentioned in the forum topic dedicated to this challenge.
The challenge is sponsored by mindsensors.com. Prizes are detailed in the same page.
Deadline is postponed to June 1st 2007. For those who already submitted - you can post better results if
you like ‘till that time.
Add starLikeShareShare with noteEmailAdd tags
Apr 27, 2007 6:33 PM
Cybermaster Touch Sensor Multiplexing on the NXT
by dave
If you are have a set of Cybermaster Touch Sensors hanging around, you can multiplex them for use on
the NXT. For those that are unaware of these sensors, they are the trans-green (clear) touch sensors that
come with the Cybermaster kit and look similar to the standard MINDSTORMS RIS ones, but with one
significant difference - each of them have an inline resistor so that when the circut is closed, each passes
through current with a different resistance.
More details: http://www.plastibots.com/misc/touchmultiplexer.asp
Add starLikeShareShare with noteEmailAdd tags
Apr 26, 2007 3:11 PM
Sample programs for NXT-G blocks
by guy
In effort to make third-party or community developed NXT-G blocks more accessible, I‘ve asked the
contributers of all blocks in NXTasy repository (see http://nxtasy.org/repository/nxt-g-blocks/ for the
complete table of blocks) to submit block images and sample programs in picture (.PNG) format and
actual codes (.RBT). So far, only Steve Hassenplug has kindly provided this information for his blocks the Simple Array, Bit Logic, Display Number, Display Time and Line Following. Look at his sample codes
to see how to use the block in your own programs, and decide if you want to import the block.
Thanks Steve! Now I have to keep nag this Guy Ziv…
Add starLikeShareShare with noteEmailAdd tags
Apr 26, 2007 2:11 PM
Atan2 NXT-G Block
by guy
While atan returns the angle from the normal arctan function. With atan2 you enter the (x,y) coordinates
of your vector and you receive the phase from [-180°,180°]. So, you also have the correct quadrant.
Add starLikeShareShare with noteEmailAdd tags
Apr 26, 2007 11:11 AM
Qwerk controller
by guy
No, this is NOT an NXT, but I was so amazed by the specificiations of this 350 USD controller that I had
to publish this… The new Qwerk controller by Charmlabs comes with:
· 200 MHz ARM9 RISC processor with MMU and hardware floating point unit
· 32 Mbytes SDRAM, 8 Mbytes flash memory
· 4 closed-loop 2.0 Amp motor controllers (supports quadrature encoder and back-EMF ―sensorless‖
position feedback as well as current sensing)
· 16 RC-servo controllers
· 16 programmable digital I/Os
· 8 12-bit analog inputs
· 2 RS-232 ports
· I2C ports
· 2 USB 2.0 host ports for connecting standard USB PC peripherals
· 10/100BT Ethernet port
· Built-in audio amplifier with MP3, PCM and WAV audio support
· 4 Amp switching power supply, 90% efficient, 7 to 30 Volt input range
· Rugged aluminum enclosure
· 5.1‖ x 5.8‖ x 1.3‖, 12.8 ounces
Don‘t miss the ―TeRK recipies‖ from CMU, building a mobile robot with webcam or a robotic flower using
Qwerk controller.
Add starLikeShareShare with noteEmailAdd tags
Apr 26, 2007 9:11 AM
NxtShot - lego canon controlled by Mindsensors remote
by guy
NxtShot is a lego Nxt Model cannon that fires lego tubes and is controlled by a Wii-like remote made
using a Mindsensors Compass and Acceleration sensor. The NxtShot mimics the tilting and turning of the
remote. The NxtShot finds its limits using a light sensor.
Watch the movie on YouTube!
Add starLikeShareShare with noteEmailAdd tags
Apr 25, 2007 3:11 PM
Deriving Power from the NXT on Motor Port A
by dave
Philo never ceases to amaze me… This time he has done it again…
NXTasy forums:
Quoted from Philo‘s post on
‖This special cable allows you to power external devices such as a a motor multiplexer or a wireless
camera from your NXT. No need for external bulky battery box! (if your current consumption is low
enough, 800mA max). Though plugged into NXT port A, it lets you use the NXT motor connected there
almost normally.‖
More information: http://philohome.com/nxtpwr/pwr.htm
Add starLikeShareShare with noteEmailAdd tags
Apr 24, 2007 5:02 PM
RobotC code for HiTechnic Accelerometer
by guy
Dick Swan published on the forums a working RobotC code for the HiTechnic accelerometer sensor. It
can be found in this post.
Thanks Dick!
Add starLikeShareShare with noteEmailAdd tags
Apr 21, 2007 7:52 AM
Remarkable books
by claude
I would like to attract your attention to these two brand-new Mindstorms books that I consider as the
MUST for any NXT user who wants to become a real specialist.
First there is Mike Gasperi, Philippe Hurbain and Isabelle Hurbain‘s ―Extreme NXT‖ book (Apress) that I
had the chance to see during the development, being its technical reviewer and foreword writer. This
outstanding book takes your NXT to the next level. It shows you how to think outside the box. With more
than twenty-five exciting electronics projects that range from a simple light switch to a cool magic wand
writing words in thin air. The projects are explained with easy step-by-step instructions, and whether you
are a novice or an expert you will be able to successfully construct them.
The second book is Brian Bagnall‘s ‖Maximum LEGO NXT‖ (Variant Press). This excellent book invites
you to build amazing robots and go beyond the basic LEGO programming tools with leJOS NXJ, the open
source Java virtual machine. You will realize and program an exciting collection of projects: a chess
playing robot, an exoskeleton for your hand, a Mars rover, a robotic arm controlled through the Internet, a
3D object scanner, and many more – all using only NXT kit parts.
Add starLikeShareShare with noteEmailAdd tags
Apr 19, 2007 3:33 PM
Bluetooth NXT remote for Pocket PC
by guy
Anders Søborg published this Bluetooth NXT remote for pocket PC.
Get it here.
Add starLikeShareShare with noteEmailAdd tags
Apr 17, 2007 4:30 PM
nxtlibc 0.1 - NXT BT library in C for linux
by guy
Here‘s another developing NXT bluetooth implementation written in C and aimed at linux/unix systems.
The homepage for the project is: http://www.quietearth.us/nxtlibc.htm which includes links for
downloading the source and the api documentation.
Add starLikeShareShare with noteEmailAdd tags
Apr 17, 2007 8:30 AM
NXTiiMote - BT Remote Control w/ Acceleration Sensor
by guy
Philo‘s NXTiiMote is a remote control device based on a MindSensors acceleration sensor. You may
control a vehicle through Bluetooth by tilting the remote, forward/backward and left/right. Additionally, a
wheel and push button can control supplementary actions.
Images and build instructions are here.
Add starLikeShareShare with noteEmailAdd tags
Apr 15, 2007 3:30 PM
RCX to NXT Communication Adapter NXT-G block
by guy
Mindstroms released this block to control the RCX to NXT communication adapter (NRLink-Nx). NRLinkNx is a device designed to establish NXT-RCX data link. You can use this on your NXT robot to
command and collect data from satellite RCX robot or RCX controlled part of robot.
This device now also communicates with LEGO trains!
Add starLikeShareShare with noteEmailAdd tags
Apr 15, 2007 2:30 PM
Chr() NXT-G block
by guy
Converts a numerical number (0 or 32-126) into a character.
Add starLikeShareShare with noteEmailAdd tags
Apr 15, 2007 2:30 PM
PCF8574 Kit NXT-G block
by guy
Mindsensors.com released this NXT-G block to communicate with the PCF8574-Nx solder-it-yourself
prototyping sensor. This IC gives 8 digital inputs/outputs.
Add starLikeShareShare with noteEmailAdd tags
Apr 15, 2007 2:30 PM
Sharp IR sensor NXT-G block
by guy
Mindsensors.com released this block for use with the Sharp IR sensors series. The control panel allows
setting the sensor type (nicely affecting the compare slider to give the right range for that device) and the
I2C address.
Another block (DIST-Update) on the same download page allows calibration of the DIST-Nx EEPROM
parameters.
Add starLikeShareShare with noteEmailAdd tags
Apr 15, 2007 9:30 AM
NXT UNV Rover added
by dave
Months ago, I got my hands on a bunch of those new Technic tread links. I figured, what better thing to do
than to build a big robot that uses them! So, I decided to tackle re-creating this:
and created this:
using a whole lot of NXT parts and 2 NXT bricks for Bluetooth remote control communications. UNV is a
remote controlled NXT robot that uses the variable angle front drive tracks to overcome obstacles that
would otherwise limit its ability. Details and video at: www.plastibots.com
Add starLikeShareShare with noteEmailAdd tags
Apr 14, 2007 3:39 PM
List of NXT-G blocks
by guy
I‘ve created a dedicated page in NXTasy.org for a table of all available NXT-G blocks. The page can be
accessed directly here or via a link in the Programming/NXT-G category description.
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
Apr 14, 2007 2:39 PM
Seed Random Generator NXT-G Block
by guy
Michael Gasperi created this NXT-G block, which creates random numbers using a defined ‘seed‘ (thus, if
you use the same seed again you‘ll get an identical series of numbers).
Add starLikeShareShare with noteEmailAdd tags
Apr 13, 2007 3:57 PM
Digital I/O on Input Port - part I
by guy
Perhaps the least documented or used feature of the NXT is the possibility of direct digital input/output
using pins 5 and 6 of the input ports. When working in ―Custom‖ sensor type, these two bits can be
manipulated directly using IOMapRead and IOMapWrite ‗invoke‘ commands in NXTToolkit, which in
principle means a NXT-G block can also control these pins. At startup these pins are set as digital input.
In the image above you can see a nice application - using a input port to get rotation readout from the
built-in tachometer encoders of the NXT motor. These encoders are usually connected to pins 5 and 6 of
the output ports, and they change from 0 to 1 with a small phase difference in a 2 degrees cycle. Below is
a simple (and not perfect!) LabView code which monitors the encoders (assumed connected to port 1)
and counts up/down showing the rotation count on screen (click to enlarge):
To use other ports, one need to specify the currect IOMap position - offset 12 for port 1, 32 for port 2, 52
for port 3 and 72 for port 4.
In the next posts I will detail more on the hardware internals involved and digital output from the input
port, as well as how to do the same tricks with RobotC (whose next planned release is supposed to
support input from these two bits very easily).
Add starLikeShareShare with noteEmailAdd tags
Apr 12, 2007 3:55 PM
nxtlib - NXT client library in Java
by guy
Our forums reader David Kavanagh posted here on his new project ‗nxtlib‘. From the project web page:
This client library will support both bluetooth and USB connections. It will provide access to all of the
documented commands supported by the NXT communications protocol. Another goal for this project is
to keep the library compatible with CLDC 1.1 (for mobile phone support).
Add starLikeShareShare with noteEmailAdd tags
Apr 12, 2007 3:55 PM
Advanced NXT-G Block Techniques – Part IV
by guy
Motivated by a recent post in our forum regarding data logging, I started writing a series of posts on data
logging options for the NXT. I also began working on a Datalog NXT-G Block dedicated to this purpose.
During the block development, however, I encountered some serious performance issues regarding Array
usage in the LabView NXTToolkit compiler (and hence in NXT-G) which I‘ll describe in this post. Future
posts will describe existing and new solutions for data logging.
Contrary to Brian Davis datalog program (found in NXTLOG), I wrote my block to use a RAM array
storage, writing it to Flash at the end of the execution. This approach is successfully implemented infirmware for RobotC. When I ran my dedicated ‗Datalog Block‘ I found it stores a record much slower then
Brian Davis‘s code (but without the occasional long delay ~70 millisecond intervals in Brian‘s code when
the Flash buffers are emptied). This made me really worried – RAM access should have been MUCH
faster. I therefore wrote a simple test program in LabView shown below (click for full image):
For those unfamiliar with LabView, it is similar to Robolab/NXT-G in spirit but differs in icons… I initialize
an empty array (knowing that dynamic allocation inside the loop, which is what happens when you
concatenate arrays, is very memory ineffective), record the milliseconds timer, loop over the array
replacing each element with the numerical index, and record the time at the end. The last few VIs (i.e.
‗blocks‘) convert the time difference to a string, displays it and wait for a button press. For a 750 elements
array the display showed that 780 milliseconds have passed. However, this actually took about 25
seconds on my watch!
I‘ve asked the guys over in National Instruments (the developers of the firmware/LV compiler) and got an
answer that there are indeed ‗serious performance issues‘ with array opcodes (operations) in the
released firmware. Namely, the firmware uses a complicated (polymorphic) method to write to memory
even for simple numerical array data types. Furthermore, they admit that there is a bug in the timer, which
cause it to ‗loss‘ milliseconds when a single opcode takes more then 1 millisecond to be executes.
Here I got some help from Dick Swan (thanks!), who tested a similar code in NXC:
#include “NXCDefs.h”
long data[];
long idx;
long startTime;
long endTime;task main()
{
ArrayInit(data, 0, 750);
startTime = CurrentTick();
for (idx 0; idx < 750; ++idx)
{
data[idx] = idx;
}
endTime = CurrentTick();
NumOut(0, 8, endTime - startTime);
Wait(5000);
}
Now this code both displayed and (apparently) ran in 279 milliseconds. A similar RobotC code took 12
milliseconds only. Since the NXC code compiles via NBC into a code executed by the same official LEGO
firmware my code used, I was again puzzled at my slow program result.
Another email from NI solved the mystery – apparently the (version 1.0) compiler we have today is not
very efficient in dataspace usage. In particular, most wire creates an extra copy of their input (except
those that run through loop/case/sequence tunnels). In particular the shift register (the little up and down
arrows in the figure above) which passes the array from one iteration to the other duplicate the array at
each loop iteration. This is very counter intuitive, especially to embedded LabView programmers (NI
recommends using shift registers for saving memory in embedded LV applications, see
e.g. ftp://ftp.ni.com/pub/devzone/pdf/tut_3747.pdf).
Fortunately, the puzzle solution also gave me a hint for a solution. Instead of using shift register (i.e. the
usual way in LV) I‘ll use an array variable, read it at the beginning of the loop iteration, replace and
element and then write it back. Here‘s the modified code:
This code both measured and (apparently) executed in 167 milliseconds !
So – what is the ―take home message‖? When using arrays in LV/NXT-G block code DO NOT pass it in
shift registers, but rather use variable read/write ‗local variable‘ VIs to manipulate it within loops etc.
Guy Ziv
NXTasy.org
Add starLikeShareShare with noteEmailAdd tags
Apr 11, 2007 7:23 AM
NeXTScreen: NXT display utility
by guy
John Hansen published this nice utility which allows monitoring the NXT display on the PC via USB (fast
refresh) or bluetooth (slow refresh). You can configure the refresh rate and enable or disable polling. You
can also set the scale from 1x to 4x. This is a standalone version of the NXT Screen tool built into
BricxCC. You can download this utility here.
A second program (nextscreen2.exe) in the same archive displays the NXT screen on top of an image of
the whole NXT, very useful for classroom presentations. The above image is part of the screen. Another
cool feature is that pressing the NXT buttons on the PC (with the mouse) perform the same operation on
the NXT itself, so you can easily show how to operate the NXT menus etc. in classroom.
Update: Both versions now support saving .jpg and .png screenshots to your PC.
Add starLikeShareShare with noteEmailAdd tags
Apr 10, 2007 8:24 AM
David Schilling‘s EggArt
by guy
David built this 4-colour NXT Easter egg painting robot.
To use it, you open the egg-holder up, insert your blank (hard boiled) egg, make sure that it‘s reasonably
centered, and then fold it up to the pen unit and lock it in place. Select your program, and run it. Two
motors control the egg position, one for rotating it about its long axis, the other for spinning the egg on its
side. The 4 pens are held in a rotating cartridge. The third NXT motor controls moving the pens back and
forth, as well as changing them. This is accomplished by pushing an axle with worm-gears on it (that only
act as a rack here) back and forth with the motor. When the axle is all the way to the rear, it engages
another wormgear, which then causes the axle to spin. This spin is
transfered to the pen-cartridge. A touch sensor can tell when the pen is getting close to being in place.
Just as it releases, the pen is in position. A couple of rubber bands put light force on some beams which
lock the pen into position. Of course you can only rotate through the colours in one order. Turning the
motor the other way will push the currently selected pen forward again.
Pictures, once moderated, can be found here:
http://www.brickshelf.com/cgi-bin/gallery.cgi?f=246207
Here‘s direct links to a couple:
http://www.brickshelf.com/gallery/David/Robots/EggArt/cimg7266.jpg
http://www.brickshelf.com/gallery/David/Robots/EggArt/cimg7356.jpg
http://www.brickshelf.com/gallery/David/Robots/EggArt/cimg7357.jpg
http://www.brickshelf.com/gallery/David/Robots/EggArt/cimg7361.jpg
http://www.brickshelf.com/gallery/David/Robots/EggArt/cimg7332.jpg
Videos:
http://zx81.isl.uiuc.edu/lego/EggArt/ChangePen1.avi
http://zx81.isl.uiuc.edu/lego/EggArt/PenColourChangeGearCloseup.avi
http://zx81.isl.uiuc.edu/lego/EggArt/PenColourChangeOverhead.avi
http://zx81.isl.uiuc.edu/lego/EggArt/PenMovementOverhead.avi
http://zx81.isl.uiuc.edu/lego/EggArt/PenMovementGearCloseup.avi
http://zx81.isl.uiuc.edu/lego/EggArt/PenMovementOverheadPan.avi
http://zx81.isl.uiuc.edu/lego/EggArt/ResultingEgg1.avi
http://zx81.isl.uiuc.edu/lego/EggArt/ResultingEgg2.avi
and at 11Mb:
http://zx81.isl.uiuc.edu/lego/EggArt/TripleSpeed.avi
[via Lugnet]
Add starLikeShareShare with noteEmailAdd tags
Apr 10, 2007 7:24 AM
NXT Train
by guy
Sivan has posted another of his creative projects - controlling the new Lego remote-controlled (RC)
trains with mindstorms NXT motors. Read all about it here, including full building instructions !
Add starLikeShareShare with noteEmailAdd tags
Apr 9, 2007 2:39 PM
RoboArm combines RCX and NXT
by guy
Among other cool projects by our forum reader Laurens I found the above RoboArm espacially
interesting, as it combines an RCX and an NXT. A Sony PSP sends messages to the pre-programmed
RCX which sends signals to the NXT through a light sensor by switching the led light on and off. More
pictures of this, and other creations by Laurens in his site.
Add starLikeShareShare with noteEmailAdd tags
Apr 8, 2007 6:39 PM
Using Visual Basic to control NXT
by guy
Michael Gasperi has a good step-by-step tutorial on controling the NXT from Visual Basic here.
Add starLikeShareShare with noteEmailAdd tags
Apr 8, 2007 6:39 PM
Shooting panoramas with NXT
by guy
Our forum reader Ian Wood, a photographer specialising in high resolution panoramas, pointed us to his
sitewhere he explains how he plans to use NXT frame to operate and remote control a panorama
shooting NXT with his dSLR. There‘s a movie too!
Add starLikeShareShare with noteEmailAdd tags
Apr 7, 2007 1:06 PM
NXTRC (NXT Remote Command) for Linux
by guy
Gian Piero Puccioni put online a software that allows to communicate with a NXT brick under Linux using
a Bluetooth link. With this program you can upload and download programs run them and other stuff. You
can find more info and get the source at http://www.fi.isc.cnr.it/lego/NXTRC.php
Add starLikeShareShare with noteEmailAdd tags
Apr 6, 2007 10:06 PM
BrickSorter - Sorting bricks with a HiTechnic Colour Sensor
by dave
What better idea to come up with to test the HiTechnic colour sensor then to build a LEGO brick sorter.
So, that‘s what I did. After quickly learning that the sensor does not read colour from a distance (in my
excitement I forgot to read the documentation), and creating a room navigating robot (see CT1 on my
site), I decided to test its brick sorting abilities… Ok, the sensor only has to tell the NXT what colour it
sees, the robot has to do the rest. Anyway, for details a video and more pictures, have a look at my site
at: www.plastibots.com
Add starLikeShareShare with noteEmailAdd tags
Apr 6, 2007 2:06 PM
LocoArm: Robot Locomotion on Rails
by sivan
A robot that moves on rails can traverse large distances quickly and still reach its destination accurately,
because it only needs to navigate a one-dimensional world. In this robot I used Lego train tracks from the
RC Trains line, along with a train motor from the same line. The motor is a 9V motor that can be
controlled by the NXT using a converter cable. The robot detects stations that have stands for a ball using
the light sensor, but it was challenging to stop the robot precisely at the station.
Read all about it and watch a video!
Add starLikeShareShare with noteEmailAdd tags
Mar 30, 2007 4:52 PM
Fixed-Point NXT-G Block
by guy
Here‘s my FP block for NXT-G. Use once to convert from ―Numeric‖ values into Fixed-Point variables, use
as many math operations you need (only with this block, do not mix regular math blocks!), then convert
back to get the rounded result.
download block here.
Add starLikeShareShare with noteEmailAdd tags
Mar 29, 2007 4:52 PM
NXT Warehouse
by guy
Here‘s some awesome NXT warehouse made by guys in Cubido Gmbh. These guys used
microsoft BizTalk Server to manage SMS messages to the ―warehouse‖, SQL Server 2005 for data
storage and web services.Microsoft Workflow Foundation to create the processes controlling the
warehouse robot. and Microsoft .NET (C# and C++) to program the whole stuff. They also made their own
2
electromagnet controlled via I C bus.
Their webpages (mostly German) are linked here. A great trailer video (with Lego people animation..) for
BigDays 2007 is here. Great work!
Add starLikeShareShare with noteEmailAdd tags
Mar 22, 2007 7:21 PM
Memory Level Block
by guy
Here‘s a NXT-G sensor block that returns available Flash memory
(in bytes).
Download block here.
Guy Ziv
Add starLikeShareShare with noteEmailAdd tags
Mar 21, 2007 3:17 AM
NXT MazeRunner
by guy
Motivated by Mario Ferrari‘s MazeRunner, I‘ve built an NXT version of MazeRunner.
Enjoy the movie! (13Mb)
Guy Ziv
NXTasy.org
Original video source (NXTMazeRunner.avi)
Add starLikeShareShare with noteEmailAdd tags
Mar 19, 2007 5:04 PM
Battery Level NXT-G Block ver. 1.1
by guy
This block reads the battery level (in miliVolt) from the UI module IOMAP. It can also be used as a sensor
block (for example, placed as a Wait block on a parallel sequence wire followed by commands to go back
to docking station for recharging batteries… Anyone cares to implement this?).
UPDATE (April 19 2007) - version 1.1 now has a ‗Rechargeable?‘ YES/NO output which tells if NXT uses
the NXT Rechargeable Battery (#9798)
Download the block here.
Add starLikeShareShare with noteEmailAdd tags
Mar 18, 2007 9:32 AM
Motor Power Meter NXT-G Block
by guy
This block is a ―sensor‖ which allows you to monitor the actual power sent to the NXT servo motor. In a
single motor mode (Motor block) with ―Motor Power‖ enabled the firmware automatically increases the
power to keep constant speed. Monitoring the ‖Actual Power‖ allows detecting stall conditions as well as
slip conditions (e.g. when your robot hits the wall, its motors might still be able to slip in place but the
robot does not move). The former condition can be detected using encoders (as previously shown by
Brian Davis and Dick Swan), but slipping can‘t. Nevertheless, the actual power during slipping will be
larger then the set power. The same goes for 2 motor ―Move‖ command.
Usage: look for the typical min/max value of Actual Power during regular operation. Use the previously
published MinMax Block to do this. Then set the threshold to a value larger then the maximal value
rechieved during operation (I found 10-15% extra power is sufficiently discriminating and gives little false
positive readouts). You can also monitor the difference (i.e. Actual Power - Set Power). Complete stall
conditions for a single motor (with Motor block) are detected as ―Actual Power‖ > 99.
NOTE: The NXT internal Power values are signed, where the sign defines the direction of motion. This
block ignores the sign and allways returns positive values.
Download the block here.
Add starLikeShareShare with noteEmailAdd tags
Mar 18, 2007 8:32 AM
MinMax NXT-G Block
by guy
This small NXT-G allows to get the maximal and minimal value of some varying input. This can be done
with NXT-G MyBlocks using variables, but then you can‘t easily place more then one such MyBlock in
your program (unless you duplicate the block, changing the variable names..). As seen in the above
sample code, the MinMax block usually should reside in a loop, and must be ―Reset‖ at the first loop
iteration (here I compare the counter to zero). Also, make sure that the input you put in is stable at the
first iterations. For example, for the US measurement above I have another Distance Sensor block before
the loop to ensure the sensor has enough time to produce meaningful output at the first iteration
(otherwise I got maximal distance of 100 inches regardless of what I tried to do to the US sensor…). The
block can be downloaded here.
Add starLikeShareShare with noteEmailAdd tags
Mar 17, 2007 1:32 PM
URBI for Mindstorms NXT
by guy
A new programming language for NXT was released - URBI. You can find the download, documentation
and toturials at http://www.gostai.com/lego.html.
Add starLikeShareShare with noteEmailAdd tags
Mar 17, 2007 12:32 PM
Keep the volume down, or this robot will turn off the TV
by sivan
2
This home-made i c-controlled infrared remote control can turn off the TV (or give it other commands, like
lowering the volume or change channels). It is used in this robot to turn the TV off if the sound is too loud.
The most interesting aspect of this project is the use of a microcontroller in the circuit. The microcontroller
2
listens to i c transmissions that the NXT sends via one of the sensor ports. The transmission from the
NXT contains the infrared command to send. Once such a transmission is received, the microcontroller
generates the appropriate infrared signal.
The full description of the project describes how to program a low-cost microcontroller ($20 will buy both
the microcontroller and the device to program it) and how to interface it to the NXT. The full description
also includes a short video showing the robot actually turning of a TV with this home-made remote.
Add starLikeShareShare with noteEmailAdd tags
Mar 14, 2007 4:15 PM
Official NXTasy Challenge No. 2
by guy
Well, most of you wanted another builiding contest in the poll I‘ve posted (those who bothered voting at
least..) so I‘ve changed the plans and we‘ll get going!
Challenge No. 2 - ―Move the Ball!‖
Preliminary instructions (more detailed rules will be posted soon):
1. Robot should be built from a SINGLE RETAIL NXT SET parts. If you‘re unsure what this means look
here:http://www.peeron.com/inv/sets/8527-1. You can, however, use the LEGO Lithium Ion battery to
power your robot.
2. A plastic ball (red or blue) should be placed on a mount (a starting point can be the mount in the TriBot
building instructions, but anything else is ok as long as its part are from the same NXT set as the robot
itself) and located ANYWHERE inside the oval circle of the NXT Test Pad. The position must NOT be
defined a priori to the program!
3. The robot should start anywhere OUTSIDE the oval circle (i.e. looking from the above no part of it
should be in or above the line). The starting position CAN be defined a priori if you like.
4. About 10 seconds after the user starts the program, the robot should initiate a timer and begin it‘s
mission. When the mission is complete it should beep and display the timer value on the screen. A picture
showing clearly this result should accompany the video record of the whole operation.
5. When the robot starts it should seek and find the ball, catch it (in whatever way you like!), move outside
of the oval circle, make two full turns around the oval following the black line (using line-following, not
dead-reckoning!), then put the ball back on it‘s mount and get out of the oval circle. Simple, isn‘t it?
6. Inside the oval you must not put or draw anything except for the ball and the mount. Furthermore, you
should not direct the robot to the ball in any way - it must find it by its own sensors. Outside the oval you
can put/built/draw anything you like, as long as it is not part of the robot. For these ―supporting‖ structures
you can use anything you like, including non-LEGO parts and active stuff (lamps, lasers or whatever your
wild imagination takes you!)
7. A video and a picture of the timer result should be emailed to guy@nxtasy.org as well as any
question/comment etc.
PRIZES will be announced in a later post
DEADLINE is May 1st 2007
A topic dedicated for discussion regarding this challenge is here.
Good Luck!
Add starLikeShareShare with noteEmailAdd tags
Mar 14, 2007 2:15 PM
Sensor Building Kit for NXT with PCF8574 IC
by guy
Here‘s a new product from mindsensors.com. This kit is an ideal platform for you to design and build your
own sensor. The kit comes with all the necessary parts to do Input/Outputs with NXT brick.
The kit contains:






PCB
PCF8574 IC
appropriate capacitors
appropriate resistors
NXT type socket
10 pin header
Note: requires soldering.
Add starLikeShareShare with noteEmailAdd tags
Mar 12, 2007 5:22 PM
atan2 function on NXT (version 1.1)
by claude
In many mobile robot applications you need the atan2-function that is applied to robot coordinates x and y
and that should return the correct angle in all 4 quadrants. This function has the same precision as the
previous atan. The result is expressed in a strange unit: deci-degrees (because of integer
variables)www.convict.lu/Jeunes/RoboticsIntro.htm
(bug fixed 13.03.07 -trouble with large ratios y/x; version 1.1)
Add starLikeShareShare with noteEmailAdd tags
Mar 11, 2007 2:17 PM
integer square-root and trig functions
by claude
You may download and try the integer square-root and trig function (sin,cos,atan) blocks
atwww.convict.lu/Jeunes/RoboticsIntro.htm
Add starLikeShareShare with noteEmailAdd tags
Mar 9, 2007 11:07 AM
HiTechnic Acceleration Sensor NXT-G Block
by guy
HiTechnic has released the NXT-G block for the Acceleration Sensor. Plugs are Port, X axis coordinate, Y
axis coordinate, Z axis coordinate, Yes/No logic value, Trigger Point, and Greater-than/Less-than.
Add starLikeShareShare with noteEmailAdd tags
Mar 8, 2007 3:12 AM
Building an I2C Acceleration Sensor
by sivan
Building a 3-axis acceleration sensor is just a bit harder than building other i2c sensors (because
accelerometers chips have smaller pins), but it is definitely possible. If you want to learn how to build one,
or even if you are just curious about how the commercial acceleration sensors work, you will find the web
page that describes a home-brewed acceleration sensor interesting.
2
The web page also shows how to connect I C chips that run on 3.3 Volts to the NXT. This technique may
2
be useful for a variety of I C projects.
Add starLikeShareShare with noteEmailAdd tags
Mar 3, 2007 3:14 PM
US Ping in RobotC
by guy
As I‘ve explained here, using US sensors in ping mode is quite easy using NXT-G. For users using
RobotC, the ideal solution would be a custom ―device driver‖ for this purpose. Until I (or anyone else..)
publish such a driver here is a temporary solution. The following code initializes two US sensors in ping
mode, and alternate their pings showing both measured distances on screen.
UPDATE: since WordPress somehow changes the code when you cut and paste it into RobotC (resulting
in errors), I‘ve put it online here.
Add starLikeShareShare with noteEmailAdd tags
Mar 1, 2007 5:40 PM
NXT Nominiated for International Design Award
by dave
The Lego Mindstorms NXT system has been nominated for an international design award… Link:
http://www.indexaward.dk/2007/default.asp?id=706&show=nomination&nominationid=170
Add starLikeShareShare with noteEmailAdd tags
Mar 1, 2007 2:02 PM
Bit Logic NXT-G Block
by guy
This block will do bitwise operations on numbers (And, Or, Xor, and Not)
Add starLikeShareShare with noteEmailAdd tags
Mar 1, 2007 1:02 PM
Display Time NXT-G Block
by guy
This block is a combination of many other things. It‘s a modified version of the display number block that
will display the value of a timer in minutes and seconds.
Add starLikeShareShare with noteEmailAdd tags
Feb 28, 2007 3:57 PM
Ultra Sound Sensor goes PING, PING…
by guy
One of simplest, yet quite cool, stuff you can do with the I2C Write block is work with your US sensors in
―ping‖ mode, i.e. measure distance by command instead of continous operation. Let‘s look at the
following sample NXT-G program (click to expand):
The first US Block initializes the US sensor (i.e. set‘s the sensor to LOWSPEED_9V and RAWMODE),
and performs a read call. Since this is the first read call in the program, it also sets the sensor to work in
continous mode. Any other US sensor blocks afterwards DON‘T do either of these operations, only read
from the US sensor ‗measurement 0′ byte (i.e. distance of closest object). The first time the I2C Write in
the loop is called it turns the sensor to work in ping mode, ping once and store the measurements (the US
sensor measures the 8 closest distances each time, see below). Next times, it just tells the sensor to ping.
You can use the ―regular‖ US Sensor block to read the last distance stored. Try changing the time delay
on the Wait block and see how this works. The last I2C block returns the sensor to the ―regular‖ mode,
just to be extra safe…
Now for something more exciting - as I said the US sensor measures 8 distances. The US Sensor block
gives access only to the first (closest) object. Extending the previous program we now use the I2C Read
to read and display the remaining 7 distances:
Last, but not least, we can now work with two US on the same NXT with alternating pinging. First we
should set both sensors:
and then we loop, pinging both sensors (a delay between sensors may be needed to allow echos die out
before second sensor fires, in my tests it didn‘t show any effect) and showing measurements:
Add starLikeShareShare with noteEmailAdd tags
Feb 28, 2007 2:57 PM
An NXT robot that sees!
by guy
At last! The first example of autonomous NXT with vision! This robot, published on pobtechnology blog, uses the POB-EYE to see and responds to its surrounding. There is a video here.
Add starLikeShareShare with noteEmailAdd tags
Feb 26, 2007 4:38 PM
Advanced NXT-G Block Techniques - Part III
by guy
In one of my previous posts I discussed how the NXT-G compiler does code optimization. Among the
optimizations done automatically by the NXT-G compiler is ignoring implmentation VI diagram parts which
are never reached by the program. In particular, say you have a Switch connected to a constant - only the
case given by the constant will be compiled. One can take advantage of this when creating NXT-G blocks
with multiple possibile actions. For instance, my Fixed-Point operations block has 6 actions - addition,
subtraction, multiplication, division and conversion from Numeric to Fixed-Point and vise versa. The ―FP
Block.vi‖ implementation VI has all 6 in a switch, with a constant holding the current action. Note that this
constant MUST resides in the ―top‖ VI, not a SubVI, otherwise it will be common to all copies of the block
in the NXT-G diagram.
This nice feature, however, posses some difficulties. To manipulate the value of controls in the Config VI
and Draw VI of your block, you invoke the ―Get Control Value‖ of the VI:
However, this DOES NOT work for constants, even after you figured out what is the label of your constant
(right-click the constant and select ―Properties‖ to set it).
A similar problem occours in writing new values. The ―Set Block Param.VI‖ supplied by the toolkit does
not work for constants.
Using VI scripting I‘ve written two VIs that allow reading and writing a constant value in implementation
VIs. Reading is done by ―Get Const Value.VI‖:
and writing by a similar ―Write Const Value.VI‖. Both VIs can be downloaded here.
Add starLikeShareShare with noteEmailAdd tags
Feb 25, 2007 8:38 AM
Problems downoading firmware? Bricked your NXT?
by dave
Numerous questions have come to Lego regarding problems downloading firmware. Lego has put this
together to help those having difficulty with performing an update:
LEGO MINDSTORMS NXT Firmware download procedure:
Make sure the LEGO MINDSTORMS NXT is connected directly to the computer/Mac using a USB cable
(Bluetooth connection will not work).
1. Press the hardware reset button on the NXT brick for at least 3-5 seconds. The hardware
reset button is a tiny little button at the bottom of the pinhole on the bottom of the NXT case,
just under the USB connector. You can push it with an unfolded paperclip but a LEGO
antenna works to.
2. If the NXT is clicking before you press the hardware reset button, it will stop clicking after
you press the hardware reset button. Continue to press on the hardware reset button for a
few seconds longer until it clicks one time. Now release the hardware reset button.
3. Wait for the NXT to start clicking continuously again (It will take approximately 2-4 seconds).
4. Now go to the menubar within the LEGO MINDSTORMS NXT Software and select Tools>Update Firmware and select a firmware version and press Download.
5. If the software is unable to download the firmware correctly after having gone through the
above process, please verify that you have the correct USB driver version installed:
1. Open an explore window
2. Go to the folder called ―WINNT‖ or ―windows‖
3. Go to the folder called ―‖system32‖
4. Find the file called ―fantom.dll‖
5. Right click on file and select properties
6. Under the version tap, the file should have the following version number:
1.0.2.49152. If it has version number 1.0.1.49152 you need to update the USB
driver.
i.
To update the USB driver please go to http://mindstorms.lego.com/Support/Updates/ and download
the MINDSTORMS NXT Driver V1.02 and install the driver. Just follow the installation instruction. Before
running the installation, close the LEGO MINDSTORMS NXT software and unplug the NXT from the
computer.
Alternate Language - FR Version (MS Word)
Alternate Language - DE Version (MS Word)
Add starLikeShareShare with noteEmailAdd tags
Feb 24, 2007 12:12 PM
Mask Block for NXT-G
by guy
Michael Gasperi created a mask block for NXT-G. This block does bitwise AND between the input (A) and
the mask. This is very useful when working with low-level I2C calls where usually each bit means
something else…
Download the block from Michael‘s site here.
Add starLikeShareShare with noteEmailAdd tags
Feb 23, 2007 4:34 PM
Small Rotation -> Linear Technic tip
by guy
Here is what I believe to be the smallest set of NXT-set parts that converts rotation to linear motion.
Turning the blue axle jointer moves the yellow 1/2 bush along the worm gear, pushing the axle and the
bent beam on it. Due to the properties of the worm gear, this is one-directional - pushing on the beam
does not rotate the worm gear or move the beam itself.
Add starLikeShareShare with noteEmailAdd tags
Feb 22, 2007 3:00 AM
Fixed-Point NXT-G Block
by guy
As you all probably know, the NXT firmware does not have built-in support for non-integer numbers. I‘ve
built an NXT-G block which allows working with non-integers using ―fixed-point‖ representation. I did not
have time to thoroughly test and document the block as I plan to before an official release. If you like to
get this block for testing and review email me guy@nxtasy.org.
UPDATE: Here‘s a nice written review and code samples by Louise Dade.
Add starLikeShareShare with noteEmailAdd tags
Feb 20, 2007 2:36 AM
RIC Revealed
by john
NXT graphic files are often used to spice up a robotics program. The Alpha Rex robot uses two
heart pictures to display something like a beating heart on the LCD while the robot moves about. Ross
Crawford‘s mini chess program written in NBC uses several graphics to draw the chess pieces on the
screen. The LEGO MINDSTORMS NXT software ships with nearly one hundred little graphic images that
you can use in NXT-G programs or programs written in NBC or NXC. Read on for a revealing look into
the NXT graphic file format.
These neat little files are known as pictures or graphics. They have a .ric file extension. In the NXT world
files typically end with a .r?? extension where the last two characters in the file extension indicate the type
of file. Sound files have a .rso extension. Executable files which have a .exe extension in Dos or
Windows have a .rxe extension on the NXT. Try Me programs (which are also executables) have a .rtm
file extension while NXT Programs have a .rpg file extension. The ―ic‖ in the RIC file extension indicates
that it is a pICture or graphIC.
With the LEGO MINDSTORMS NXT software you can browse through the list of pictures that ship with
the program whenever you wire a Display block into your NXT-G program. As you highlight a picture
name in the list the preview window shows you the image contents of each file. This may give you the
impression that an NXT picture file is kind of like a bitmap file - that the RIC file format is some form of an
image file format akin to .bmp or .gif or maybe .jpg. But that could not be further from the truth. An RIC
file is actually very different from your usual image file format.
An RIC actually contains a script or program of sorts which consists of a list of drawing commands or
opcodes. These commands are executed whenever you use the Display block in NXT, call the
GraphicOut API function in NBC/NXC, or directly execute the low level syscall opcode in NBC with the
DrawGraphic system call function identifier along with a TDrawGraphic structure. They are executed in
the order that they occur within the RIC file as it is read by the NXT firmware in response to the
DrawGraphic system call. I suppose because RIC files are akin to executable files, like other executable
files on the NXT and unlike data files or sound and melody files, the NXT firmware requires that RIC files
are linear files, which means that they are not allowed to be fragmented across multiple sectors in the
NXT filesystem.
Another important point to be aware of, regarding not only RIC files but all types of files on the NXT, is
that every file on the NXT takes up one or more chunks of file system (flash) memory and each chunk is
256 bytes in size. You may have an RIC file that is quite small, perhaps only 40 bytes or so, but it will still
use up one 256 byte chunk of flash memory. This means that when you create an RIC file you may want
to optimize it so that its size doesn‘t go slightly over another 256 byte boundary. Keep this in mind for
sound files and melody files as well.
So what are the opcodes or commands that you can tell the NXT firmware to execute within an RIC file?
Here‘s the list:
Description
Sprite
VarMap
CopyBits
Pixel
Line
Rectangle
Circle
NumBox
That‘s nine separate commands or operations that you can execute within an RIC file. Each of these can
occur multiple times within a single RIC file. When you draw an RIC file you are sequentially executing
one or more of the commands listed here. Each command is defined by its ID or opcode value, 0 through
8, followed by its arguments. In a C or C++ program each opcode in an RIC file takes the form of a
structure with various member fields that define the arguments of the opcode.
In order to make reading the opcodes from an RIC file simple, each opcode in an RIC file begins with an
unsigned word value (2 bytes) that indicates how many more bytes in the RIC file are used by the current
opcode. This is the size of the opcode structure minus 2 (since two bytes for the size have already been
read). Each opcode follows the size word with the opcode ID which is also an unsigned word value.
The smallest opcode is the Description opcode. The structure size, in total, is 10 bytes. That means that
in an RIC file if you add a Description opcode to the file the opcode will start with 0×08 0×00. This is
―little-endian‖ since the least significant byte (the low-order byte) is written first. As mentioned, the value
of size is 2 less than the actual size of the opcode since it is there to tell the parser how many more bytes
it needs to read before it gets to the end of the current opcode. Following the size is the Description
opcode‘s ID, which is 0 (zero). So there will be two bytes (an unsigned word written in little-endian
format) of zero after the size to tell the NXT it is to execute a Description opcode.
The Description opcode has 3 word-sized arguments. The first is Options. It is meaningless in the
current firmware. The second argument is the Width and the third argument is the Height. Both are
unsigned words (2 bytes each). They ―describe‖ the total width and height of the RIC file in its entirety. If
you use a Description command in an RIC file it should correctly specify the drawing extents of every
other drawing command within the RIC. However, the Description opcode is actually a no-op when the
RIC is executed by the NXT firmware. It ignores all the values within this opcode so they can be
whatever you want. Leave out the Description opcode altogether if you want and save 10 bytes. The
Description structure is shown below.
typedef struct
{
UWORD OpSize;
UWORD OpCode;
UWORD Options;
UWORD Width;
UWORD Height;
} IMG_OP_DESCRIPTION;
The one caveat that needs to be mentioned is that the LEGO MINDSTORMS NXT Software prefers that
an RIC file starts with a Description opcode. It uses the information in the Description opcode to help it
correctly draw the RIC file in the Display block preview window. An RIC file that does not start with a
Description opcode may not always draw correctly within the NXT software preview window but it will
draw correctly when your program runs on the NXT.
The most important opcode from the LEGO MINDSTORMS NXT Software perspective and one of three
opcodes that are used exclusively by the RIC files that come with the NXT software is the Sprite opcode.
A Sprite opcode is basically a bitmap. Its arguments define the number of rows and columns of pixels are
to be set or cleared. Here is the Sprite structure:
typedef struct
{
UWORD OpSize;
UWORD OpCode;
UWORD DataAddr;
UWORD Rows;
UWORD RowBytes;
UBYTE Bytes[2];
} IMG_OP_SPRITE;
As you can see the size of this opcode is variable. It depends on how many pixels are defined within the
Sprite. The pixel data in the Sprite is laid out by rows starting with the top row of the Sprite and
continuing with each row below it in sequence. Each byte in the Bytes array represents 8 horizontal
pixels in a single row. So if your RIC is 24 pixels wide then the RowBytes value will be 3. If your RIC is
anywhere from 25 pixels wide to 32 pixels wide then the RowBytes will be 4 (since each byte accounts for
8 pixels). The height of your RIC is the Row value in the Sprite. If you examine an RIC file whose width
is 24 pixels then Bytes[0] through Bytes[2] will represent the top row of Sprite data, Bytes[3] through
Bytes[5] will represent the second row, and so on until all the Rows in the Sprite are defined by data in
the Bytes array.
The total size of the Bytes array is Rows*RowBytes. The size of the Bytes array must be even, however,
so if Rows*RowBytes is odd the Bytes array size will be Rows*RowsBytes+1 where the extra byte is
equal to zero. The reason why the Bytes array size must be even is because the NXT firmware running
on the ARM processor wants all structures to be word-aligned. It does not like structures to have an odd
number of bytes.
If your RIC has a height of one the Rows value will be one. If your RIC has a width of 1 the RowBytes
value will be one and the Bytes array will have only two bytes in it (one byte for the single pixel and one
pad byte). In that case the total size of the Sprite opcode would be 12 bytes and the value of OpSize
would be 10. If the byte has all 8 bits (pixels) set then the corresponding bytes of data in the RIC file for
the Sprite opcode would be like this:
0A 00 01 00 01 00 01 00 01 00 FF 00
The DataAddr argument to the Sprite opcode is very important. This address is an index into a global
array of structure pointers. The array can store 10 entries numbered 1 through 10. Each Sprite in an RIC
file is stored at the index specified by this argument. When the Sprite opcode is executed by the NXT
firmware the only thing that occurs is that a pointer to the Sprite structure is copied into the data array at
the specified index. No image data is drawn to the NXT LCD at this point. What this means is if you
reuse the same data address value in subsequent Sprite opcodes or the VarMap opcodes then any Sprite
or VarMap data previously written to that address will be no longer useable. All the RIC files that ship
with the NXT set use a single Sprite opcode and they all use a data address value of one.
The CopyBits opcode is the third opcode used exclusively by the RIC files that come with the LEGO
MINDSTORMS NXT software. Each of these RIC files begins with a Description, followed by a Sprite,
and concluding with a CopyBits opcode. The Display block‘s preview window can only draw RIC files that
use a Sprite and a CopyBits opcode. It does not know how to preview RIC files that have multiple Sprites
and CopyBits opcodes or RIC files that use other opcodes supported by the standard NXT firmware.
The CopyBits opcode ID is 3. Its size is fixed at 20 bytes. That means the OpSize value is 18 (0×12
hex). This opcode is defined using three structures as you see below.
typedef struct
{
SWORD X, Y;
} IMG_PT;
typedef struct
{
IMG_PT Pt;
SWORD Width, Height;
} IMG_RECT;
typedef struct
{
UWORD OpSize;
UWORD OpCode;
UWORD CopyOptions;
UWORD DataAddr;
IMG_RECT Src;
IMG_PT Dst;
} IMG_OP_COPYBITS;
The CopyOptions argument of the CopyBits opcode sounds very promising. It can be set to a value that
was intended to mean Copy, CopyNot, Or, and BitClear (presumably 0 through 3). Unfortunately, the
CopyOptions argument found in this opcode and other opcodes is unused in the existing standard NXT
firmware. All the opcodes with the CopyOptions argument operate as if the argument was set to Copy
(zero).
The CopyBits opcode is designed to copy bits from a previously loaded Sprite into the normal LCD
display memory. Which Sprite data is copied is determined by the DataAddr argument to the CopyBits
opcode. If you want to copy bits from the Sprite loaded into slot 1 then you need to set the same data
address in your CopyBits opcode. The bits to copy from the Sprite are specified by the source rectangle
(left, bottom, width, height). The CopyBits opcode also specifies the destination point (left, bottom) where
the copied bits of Sprite data should be drawn. This x, y location is usually set to 0, 0 but it can be used
as an offset from the drawing origin specified in the DrawGraphic system call.
If you want to copy all the bits in the Sprite to the NXT LCD then the source rectangle values will be 0, 0,
RowBytes*8, Rows However, since you may have extra bits at the end of each row as a result of each
byte in a row representing 8 pixels you probably will want to use the actual desired RIC width rather than
RowBytes*8.
You can also use the CopyBits opcode to only draw a portion of the Sprite data on the screen
by manipulating the source rectangle values. You could use a single Sprite opcode with multiple
CopyBits opcodes which select different portions of the Sprite data and draw them to the screen or
multiple CopyBits opcodes which select the same portion of Sprite data and draw it to different relative
screen destinations.
So now we have discussed the big three opcodes (one of which is unused completely when drawing on
the NXT LCD). That leaves us with the unused opcodes, the defined but unusable opcodes, and the
mysterious VarMap opcode. The remaining opcodes will be further revealed in a separate post.
Add starLikeShareShare with noteEmailAdd tags
Feb 18, 2007 8:17 AM
NXT Aerial Ropeway
by guy
Anders‘ Arieal Ropeway travels on ropes, with two US sensors to stop it from hitting the walls… and has a
Bluetooth control program written in c++. Full building instructions and program online too! Nice work,
Anders!
Add starLikeShareShare with noteEmailAdd tags
Feb 17, 2007 2:05 AM
Spider Walker
by guy
A well documented NXT Spider with building and programming instructions.
Add starLikeShareShare with noteEmailAdd tags
Feb 14, 2007 2:18 PM
Pneumatic Pressure Sensor NXT-G Block
by guy
NXT-G Block for mindsensors.com Pneumatic Pressure Sensor (PPS35-Nx).
Add starLikeShareShare with noteEmailAdd tags
Feb 13, 2007 7:17 AM
NXC Tutorial
by guy
Daniele Benedettelli published a nice tutorial on NXC. You can download it from NBC/NXC website or
directlyhere.
Add starLikeShareShare with noteEmailAdd tags
Feb 12, 2007 2:54 PM
NXT Gymnast
by guy
Eugene Tsai from Taipei sent these building and programming instructions for this ―NXT
Gymnast‖. See this link for a video of it‘s performance.
[Via TheNXTStep]
Add starLikeShareShare with noteEmailAdd tags
Feb 11, 2007 11:51 AM
Sine and cosine NXT-G Block
by guy
These block calculates the sine and cosine of an angle.
Add starLikeShareShare with noteEmailAdd tags
Feb 11, 2007 11:51 AM
Arctangent NXT-G Block
by guy
This block calculates the arctan(x) function
Add starLikeShareShare with noteEmailAdd tags
Feb 11, 2007 11:51 AM
Square Root NXT-G Block
by guy
This blocks allows calculation of (integer) square root of its input
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 4:01 PM
HiTechnic Color Sensor Block
by guy
The Color Sensor Block adds support for all Color Sensor features to the LEGO MINDSTORMS NXT
Software. This block gives access to features enabling access to Color number, Red, Green and Blue
relative color content, and in/out of color range.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 4:01 PM
HiTechnic Compass Sensor Block
by guy
The Compass Sensor Block adds support for all Compass Sensor features to the LEGO MINDSTORMS
NXT Software. This block gives access to features enabling Compass calibration, target heading and
in/out of range and others.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 4:01 PM
MotorMux NXT-G Block
by guy
NXT-G Block for mindsensors.com motor multiplexer (MOTORMX-Nx).
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 4:01 PM
I2C Read/I2C Write General Purpose NXT-G Blocks
by guy
These two NXT-G blocks published on mindsensors.com website allow low-level I2C read and write
operations from within NXT-G.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 3:01 PM
Acceleration Sensor NXT-G Block
by guy
This block works with one of the prototype acceleration sensors from Hi-Technic. It has outputs for X, Y &
Z. It can not be used as a loop block condition yet. The Configuration panel is also not complete.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 3:01 PM
Simple Array NXT-G Block
by guy
The array block is a repackaged sub-block. It will allow you to Clear the array, Add values, and Get
values given the index.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 3:01 PM
Display Number NXT-G Block
by guy
This block was made as a debugging tool. It combines several blocks that (due to program limitations)
can not be compiled into a My Block. The block takes a line number, a caption, and a number as input.
The Caption and Number are displayed on the given line on the screen.
This block requires the ―Display Performance‖ block be installed, in order to work.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 3:01 PM
Line Following NXT-G Block
by guy
This block should be placed in a loop, and will cause drive the motors at the speed specified, so the robot
can follow the edge of a line, with a single light sensor.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 3:01 PM
New NXT-G Repository Category
by guy
Following Philo advice, I opened a new category in NXTasy Repository for NXT-G blocks and MyBlocks
only.
Anyone who has made new blocks and wish to publish them, or knows of existing blocks online not
linked here, please email to repository@nxtasy.org.
Add starLikeShareShare with noteEmailAdd tags
Feb 10, 2007 3:01 PM
NXTWay-G: Balancing with a Gyro Sensor
by sivan
Ryo Watanabe posted videos and many details of his amazing NXTWay-G. It stays balanced using a
gyroscopic sensor. Ryo has been discussing NXTWay-G on the nxtasy projects forum.
Add starLikeShareShare with noteEmailAdd tags
Feb 8, 2007 3:15 AM
NXT Director
by guy
NXT Director (v. 1.1) allows to use your Bluetooth enabled Palm device as a remote control for your Lego
Mindstorms NXT Robot.
Add starLikeShareShare with noteEmailAdd tags
Feb 7, 2007 10:15 AM
NXT Compatible Sockets and Plugs
by guy
For a long time, the NXT style RJ12 plugs and sockets were unavailable in market. They are now sold by
mindsensors.com. The order page is here (it is not accessible from their main webpage for some reason).
Add starLikeShareShare with noteEmailAdd tags
Feb 7, 2007 10:15 AM
New Gyro Sensor announced by HiTechnic
by guy
A new product announcement by HiTechnic:
―The HiTechnic Gyro is a single axis gyroscopic sensor that measures the rate of turn in the plane of the
sensor. Using the HiTechnic Gyro Sensor Block for Mindstorms NXT-G, the program will get a signed
value that represents the rotation rate in approximate units of one degree per second. The maximum
rotation rate which can be measured is +/- 360 degrees per second.
The sensor is housed in a standard LEGO sensor housing.‖
Together with the other products announced earlier this week (IR sensor, IR link and motor and sensor
multiplexers), it seems there will be a lot more options for NXT in the near future!
Add starLikeShareShare with noteEmailAdd tags
Feb 7, 2007 10:15 AM
TestOutput Utility
by guy
Here‘s a nice utility made by Julien Letrouit. It is a small on-brick program which allows control one or two
motors. This can be useful to test your robots without the need to use your computer.
Description:
This program written in NXC (http://bricxcc.sourceforge.net/nbc/ for more information on that language)
allows to test the motors while building your robot. This is handy if you don‘t have a computer close to you
when building a robot.
Content of the zip file:
- TestOutput.rxe: the program to download to your NXT brick
- TestOutput.nxc: the source code of the program written in NXC 1.0.1 b24
Installation:
Use the download feature of the NXT window in the NXT software to download the ―TestOutput.rxe‖
program to your NXT brick.
Usage:
Launch the program on the NXT and follow on screen instructions. Selecting ―A‖, ―B‖ or ―C‖ will allow you
to test one motor at a time. Selecting ―A+C‖ or ―A-C‖ will allow you to test A and C at the same time. With
―A-C‖, C will go reverse compared to A.
Add starLikeShareShare with noteEmailAdd tags
Feb 7, 2007 10:15 AM
MindSqualls .Net API
by guy
MindSqualls is a .Net 2.0 library for remote controlling a NXT robot through a bluetooth link.
It is written in C#, but can be used from any .Net programming language e.g. VB.Net, J# and of cause C#.
It can also be ported to the Compact Framework allowing it to be used
on a Pocket PC, smartphone or PDA as long as they can run the CF.
MindSqualls is currently in version 1.1, and supports all the commands from appendices 1 and 2 of the
Bluetooth Development Kit. Furthermore it supports the compass and color sensors from HiTechnic. It
gives the programmer either a direct bluetooth communication
object (the class NxtBluetoothConnection), or a high level abstraction through the class NxtBrick.
MindSqualls is available for download at http://www.mindsqualls.net.
It is of cause free and it comes with an extensible documentation.
Add starLikeShareShare with noteEmailAdd tags
Feb 6, 2007 2:49 PM
Controlling Extra Motors
by sivan
The little electronic circuit in the picture allows the NXT to control two extra motors. The circuit is
connected to one of the sensor ports of the NXT, leaving the three motor ports on the next available. Like
the NXT itself, this motor controller can power both the NXT servo motors and other 9V Lego motors
(using converter cables). The controller allows the NXT to turn the motors on and off, in both direction, but
it does not provide speed control in hardware and it does not use the feedback from the NXT‘s servo
motors. With this circuit, the NXT can control up to five motors. But its batteries do not have enough
power for five motors. Also, the sensor ports do not have enough power for even one motor. Therefore, a
separate 9v battery box provides power to the extra motors.
It is essentially home made and it is certainly hand made. It may look semi-professional because it was
constructed on a printed-circuit board, but it is possible to build it without a printed-circuit board.
See the full report for details.
Add starLikeShareShare with noteEmailAdd tags
Feb 5, 2007 5:01 PM
Scanner designs
by guy
Our forums user Spirou published on his website two nice scanner designs - vertical scanner
and horizontalscanner. Both designs allow rotating the US sensor around without moving the whole NXT
bot.
Add starLikeShareShare with noteEmailAdd tags
Feb 5, 2007 5:01 PM
JennToo Radar
by guy
Krystian Majewski made a new version of his NXT Radar, this time using Brian Davis‘ JennToo model.
The NXT-Gcode allows 360 degrees scanning and display the results on screen just like regular radar
displays. Don‘t miss the impressive YouTube movie! See this page for more…
Add starLikeShareShare with noteEmailAdd tags
Feb 5, 2007 4:00 PM
BarCodeReader
by guy
Claudio Ditursi has put online a great NXT project called BarCodeReader. This MyBlock and assorted
files allow an NXT robot to scan a printed barcode using the light sensor, and react according to the
printed barcode value. The MyBlock comes with detailed documentation, technical details, sample project
and images. Great job, and thanks Caludio for making this site and documentation for sharing this with
the rest of the NXT community!
Add starLikeShareShare with noteEmailAdd tags
Feb 5, 2007 3:00 PM
NXT-G blocks for Mindsensors.com products
by guy
Mindsensors.com has started a repository for NXT-G blocks. These blocks allow NXT users having
mindsensors.com PSPNx PS2 controller interface sensor, or the mindsensors motor multiplexer, to use
these devices in NXT-G. The blocks are available for download here.
Add starLikeShareShare with noteEmailAdd tags
Feb 5, 2007 3:00 PM
Spring suspensions
by guy
wingnutamj has posted some nice Technic spring suspension. Find it here:
http://forums.nxtasy.org/index.php?showtopic=790&pid=6231&st=0&#entry6231
parts needed:
4 15N technic bars
4 pins (1*2)
6 large pins (1*3)
2 5N studs
4 pin stud things (see attachment)
1 rod extender (put 2 technic rods into it)
3 rod caps (1*1 circular pieces (full size))
1 12N technic rod
1 10N technic rod
Add starLikeShareShare with noteEmailAdd tags
Feb 5, 2007 3:00 PM
RXEDumper
by guy
RXEDumper is a simple Windows program which can be used to edit and compile Next Byte Codes
(NBC) programs. It also lets you decompile NXT executable programs (.rxe, .rtm, and .sys).
It can be found at: http://bricxcc.sourceforge.net/utilities.html
Add starLikeShareShare with noteEmailAdd tags
Jan 31, 2007 5:36 PM
NXC Documentation & Samples
by john
A Not eXactly Complete (NXC) version of the NXC Guide is now available on a new NXC Docs page. It
is based on the original NQC Guide written by Dave Baum and John Hansen.
http://bricxcc.sourceforge.net/nbc/
Some portions of the document describe compiler features which have not yet been implemented (e.g.,
const and const & parameter types and inline functions). These features are coming soon. Many API
functions have not yet been documented but I am making progress. I will be updating the PDF regularly
as I complete sections over the next few days.
I have also posted some wonderful sample NXC programs, including an Alpha Rex program written by
Graham Hawkins, on the new NXC Samples page. There are a lot of other very cool sample programs on
the page as well.
Add starLikeShareShare with noteEmailAdd tags
Jan 30, 2007 10:04 AM
Philippe Hurbain‘s Spy Camera Rover
by guy
Philo has put online this nice spy rover, controlled by an elegant Bluetooth-enabled joystick made of
another NXT. Images and building instructions are also online here.
Add starLikeShareShare with noteEmailAdd tags
Jan 29, 2007 4:11 PM
NXC Beta 24
by john
I released beta 24 of NBC and NXC early this morning. The source code, the Win32 binary and the Linux
binary are all up on the NBC site. The Mac OSX build will be up later this evening. I‘m nearly ready to
post the first draft of the NXC Guide as well.
Be sure to also get the latest test release of BricxCC for updated syntax highlighting support for the newly
added API functions in NBC and NXC.
Read on for a list of fixes and enhancements.
Version 1.0.1.b24
—————–
- Fixes a preprocessor bug in NBC and NXC that is triggered by not having a ‗)‘
at the end of a macro invocation (or anywhere following in the entire program).
- Replaced the ResetMotor macros in NBC and NXC with the following macros:
ResetTachoCount(p)
ResetBlockTachoCount(p)
ResetRotationCount(p)
ResetAllTachoCounts(p)
- Added NBC API file i/o macros
Read(handle, n, result)
ReadLn(handle, n, result)
ReadBytes(handle, len, buf, result)
Write(handle, n, result)
WriteLn(handle, n, result)
WriteString(handle, str, cnt, result)
WriteLnString(handle, str, cnt, result)
WriteBytes(handle, buf, cnt, result)
WriteBytesEx(handle, len, buf, result)
- Added NXC API file i/o macros
result = Read(handle, n)
result = ReadLn(handle, n)
result = ReadBytes(handle, len, buf)
result = Write(handle, n)
result = WriteLn(handle, n)
result = WriteString(handle, str, cnt)
result = WriteLnString(handle, str, cnt)
result = WriteBytes(handle, buf, cnt)
result = WriteBytesEx(handle, len, buf)
- Replaced the code underlying the ReadSensorUS (NBC) and SensorUS (NXC) API
functions with a version which appears to be more reliable (and generic).
- Added NBC and NXC API functions to give control over reseting rotation counters
CoastEx(ports, reset)
OffEx(ports, reset)
OnFwdEx(ports, pwr, reset)
OnRevEx(ports, pwr, reset)
OnFwdRegEx(ports, pwr, regmode, reset)
OnRevRegEx(ports, pwr, regmode, reset)
OnFwdSyncEx(ports, pwr, turnpct, reset)
OnRevSyncEx(ports, pwr, turnpct, reset)
- Added NBC and NXC constants for the ―Ex‖ motor functions
RESET_NONE
RESET_COUNT
RESET_BLOCK_COUNT
RESET_ROTATION_COUNT
RESET_BLOCKANDTACHO
RESET_ALL
- Added NBC and NXC API functions which expose the PID parameters
RotateMotorPID(ports, pwr, angle, p, i, d)
RotateMotorExPID(ports, pwr, angle, turnpct, bsync, p, i, d)
- Added NBC and NXC API function for clearing the screen
ClearScreen()
- Added support in the NXC SetOutput function for multiple sets of field/value pairs
SetOutput(ports, const field1, value1, …, const fieldN, valueN)
- Added generic I2C read/write routine for NBC
ReadI2CBytes(port, inbuf, count, outbuf, result)
- Added generic I2C read/write routine for NXC
result = I2CBytes(port, inbuf, count, outbuf)
- Added NBC pseudo opcode to spawn a thread anywhere within the current thread
start TaskName
- Added NXC start statement (ala NQC)
start TaskName;
Add starLikeShareShare with noteEmailAdd tags
Jan 28, 2007 4:31 PM
Disk Reader
by adam
The disk reader is just one of the little tests that I‘ve been working on with my NXT. At present the data
that the robot reads is rather useless but, with a good imagination I think that you could come up with
some interesting applications for this robot. The robot is very easy to put together. The hard bit is getting
the data to mean something and get the robot do something with the data.
If you make anything interesting with the disk reader and you want to show people what you have made.
Email me and I‘ll post it up here for others to see.
Till NXTime.
Add starLikeShareShare with noteEmailAdd tags
Jan 25, 2007 1:57 PM
An NXC Library for Bluetooth Communication
by sivan
Daniele Benedettelli wrote an NXC library that simplifies the sending and receiving Bluetooth message.
Via The NXT Step.
Add starLikeShareShare with noteEmailAdd tags
Jan 25, 2007 1:57 PM
Light that Screen!
by sivan
Philo shows how to light the NXT‘s screen.
Via The NXT Step.
Add starLikeShareShare with noteEmailAdd tags
Jan 14, 2007 2:21 AM
LejOS: Alternative Firmware to run Java on the NXT
by sivan
leJOS NXJ is a full firmware replacement and works for Windows and Linux. This is a technology preview
of things to come. At the moment there is no Bluetooth, I2C (Ultrasonic sensor), or sound support and we
do not have a basic menu system. You can write Java programs and upload them to the NXT brick via
USB.
Add starLikeShareShare with noteEmailAdd tags
Jan 13, 2007 3:20 PM
Building Instructions for Spitter
by sivan
I‘ve posted complete building instructions for Spitter, the little bot that spits paper pellets (21MB PDF file).
Drop me a line (and attach a picture) if you build it.
Add starLikeShareShare with noteEmailAdd tags
Jan 9, 2007 7:27 PM
New NXC beta release
by john
I have released a new beta (b21) of NBC with built-in support for the Not eXactly C (NXC) programming
language. The sourcecode and the Win32 binary are already up on the NBC website. The Mac OSX
binary and Linux binary will be up later this evening.
This release
- Adds NXC API macro ResetMotor(ports)
- Adds support in NXC for the ?: expression
- Adds support in NXC for the switch statement
- Adds the following NQC compatibility macros in NXCDefs.h:
S1
S2
S3
S4
SENSOR_1
SENSOR_2
SENSOR_3
SENSOR_4
SENSOR_TYPE_NONE
SENSOR_TYPE_TOUCH
SENSOR_TYPE_TEMPERATURE
SENSOR_TYPE_LIGHT
SENSOR_TYPE_ROTATION
SENSOR_TYPE_LIGHT_ACTIVE
SENSOR_TYPE_LIGHT_INACTIVE
SENSOR_TYPE_SOUND_DB
SENSOR_TYPE_SOUND_DBA
SENSOR_TYPE_CUSTOM
SENSOR_TYPE_LOWSPEED
SENSOR_TYPE_LOWSPEED_9V
SENSOR_TYPE_HIGHSPEED
SENSOR_MODE_RAW
SENSOR_MODE_BOOL
SENSOR_MODE_EDGE
SENSOR_MODE_PULSE
SENSOR_MODE_PERCENT
SENSOR_MODE_CELSIUS
SENSOR_MODE_FAHRENHEIT
SENSOR_MODE_ROTATION
SENSOR_TOUCH
SENSOR_LIGHT
SENSOR_ROTATION
SENSOR_CELSIUS
SENSOR_FAHRENHEIT
SENSOR_PULSE
SENSOR_EDGE
SetSensor(sensor, tm)
- Fixes an NXC shift right and shift left bug introduced in b20.
- Fixes an NXC macro subsitution bug in the ―until‖ macro.
- Modifies GetOutput and GetInput API functions so that the port parameter no longer accepts an
expression (must be a variable or constant value)
Come and get it!
Also come get the newest test release of BricxCC with updated templates for
NBC, NPG, and NXC as well as updated syntax highlighting and code completion support for the latest
NBC/NXC beta.
Please email me regarding any problems you encounter and with any
suggestions/comments you may wish to share.
John Hansen
http://bricxcc.sourceforge.net/
http://bricxcc.sourceforge.net/nbc/
Add starLikeShareShare with noteEmailAdd tags
Jan 7, 2007 4:09 PM
Compiler optimizations in NXT-G
by guy
Having published my ―Template VI Library Block‖ I received an email from NI, explaining how a similar
code optimization can be done in a more ―regular‖ fashion:
Consider a program/block diagram which has a ―switch‖ (i.e. a case structure) and each case performs a
different task. The compiler decides whether to include in the final program all case diagrams if, and only
if, the case structure selection input is connected to a control and this control is wired to a terminal in the
Implementation VI connector pane (and thus will have a drawer terminal in the NXT-G IDE).
One the other hand, if you wire a constant to the case structure selection input, or wire a control which is
not connected to a connector (and thus not accessible in NXT-G drawer) - the compiler will add only the
relevant piece of code into the final program file.
Having published this, I still find my block useful as it makes adding functions easier, and automatically
shows the the right description in the control panel.
Add starLikeShareShare with noteEmailAdd tags
Jan 7, 2007 3:09 PM
RobotC Available for Purchase from LEGO!
by guy
Hot new! The attached image is taken from the most recent LEGO Education catalog (North America). It‘s
currently being sent to people on Lego‘s mailing list. As you can read, RobotC is available for purchase
from LEGO and is branded as a LEGO Education product!
In case you don‘t know - RobotC is an alternative programming platform for NXT and RCX. It is a Cbased programming language (with some C++ extensions). It was design by Carnegie Mellon Robotics
Academy, and been freely availalble as time-limited beta for quite some time. It is now sold as a LEGO
Educational product for $49 (Single Copy). I‘ve heard that a direct download option will be available soon
from CMU, hopefully for somewhat cheap price.
Add starLikeShareShare with noteEmailAdd tags
Jan 7, 2007 2:09 PM
Combining studded with studless Legos
by guy
Our forums user PTP posted this nice picture showing various ways one can combine studded with
studless Legos. Since I find this very important, I have published it here. Click on the picture for a higher
resolution image.
Add starLikeShareShare with noteEmailAdd tags
Jan 6, 2007 11:09 AM
Advanced NXT-G Block Techniques - Part II
by guy
In this post I‘ll describe another useful trick for NXT-G Block programmers. Often it is convenient to have
several actions in one block. For example, my Array Block has ―read‖, ―write‖ and ―create/resize‖ actions
selectable from a dropdown list. However, not allways the same terminals are needed. In the above
example, read and write mode need a ―Position‖ input terminal, while create/resize mode requires a
―Size‖ input terminal. Here I‘ll describe how one can use a single terminal, and dynamically rename it
when the action is changed.
There are two text strings that must be changed - the easier part is changing the Config VI front panel
caption string from ―Position:‖ to ―Size:‖. As once can see in the diagram above this is done by the middle
propery node. However, one must take care that the caption text does not move when replacing the text.
To do this, I read the caption left position before the change, and set it to the same value after the
change.
The second change is a little more difficult - one would want the NXT-G user to see the correct ―tooltip‖
(the yellow text appearing when you place the mouse above a terminal). This requires changing the
caption of the Implementation VI control. I‘ve written a special VI that changes the caption of a specific
control/indicator (identified by a unique label). This VI, which is the yellow block in the above diagram, is
available for downloadhere. Use the Context Help (Ctrl-H) to see how to wire it in your code.
Add starLikeShareShare with noteEmailAdd tags
Jan 6, 2007 4:09 AM
Bigger Font for NXT LCD Display
by Dick Swan
The standard font for the NXT is 6W x 8H pixels per character. The RobotC development system now
supports a larger font where characters are 12W x 16H. Here‘a a photo of the NXT LCD comparing the
standard and expanded font sizes.
The font file was developed by Jason Rail…. Thanks.
Add starLikeShareShare with noteEmailAdd tags
Jan 5, 2007 5:34 PM
Template VI Library Block (v. 1.0)
by guy
This ―advanced‖ NXT-G block is released not for users, but for NXT-G block developers. I‘ve created this
block as a starting point for a ―math library‖ block which I still didn‘t manage to get to. Such ―libraries‖ of
blocks typically have similar number of input and output terminals, but different functionality in each
function. If you use a ―Switch‖ VI you waste a huge amount of memory since all functions are compiled
and stored in the final .rbt file, even if you use only one function.
The Template VI Library Block answers this problem. Basically, it allows dynamical reprogramming of the
―underlying‖ VI diagram behind the NXT-G diagram and replacing the ―core‖ SubVI of the block every time
the user selects a different function. Adding new functions is very easy - changing the control holding the
list of functions and adding the SubVI file is all you have to do! More details on using this block are found
in theREADME file, and inside each VI.
Download the Template VI Library Block here.
Comments/suggestions/bugs can be reported on this topic, or via email to guy@nxtasy.org.
Add starLikeShareShare with noteEmailAdd tags
Jan 5, 2007 5:34 PM
Drool! New Technic Set Pics!
by dave
Not exactly NXT-related, but given that Technic and Mindstorms are like milk and Oreo‘s!
I just came across this posting and saw pictures of what looks to be upcoming Technic sets.. The
Bulldozer looks pretty slick, comes with a IR remote and by the pictures, appears to have some very
interesting small motors… Anyone have hi-res scans? Pass them on!
Link
Add starLikeShareShare with noteEmailAdd tags
Jan 5, 2007 3:34 PM
Winners of Challenge No. 1 - ―Throw Me!‖
by guy
I‘m very sorry for the long delay (real life issues), but finally I found the time to make the list of winners in
our first NXTasy challenge. The image above is of ―Spinner‖, the award winning robot by Combat_Israel.
This robot throws the ball 11 meter away. Combat_israel wins a digital compass sensor courtesy
of HiTechnic.
The best 5 throwers are - Combat_Israel (430 inches), James German (204 inches), Rp181 (153 inches),
msim (122 inches) and Todd Edmands (96 inches). All five will get a 25% discount coupon for online
purchase in mindsensors.com.
The details (contributions, prizes, winners etc.) are found in a new page, which you can reach from the
―Challenges‖ link on the top of NXTasy homepage, or directly using this link.
Add starLikeShareShare with noteEmailAdd tags
Jan 5, 2007 7:34 AM
Lego S@H sale - NXT set, parts and other goodies!
by dave
Edit: Sorry folks, it appears that this deal is no longer available
I received notice of it and I can
confirm it was live because I personally ordered the colour sensor, some cables and other parts which
were all processed at the discounted price… Guess it was a (very) short term deal (or mistake).
Quick! These deals may not last long, but the NXT set (and some other items) are in sale at Lego Shop
at Home (at least for Canada!). If you are looking to buy a NXT or add to your collection, this may be your
chance! Here are some items:
(Note - all prices are quoted in Canadian dollars)






NXT set $249 (from $349)
converter cables and connector cables down to $9.99 (from $14.99)
Rechargable battery $49.99 (from $69.99)
Compass sensor $46.99 (from $59.99)
Colour sensor $46.99 (from $59.99)
Note -the Compass sensor is listed on hitechnic.com for $46.99 (and the colour sensor may
be the same once the price is listed) - so these two may not be such a hot deal.
There is a total of 93 items including those listed above. Looks like I might just go after that colour sensor
now! Not sure how long the sale will be on… http://shop.lego.com/SalesAndDeals/Default.aspx?va=1
Add starLikeShareShare with noteEmailAdd tags
Jan 2, 2007 5:31 PM
Not eXactly C
by john
Please visit the Not eXactly C website (http://bricxcc.sourceforge.net/nxc/) for an important beta release
(b19) which fixes a serious problem that can cause NXC files to be overwritten by generated NBC code
when you download an NXC program within the BricxCC integrated development environment (IDE).
In beta 17 and 18 I had added a -N command line parameter to NBC which allowed the NBC compiler to
save the intermediate NBC source code to the specified filename. Unfortunately, BricxCC was using an
undocumented -N parameter for a completely different purpose already (during the download
operation) and I mistakenly thought that -N was available for use as described above. The new beta
release renames this relatively new option as -nbc=.
It is possible to work around the bug in beta 17 and 18 by always saving the active editor window in
BricxCC after executing the download operation.
The latest test release of BricxCC (see the download link in the NXT News section of the BricxCC page)
should be used along with the latest NBC/NXC beta release.
Most of the new features and bug fixes in beta 18 and 19 are a direct result of user feedback via email.
Please feel free to send me any questions you may have or reports of any problems you may
encounter.
John Hansen
Add starLikeShareShare with noteEmailAdd tags
Dec 30, 2006 4:19 PM
I2C Interfacing Part 2: Analog-to-Digital, Pressure Sensing, and 5V
Power
by sivan
A pressure sensor allows you to stop a motor that operates a Lego pneumatic compressor when the
pressure is high enough to actuate pneumatic cylinders and to start it when the pressure is too low. This
prototype sensor uses an analog pressure sensor chip to measure pressure. The analog measurement is
2
converted to a digital value and sent to the NXT using an I C analog-to-digital converter chip. A slight
2
complication is caused by the pressure sensor, which needs a 5V power supply. But thanks to I C, the
sensor is still very simple.
The full details are available here.
Add starLikeShareShare with noteEmailAdd tags
Dec 27, 2006 11:36 AM
Omni Teaches Physics
by guy
Ever since I saw Steve Hassenplug‘s ―Omni‖ (see also in NXTLOG), I wanted to make one of my own.
Last week, I finally obtained enough wheels via Bricklink to make the three ―omni-wheels‖ needed.
Working on Omni, I soon realized that controlling the three motors is actually the toughest problem with
this type of robotic motion. If you want Omni to move in any one direction, you should (in general) operate
all three motors in varying speeds. The videos showing Omni in action suggest that Steve controlled each
motor independently using a second NXT sending BT commands to the Omni NXT brick. I wanted to use
my PSP-Nx PS2 Controller Block and maneuver Omni with a wireless PS2 controller. In this post, I‘ll
describe how this is done and how Omni can be used to teach students something on elementary rigid
body kinematics.
Omni is controlled by three motors. Each motor rotates one ―omni-wheel‖, comprised of six pairs of freely
rotating wheels, as seen in the image above. The ―omni-wheel‖ allows free translation in the direction
perpendicular to the motor motion, or in other words, the velocity of the motor perpendicular to the wheel
is undetermined. The NXT controls the velocity (or equivalently the ―power‖ in NXT-G terminology) of
each of the three motors. Let‘s denote the velocities of the three motors by V1, V2 and V3, pointing
clockwise as you look on Omni from above (see yellow arrows in image). Notice that only V1 is in the
direction of one of the axes (X axis), the other two have components both on the X axis (from Omni
center to the right in the picture above) and on the Y axis (from Omni center to the top of the image). The
respective perpendicular velocities at each wheel will be denoted with primed symbols – V1′, V2′ and V3′
– , and we will use the convention that these are positive if the wheel tries to move ―toward the center‖ of
Omni. We wish to move the Omni in some velocity V at some particular direction, given by an angle θ
(This is the greek letter ―theta‖, not the number eight. Physicists like to denote angles by greek alphabet)
from the ―forward‖ direction (see image). For the sake of clarity, I‘ll ignore the difference between linear
velocity (of Omni as a whole) and angular velocity (set to each motor), since the two are linearly
proportional (where the proportionality constant is just the radius of the omni-wheel).
In a rigid body translation without rotation means that every point on the body has the same velocity as
the center of mass of the whole body. Thus, for each motor we have two equations relating the velocity
(e.g. V1) and the perpendicular velocity (e.g. V1′) with the projections of Omni velocity in the X and Y
directions – V sin(θ) and V cos(θ), respectively. Hereafter I‘ll denote these two velocity components
simply as Vx and Vy.
For the first motor (the one in the forward direction) we have:
Vx=V1
and
Vy=–V1′
For the second wheel:
Vx=–V2 cos(60°) – V2′ cos(30°)
Vy=–V2 sin(60°) + V2′ sin(30°)
And finally for the third wheel:
Vx=–V3 sin(30°) + V3′ cos(30°)
Vy=V3 cos(30°) + V3′ sin(30°)
These set of 6 unknowns (V1, V2, V3 and the three primed velocities) and 6 equations has exactly one
solution:
V1=Vx
V2=–Vx / 2 – Sqrt(3)/2 Vy
V3=–Vx / 2 + Sqrt(3)/2 Vy
Where Sqrt(3) is just the squared root of 3.
Can we verify that this velocities indeed correspond to translational motion without rotation? Well, one
can easily convince himself that V1+V2+V3=0, and since all motors are connected to equal size beams
then this is indeed the requirement for no rotation. Adding a fixed angular velocity (Omega) is trivial, since
that it is exactly as adding some additive factor to all three motor velocities, i.e. V1=V2=V3=Omega.
The program which implements this calculation is found here. I used the mindsensors.com PSP-Nx PS2
Controller Interface sensor and my respective NXT-G block (available here) to get three readings from the
PS2 controller – the right joystick X and Y values (rescaled between -33 and +33) are used as Vx and Vy,
and the rescaled left joystick X value gives the additive angular velocity. As you can see from the
video here, this works great, allowing Omni to move without rotation in all directions with the other joystick
rotating it on its axis.
What‘s next? The above description solves the motion in an ―internal coordinates system‖, which is
coupled to the Omni. A more elaborate program can move the robot in an ―external coordinates system‖,
so one can move the Omni in some direction AND rotate it around its axis simultaneously. This can be
done, for example, if the robot ―remembers‖ its orientation compared to the ―world‖ coordinates system, or
uses a compass sensor and some online trigonometry to adjust its motors.
Original video source (Omni.avi)
Add starLikeShareShare with noteEmailAdd tags
Dec 26, 2006 9:37 AM
Hi-Technic Color Sensor on Shop@Home
by eric
The holidays bring the NXT community a nice little gift on the LEGO Shop@Home site - the Hi-Technic
Color Sensor.
See a rainbow of color!
Using the NXT Brick (sold separately), the Color Sensor enables your robot to distinguish not only
between black and white, but also a range of bright and pastel colors.
Does not include connector cable.
This is the individual component, and does not include the NXT Intelligent Brick, software or any
accessories. It requires the complete LEGO® MINDSTORMS® NXT set (#8527) for use.
Add starLikeShareShare with noteEmailAdd tags
Dec 26, 2006 9:37 AM
Mindsensors Infrared Distance Sensor
by eric
Coming soon from mindsensors.com - a high precision infrared distance sensor. Available end of
January.
Introducing series of high prevision infrared distance sensors using I2C bus digital interface. These
sensors will provide reading directly in millimeters.
These sensors will have built-in calibrations to provide high resolution readings. When not in use, the
sensor can be powerd down to conserve battery.
The sensors will come in ranges as follows Short range sensor: 4cm to 30cm
Medium range sensor: 10cm to 80cm
Long range sensor: 20cm to 150cm
Scheduled to be available by end of Jan 2007.
Add starLikeShareShare with noteEmailAdd tags
Dec 26, 2006 9:37 AM
NXT Light Barrier
by eric
Philippe Hurbain‘s (Philo) website has been updated with a cool little light barrier project.
Following this discussion on Lugnet, I built this proof of concept of a light barrier using NXT light sensor
and an optic fiber. Any small object passing between the end of the fiber and light sensor phototransistor
can be easily detected, even if they have different color or reflectivity.
Add starLikeShareShare with noteEmailAdd tags
Dec 26, 2006 2:36 AM
PSP-Nx Block example
by guy
I was asked for a simple PSP-Nx sample program. Since this may be of common interest, I post it here.
As you can see from the image the program is trivial, controlling motor B and C using the two joysticks Y
axis. You can download the .rbt file here.
Add starLikeShareShare with noteEmailAdd tags
Dec 23, 2006 2:36 PM
FantomTalk
by guy
FantomTalk is a new package developed by Gregory Gutt to control the LEGO Mindstorm NXT.
FantomTalk is simple NXT terminal program based on the Fantom API, provided by LEGO. FantomTalk
supports all documented ―Direct Command‖ communication between a Windows PC and a single NXT via
Bluetooth or USB.
Below is a portion of the readme file:
FantomTalk LEGO Mindstorm NXT Terminal Program
Version 1.0, 12/2006, by Gregory Gutt. greg@mymailbox.org
Files in this package:
* Readme.txt (this file)
* FantomTalk.exe (Windows console executable program for FantomTalk)
* FantomTalk.cpp (C++ source code for FantomTalk)
* Mcontrol.rbt (NXT motor control program. See FAQs on usage)
* FT Screenshot.jpg (screenshot of FantomTalk)
What is FantomTalk? FantomTalk is simple NXT terminal program based on the Fantom API, provided by
LEGO. FantomTalk supports all documented ―Direct Command‖ communication between a Windows PC
and a single NXT via Bluetooth or USB. For reference see the LEGO documentation:
http://mindstorms.lego.com/Overview/NXTreme.aspx (in the Bluetooth developer‘s kit).
Instructions:
1) Unzip the FantomTalk package and place in an appropriate directory, or on your desktop.
2) Turn on one NXT. Connect a USB cable to your Windows PC (or enable Bluetooth). If you are using
Bluetooth, it is assumed that you have a compatible Bluetooth device and the windows drivers are
properly installed and configured. In either case it is assumed that you have installed your Mindstorm CD
on the computer you are using (various drivers are from this CD are required by FantomTalk).
3) Double click on the FantomTalk.exe program to execute.
Inputs to Fantom Talk are two byte sequences in Hex format (0-F). For example: 00 11; This example
requests the name of the currently running program on the NXT. Inputs can come in two forms: keyboard
or file. For keyboard entry, simply type in the byte sequence (separated by spaces), press enter and view
the response. (On my computer running Windows XP, up-arrow and down-arrow work for re-entering
previous commands). Here is another example that makes the NXT beep: 00 03 00 18 10 00; (Note the
semicolon terminator).
File inputs allow for remote control of FantomTalk from almost any other program. The idea is that there
are a lot of people that want to control their NXT, are able to understand the Direct Command
documentation but do not really know how to compile and use Fantom. By using FantomTalk in file mode
almost any program can communicate with the NXT by using simple text file ―mailboxes‖. The input
mailbox file is FTin.mbx
(FantomTalk responds with output mailbox file: FTout.mbx.) The input format is as described above, one
line of hex sequences. **A semicolon is required** at the end of the line in file mode (the semicolon is
optional for keyboard inputs). Once an input file has been read, it will be renamed FTin.old as a means of
―clearing‖ the inbox. FantomTalk
continuously scans its current directory for new FTin.mbx files.
There are three special hex codes that are parameters for FantomTalk.
1) FF - Terminate FantomTalk
2) F0 - Reset communication in Bluetooth Mode (USB is the default)
3) F1 - Reset communication in USB mode
Add starLikeShareShare with noteEmailAdd tags
Dec 22, 2006 2:37 PM
Advanced NXT-G Block Techniques - Part I
by guy
As promised, I will try to describe for you some ―advanced‖ features of NXTToolkit NXT-G block
coding. These features were either omitted from the documentation and examples or just wasn‘t put at all
due to lack of time and NI desire for clarity. In any case, these are ―unofficial‖ and thus ―unsupported‖ by
NI. What does that mean? It means that (a) NI uses these techniques a lot in the NXT-G blocks you have,
and (b) they may change the VIs at will without telling us… Anyway, till that happens, there are some very
useful tricks you can use to make impressive, smart and user friendly (i.e. Kids friendly) NXT-G Blocks.
So, the first question I‘ll answer is:
How to disable/enable a control if NXT-G diagram terminal is wired ?
Look at the following picture showing the diagram of the Config VI:
There are several simple steps which you should follow to make the necessary changes:
1. Increase the size of the SubVI Propery node at the left, and select ―Terminals[]‖ property for the new
element.
2. Add a VI called ―IsTerminalWired.vi‖. This VI resides in ―LabView\vi.lib\addons\NXTToolkit\Block
Templates\Support‖ directory. Recommended: copy the file into your Block directory, NI may
change/remove it in future versions.
3. Wire the Terms[] output and create a constant string with the label of the control/indicator in the
Implementation VI you want to check if wired.
4. Right click the control in the Config front panel, select ―Create/Propery Node‖ from the popup menu.
5. Move the new propery node, change it to ―Disabled‖ and set it to Write mode (again, by right clicking on
it).
6. Wire the ―Disable if Wired‖ terminal of IsTerminalWired to the Disabled propery node.
That‘s all, folks! A very useful trick, which is used extensively in standard NXT-G blocks.
Add starLikeShareShare with noteEmailAdd tags
Dec 21, 2006 11:37 AM
NBC/NXC new beta
by john
Beta 15 of NBC was released yesterday morning for Linux, Mac OSX, and Win32 platforms. In this beta
there are literally hundreds of new NBC API macros (~250) defined in NXTDefs.h. Wrapper macros for
all the drawing system functions are now available (PointOut, RectOut, LineOut, CircleOut, GraphicOut)
as well as IOMap-based wrapper macros for drawing directly to normal and popup screen memory.
Also available are several macros which allow direct access to the High Speed input and output buffers,
the USB input, output, and poll buffers, the Low Speed input and output buffers, and the Bluetooth input
and output buffers. New macros have been added which provide full access to the 30 element Bluetooth
Device Table as well as the 4 element Bluetooth Connection table and Brick Data information.
New NBC opcodes have been added to the compiler (strindex, strreplace, strlen, shl, and shr). There is
new support for compile-time checking of variable sizes (via sizeof and compchk operations).
NXC has a number of new API functions, including several for string variable manipulation (with support
for strings of any size). The new string functions in b15 are NumToStr(value), StrCat(str1, str2, …, strN),
SubStr(str, idx, len), StrReplace(str, idx, newStr), StrToNum(str), StrLen(str), and StrIndex(str, idx).
http://bricxcc.sourceforge.net/nbc/
BricxCC has also been updated to support the expanded NXC and NBC APIs. The latest test release is
available from the main BricxCC page in the NXT News section.
Add starLikeShareShare with noteEmailAdd tags
Dec 20, 2006 12:37 PM
PSP-Nx PS2 Controller Block version 1.1
by guy
An updated version (v. 1.1) of my NXT-G block for mindsensors.com PSP-Nx PS2 controller interface for
mindstorms NXT. The block allows reading 4 analog joystick values scaled between -100 and +100, as
well as read the state of one of 16 buttons on the PS2 controller.
Installation:
1. Download the block here, extract the files on your local machine
2. Open NXT-G ―Block Import and Export‖ wizard (you must have the Dynamic Block Update installed)
3. Select the directory you extracted the PSP-Nx Block files to. You should see ―PSP-Nx PS2 Controller‖
block (version 1.1) available to install
4. Select ―Sensor‖ to add the new block to the Sensor Palette, and press Import
5. Answer ―Yes‖ to any ―Replace ….‖ popup that might show up
Revision History:
v 1.0 - First release
v 1.1 - Fixes a bug in the Buttons control, changes button wire values
to 0..15 instead of 1..16 as in v. 1.0.
As allways, I‘ll be happy to get feedback on this new NXT-G block. There is a dedicated topic in our
forums related to this release, or you can email me at guy@nxtasy.org.
Add starLikeShareShare with noteEmailAdd tags
Dec 18, 2006 8:37 AM
LEGO plays hidden camera with the NXT
by dave
LEGO has put out two marketing videos (Robot Power and Robot Attack) where they placed 2 NXT robot
demos and a hidden camera to record people‘s reactions… Have a look for a good laugh….
Direct Link: http://5×5m.com/files/mindstorms/
Add starLikeShareShare with noteEmailAdd tags
Dec 17, 2006 7:37 AM
Array Block v1.0 beta version
by guy
I‘ve uploaded here my NXT-G ―Array Block‖ directory. It is fully functional, but lacks any documentation at
present. It uses Text wires to pass array data (NXT-G does not support array wires at present) as ―binary
string‖. The array elements are numbered 1,2,3,… A value 0 in the Position control reads the last element
or writes to the next free element. Negative values can be used to start counting from the end of the array
(i.e. reading from Position -2 reads the one before last element etc.). Padding and resizing is done
automatically in Write mode when Position is out of bounds. A negative Size value in Create/resize mode
means adding/removing elements from the beginning of the array, rather then the end (positive Size
value).
I‘ve used some nice NXT-G Blocking techniques in this Block, some of them use undocumented toolkit
functions and/or LabView functions. These will be reviewed in an upcoming post.
Feel free to download and test it, and I‘ll be happy for any feedback (good or bad..) by
email to guy@nxtasy.org.
Add starLikeShareShare with noteEmailAdd tags
Dec 17, 2006 2:37 AM
Feed Me! Feed Me! Feed Me!
by sivan
What can I say? This hungry little fellow is a very picky eater. He is very hungry. If you don‘t feed him
often, he demands food. But when you feed him, he says that the food is disgusting and spits it out.
If you are looking for a compact robot with a strong personality, then you have found your match.
More details and a video are available.
Add starLikeShareShare with noteEmailAdd tags
Dec 16, 2006 11:37 PM
DynaTrax - What to do with those Cool Technic snowmobile tracks
by dave
Sometimes my robot building ideas are spurred by nothing more than wanting to make use of one or
more cool items that I get from time-to-time. In this case it‘s two - tread tracks that can be had if you own
the Technic Snowmobile (8272) and a TechnoStuff Tilt/Accel Sensor. I was fortunate to have received a
huge bag (a few hundred segments along with cog wheels) of the new tread tracks a while back and
begun playing with them to see how they compare to their smaller black Technic counterparts.
I like these ones better as they are larger (more suited to the size of robots and Technic creations I build)
and stronger - they dont come apart as easy. They also have pin holes in them to boot, so the sky is the
limit if you want to expand the width of the tracks using pins and beams, or technic plates. Imagine the
possibilities!
So, what do you do with a load of these tracks? Build a robot that uses almost all of them - DynaTrax.
This bot is not so much practical as it is just cool (at least I think it is….). I also thought it would be cool to
make the tread carriers dynamically expand and contract and shift the tread length with a 3rd remote
channel. You can also use the tilt sensor to detect slope and dynamically change the tread length to
suite… Find out more and watch a video at www.astolfo.com.
Add starLikeShareShare with noteEmailAdd tags
Dec 14, 2006 12:36 AM
Not eXactly C
by john
Announcing Not eXactly C (NXC), a C-like programming language for the standard NXT firmware. Not
eXactly C is built into the latest NBC compiler. If the source code file has a .nxc extension, then NBC
processes the code using the NXC parser before compiling the resulting NBC assembly code. NXC is the
only C-like programming solution available on Win32, Mac OSX, and Linux platforms.
http://bricxcc.sourceforge.net/nbc/
The latest test release of BricxCC also features additional support for the NXC language.
http://bricxcc.sourceforge.net/test_release.zip
Some of the features already present in NXC are:
- string variables and string literals with support for concatenation.
- while, do-while, if/else, repeat, and for loop programming constructs.
- asm block statement for writing NBC code within NXC.
- Lots of API functions for drawing, reading sensors, controlling motors, button state, etc. (More are on the
way)
Add starLikeShareShare with noteEmailAdd tags
Dec 13, 2006 8:37 AM
Now Available - Microsoft Robotics Studio v1.0
by eric
Microsoft has released the first version of Robotics Studio!
New since November‘s CTP:
Security Support
Security is now fully implemented and turned on by default. It is fully functional for HTTP and TCP
transports.
Simulation Scenario Editing
We have added an interface for editing entities and creating scenarios scenes (configurations) directly
from the Visual Simulation Environment. Now you can easily select, reposition, rotate, or add entities.
More Documentation and Tutorials
We‘ve revised and added more documentation. We‘ve also added some new tutorials, including tutorial
demonstrating a fully distributed application and a Visual Programming Language tutorial that
demonstrates how to use it to program simulated robots.
Visual Programming Language Configuration of Services
You can now configure the services you use in VPL directly or by using another service. This is in
addition to using manifests. VPL now enables you to compile your project and any related, user-defined
activities as services. This means you can create your own add-on services for use with VPL or other
programming languages. An option even enables you to generate a C# project.
Services Improvements
We improved a lot of our sample services and their XSLTs.
Add starLikeShareShare with noteEmailAdd tags
Dec 13, 2006 2:37 AM
01/01/07
by eric
openNXT - Can‘t say much now, but this will be huge.
Add starLikeShareShare with noteEmailAdd tags
Dec 13, 2006 2:37 AM
Power Users Behold!
by eric
I‘m over in San Fran this week, so I apologize for getting up to speed on today‘s news so late. If you
haven‘theard, LEGO Systems is offering a wonderful promotion stateside!
On the fence about whether to get your very own NXT? Or considering adding a second kit to your
collection? Our friends at Energizer are helping us deliver a holiday bonus for MINDSTORMS NXT
buyers. Visit www.nxtpowerpack.com to see details of a special offer, running now through December 31,
2006, where you can get an exclusive NXT Power Pack – a light sensor, touch sensor and 8-pack of
Energizer e2 Lithium AA batteries (a $50 total value) – for free with proof of purchase of a MINDSTORMS
NXT unit between December 1 and December 31, 2006 from select retailers. Click here to get the details,
and Happy Holidays from your friends at LEGO Systems and Energizer!
[via LEGO Systems Inc.]
Add starLikeShareShare with noteEmailAdd tags
Dec 12, 2006 10:55 AM
Move over Lexus, make room for NXT
by eric
Popout
The Lexus Intelligent Park Assist system has been in the news quite a bit lately. Who wouldn‘t want a car
that parks itself? Well, inspired by this, a creative LEGO Mindstorms NXT builder has succeeded in
making his own self-parking robot.
It‘s a kind of robot-car done with LEGO mindstorms NXT elements that can automatically park itself if it
detects enough space between 2 objects. It has got an ultrasonic sensor that detects the length of free
spaces. Then, when it detects enough space, it makes the necessary movments to park. And when you
say ―GO!‖ it returns to the road.
See the video. He gives the ‗car‘ in front of him a little fender bender on the way out, but it‘s still very, very
cool!
[via TechEBlog]
Add starLikeShareShare with noteEmailAdd tags
Dec 12, 2006 10:55 AM
BrickFest PDX 2007 - Open Pre-Registration
by eric
Pre-registration is now available for next year‘s BrickFest PDX.
Add starLikeShareShare with noteEmailAdd tags
Dec 11, 2006 9:56 AM
The Firmware Sources have been Released
by sivan
The source code of the NXT‘s firmware has been released. Version 1.04 of the firmware was also
released in binary form for updating your NXT brick. It appears that the source of the firmware includes all
the sources for the main ARM processor and for the ATmega processor, but not the NXT-specific code
that runs on the Bluetooth module. Rasmus Pedersen has released patches that allow the firmware to be
built using GCC.
Add starLikeShareShare with noteEmailAdd tags
Dec 7, 2006 4:50 PM
Hi-Res Video of DTU 2-NXT Demo
by eric
As an update to news from earlier today, a higher resolution video of the DTU 2-NXT demo is
now available.
[via Multi-Agent Robotics]
Add starLikeShareShare with noteEmailAdd tags
Dec 7, 2006 8:50 AM
HiTechnic Compass Block v. 1.1
by guy
For those who have the HiTechnic Compass sensor - there was a bug in the ―Relative Mode‖ logic output
terminal which I reported to HiTechnic a week ago, and they have quickly fixed it and posted a new
block version (v. 1.1) on their download page. If you are using the compass sensor from HiTechnic I
advise you to download the new block, and use the block import wizard (part of the Dynamic Palette
update) to replace the existing one.
Add starLikeShareShare with noteEmailAdd tags
Dec 7, 2006 8:50 AM
LEGO Mindstorms NXT Synchro Drive
by eric
Here‘s a video of the running, and subsequent disassembly, of a LEGO Mindstorms NXT synchro drive.
I have been working on creating a new Synchro Drive for the turntable that comes with the Lego
Mindstorms NXT kit. I have the basics worked out but I need to refine it a bit so I de-constructed it on
video so I can start over.
[via Robot Thoughts]
Add starLikeShareShare with noteEmailAdd tags
Dec 7, 2006 6:50 AM
Another Demo of Two NXTs in Action
by guy
Here‘s another video demonstration of two NXTs in action, but unfortunately filmed with a low resolution.
From the description provided, each robot removes his respective objects from the LEGO grid.
This demonstration is part of a student project at the Technical University of Denmark and has the
following goals:
Two teams, red and blue, of modified tribot agents are collaborate in removing a number of blue and red
items in a closed world. Only red team tribots can remove up red items, and the blue items can only be
removed up by the blue team. If a tribot encounters an item which it is not permitted to remove, it must
communicate the finding to the other tribots.
The site has been added to our blogroll.
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2006 7:49 PM
NXT Poker Machine
by adam
In an effort to learn more about NeXT Byte Codes I developed a simple poker machine for the NXT Brick.
The program gives you one hundred dollars to start and lets you alter bets with the bricks buttons.
Winning combinations are 4 of a kind, 3 of a kind, 2 pair and straights (straights must appear in order). My
original idea was to create an old leaver style of poker machine and I will release it if people seem
interested. This project helped me to further understand the implementation of subroutines, threads,
graphical syscall and array handling with NeXT Byte Codes. I would encourage learners of NeXT Byte
Codes to develop their own poker machine, it is very worth while.
I am providing a NXT Poker Machine file with the program and graphics so you can have a look, I will also
provide the source code to people that are interested.
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2006 4:50 PM
LEGO Mindstorms NXT — The Mayan Adventure
by eric
Our good buddy Jim Kelly over at The NXT Step has announced availability of his new book ‗LEGO
Mindstorms NXT — The Mayan Adventure‘. Buy the book now from Amazon and Barnes & Noble!
LEGO Mindstorms NXT: The Mayan Adventure presents a multipart fictional story as the premise for
introducing and detailing a unique robot. The story‘s main character, Max, is on an archaeological
expedition with his uncle in the jungles of Guatemala to investigate a newly discovered Mayan pyramid.
During the expedition, the team encounters various problems. And each problem is solved with the help
of a unique robot that Max creates.
Following each chapter in which a new problem is introduced is a ―theory‖ chapter that discusses the
concepts and provides the programming knowledge you need for creating the robot. The robot ―solution‖
chapter ultimately follows. Over the course of the book, you‘ll follow along as Max and the expedition
team use the Lego Mindstorms NXT kit to overcome obstacles and move deeper into the Mayan pyramid.
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2006 11:50 AM
NXT-G Blocks from Steve Hassenplug
by eric
Steve Hassenplug has posted in our forums that he has uploaded several NXT-G blocks that he created
with the LabVIEW Toolkit. You can find these blocks on the Team Hassenplug site. Make sure you have
the Dynamic Block update installed.
Line Following block
This block should be placed in a loop, and will cause drive the motors at the speed specified, so the robot
can follow the edge of a line, with a single light sensor. My tests show this single block will execute about
2 to 3 times as fast as the same code in NXT-G.
Display Number block
I made this block as a debugging tool. It combines several blocks that (due to program limitations) can not
be compiled into a My Block. The block takes a line number, a caption, and a number as input. The
Caption and Number are displayed on the given line on the screen. This block requires the ―Display
Performance‖ block be installed, in order to work.
Simple Array block
The array block is a repackaged sub-block. It will allow you to Clear the array, Add values, and Get
values given the index.
Acceleration Sensor block
This is the first block I made. The Configuration panel is not complete. It works with one of the prototype
acceleration sensors from Hi-Technic. It has outputs for X, Y & Z. It can not be used as a loop block
condition, because I didn‘t finish that part.
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2006 10:50 AM
A Tale of Two TriBots
by guy
My local LEGO educational distributor (Robotec Technologies) asked me to create an interesting NXT
demonstration for an NIDays exhibition. The end product was a 2 NXT demonstration using slightly
modified TriBots which communicate via Bluetooth (BT) and using a combination of ultrasound (US),
motor encoders and two HiTechnic compass sensors. The first TriBot finds and captures aluminum can,
and then sends a message to the other TriBot, which in turn finds it, aligns the two iteratively by
measuring azimuths using compass, and finally pass the can between the two. All programming was
done using NXT-G.
A video of the whole process can be found here on YouTube. I‘ll put more details and programs
on NXTLOGsoon.
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2006 10:50 AM
NXTBrowser - Bluetooth Connectivity on an Intel Mac
by eric
Forum member, Spirou, has posted information on a new application that allows the browsing of the NXTFilesystem via Bluetooth from an Intel Mac.
Features:
1. displays battery status, available memory and firmware version
2. changeable brick name
3. upload multiple files to the NXT
4. download multiple files from the NXT
5. run / stop programs
6. play sound files
7. file filters
The Universal Binary is available for download. Provide comments to the forum post or directly
tocarstenm@mac.com.
Add starLikeShareShare with noteEmailAdd tags
Dec 6, 2006 10:50 AM
Brickworld 2007 Announced
by eric
A new AFoL event has been scheduled for next year in Chicago.
Here are the early details:
BrickJournal™, BrickStructures™, Team Hassenplug, Team Possible, Team B-squared and Fun Time
Technologies have joined forces and are pleased to announce Brickworld ‗07 to be held in Chicago.
Brickworld™ is a chance to showcase your creations right here in the Central Midwest. Chicago being the
third largest city in the U.S. naturally has a great deal to offer - including 3 Lego outlets. We are
strategically placing the Brickworld location in the suburb of Wheeling, IL just 30 minutes northwest of
downtown Chicago. Wheeling is conveniently located close to the expressway servicing O‘hare Airport
and is also half way between the 2 Lego outlets at Woodfield Mall and Northbrook Mall, each 15 minutes
away. The 3rd Lego store is located downtown Chicago 30 minutes away.
The event will be held at the brand new 5 star Westin Hotel & Convention Center. The main ballroom
offers 15,000 sq/ft and an additional 15,000 sq/ft around the ballrooms peripheral for small group
sessions, competitions, demonstrations, The Great Build (more about that later), marketplace, etc.
BrickWorld ‗07 will be held from June 21st - 24th 2007. We are excited to bring this show to the public
during a time of year when school is out and sunshine & good weather are in. The convention area will be
open for setup the afternoon of June 21st for early birds. We will have a closed AFOL exhibitor day on
Friday and public exhibition on Saturday, June 23rd and Sunday, June 24th. This June weekend is
reserved at the site for the next 3 years, reinforcing this event as the one event not to miss!
Want to have an exhibit on display and/or interested in attending? Please
visit http://www.brickworld.us/ for more updates as they become available.
Add starLikeShareShare with noteEmailAdd tags
Dec 5, 2006 5:49 PM
NI NXT Toolkit Official Forum
by guy
NI has an official forum for discussions regarding the new NXT toolkit for LabVIEW:
http://forums.ni.com/ni/board?board.id=beta18
Of course, you can still use NXTasy forums for discussions on the toolkit.
Add starLikeShareShare with noteEmailAdd tags
Dec 5, 2006 1:50 PM
NXT LabVIEW Toolkit DirectCommand VIs
by guy
When the Fantom driver was released, I was somewhat disappointed that LEGO released only a lowlevel interface. Indeed, within a few weeks several high-level wrappers were created by the community —
such as NXT#, iCommander, Ruby-NXT, SimpleNXT etc. Yet there was still no high-level VI library for
LabVIEW that allowed easy PC control over Bluetooth (BT) or USB.
Now, with the release of the NXT LabVIEW Toolkit from NI, this vacancy has been filled. The NXT Toolkit
has three major components: a set of VIs that can be compiled into NXT code and run on-brick, a set of
support VIs that allow creating new NXT-G Blocks, and a set of VI wrapping Fantom into higher-level
graphical programming library for NXT control on PC (and Mac).
As a first glance into the Toolkit‘s DirectCommand (DC) VIs library, let‘s look at a simple example:
This code plays a tone on a remote NXT. It first searches for an NXT with name ―NXT‖. Once found it
creates an ―NXTObject‖, needed for all other commands that interacts with the particular NXT unit. After
playing a tone, it destroys the NXTObject (as one allways should do) and exits. Notice how similar this is
to NXT-G and RoboLab programming (not very surprising, as both are based on LabVIEW…). Error
handling is done in the ―LabVIEW way‖, by passing Error data cluster from a VI ―error in‖ and out from an
―error out‖ threading the program. This error wires are useful not only to pass error codes, but they also
control program flow, since one block awaits the previous block to terminate based on the error wire. To
see this, let‘s look underneath the PlayTone VI:
As one can see, the actual ―action‖ is in the middle ―fantom direct‖ VI which call to the driver DLLs.
So, what VIs does the NXTToolkit DC library include? Here‘s a list of the VIs sorted by menus:
Connection
Find NXT
Scan for NXTs
Create NXTObject
Destroy NXTObject
Get NXT Info
Bluetooth Is Paired
Pair Bluetooth
Unpair Bluetooth
Input
Read Touch Sensor
Read Sound Sensor
Read Light Sensor
Read Ultrasound Sensor
DC.Read Sensor Value
Get Input Values
Set Input Mode and Type
Clear Input Value
Lowspeed Read
Lowspeed Write
Get Lowspeed Status
Output
Motor Unlimited
Motor Stop
Get Output Values
Set Output State
Reset Motor Position Sound
Play Sound File
Play Tone
Stop Sound File I/O
Download File
Upload File
Delete File
List Files
Defragment Files
BT Messages
Message Write
Read Message
Program Execution
Start Program
Stop Program
Get Current Program Name
Utilities
Keep Alive
Rename NXT
Get VISA resouce string
Get Battery Level
Get Device Info
Get Firmware Version
Advanced
Read IOMap
Write IOMap
The name of most VIs already explains their function. Furthermore, each VI has a fairly detailed ―Context
Help‖ (press Ctrl+H to see it) automatically shown when the mouse hovers over the VI.
What are the main advantages of using LabVIEW? Well, for starters, it is a simple to use graphical
programming language. The toolkit VIs come from the same source (National Instruments) that develops
NXT-G, so they probably know what they‘re doing. Furthermore, you have the full power of LabVIEW,
including all types of structures (loops, for loops, case switches etc.) and it is very easy to make
impressive user interfaces. LabVIEW has a rich collection of ―controls‖ like text boxes, dials, sliders,
listboxes etc. and is very easy to use after a relatively steep learing curve.
Where to get hold of a LabVIEW copy? This is indeed a difficult question at the present time. LabVIEW
Basic version and Full version are much too expansive for most NXT hobbyists. There is a Student
version, but this is not available to the genral audience. Personally, I hope NI plans to release some
―Mindstorms LabVIEW‖ version (possibly with more limited functionality then student version) and market
it through LEGO for the rest of us. The NI guys I talked to during the beta testing stages of the toolkit
promised I ―will not be disappointed‖ by their answer to this question, but didn‘t reveal it…
Add starLikeShareShare with noteEmailAdd tags
Dec 5, 2006 1:50 PM
NXT LabVIEW Toolkit Overview
by guy
Although the ―official‖ release is scheduled for next week, National Instruments (who developed NXT-G
and the firmware running on the NXT brick) ―leaked‖ to the NXT community that the toolkit is available
online as of today, December 5th, 2006. The LabVIEW Tookit for LEGO Mindstorms NXT is available
for download on NI website.
Being granted the privilege to be a member of the beta testing group, I was able to play around with some
of its functionalities over the past months. A scratch overview of the toolkit is described in this post.
Basically, the toolkit is comprised of three components Direct VIs
This is a set of LabVIEW blocks (termed VIs - Virtual Instruments in LabVIEW jargon) that encapsulate
direct Fantom driver calls. These VIs allow one to program LabVIEW user interfaces and diagrams that
control and monitor the NXT running on the Mac/PC. A separate post on these Direct VIs will be
published later today.
LabVIEW to NXT Compiler
This is actually the core of NXT-G. It allows one to compile LabVIEW diagrams into .RXE format (the
executable file format of NXT virtual machine, i.e. firmware), download/upload from NXT (with the aid of a
simple ―NXT Terminal‖) and ―Debug‖ a program running on the NXT by stepwise execution of diagram
blocks and monitoring wire values and panel indicators (a LabVIEW program is composed of a code ―diagram‖, and a user interface ―panel‖ which has ―controls‖ for input and ―indicators‖ for output). This tool
exposes (almost) the full strength of the LEGO firmware. It allows graphical and easy to use low-level
system calls, communication with digital sensors, IO maps access and much more. One can also use
some of LabVIEW program control structures (loops, case, flat sequence) which are only partially
available in NXT-G, use Arrays and Clusters (a Cluster is a ―record‖ containing several ―fields‖, like a row
in the phones book) etc. Another added value is the use of LabView environment, which is much more
―mature‖ programming environment then NXT-G. I‘ll devote a few posts in the coming weeks to describe
this part of the toolkit. Fairly extensive documentation is supplied with the toolkit, alltough we (beta
testers) had no knowledge of ―tutorial‖ programs available from NI.
NXT-G Block builder
The blocks in NXT-G are in fact a set of VIs. The toolkit allows one to make new blocks, which with the
aid of the allready released Dynamic Palette patch can be added to any of the NXT-G palettes. The toolkit
supplies a simple wizard that creates new blocks from several ―templates‖ (simple block, output block,
sensor block etc.). An NXT-G Block is comprised of three VIs - the Implementation VI (contains the
diagram that actually get compiled), a Config VI (whose panel is shown in the lower-left panel of NXT-G
when the block is selected) and a Draw VI (which create the block image in the NXT-G diagram). I‘ve
used the toolkit for making several new blocks, all of which will be released in ―beta‖ form in the next few
days, including an ―Array Variable‖ and ―Array Element‖ block (for manipulating numeric arrays in RAM
instead of on Flash as some MyBlocks available online do), and the PSP-Nx Block interfacing a PS2
controller announced earlier this week. Again, NI supplies some documentation explaining how to make
new blocks, alltough in this case much of the ―advanced‖ capabilities (like disabling a control when
terminal is wired, live sensor update, etc.) is left undocumented. I‘ll devote a few reviews on these
―Advanced NXT-G Block Development‖ aspects in the next weeks.
To summarize, the release of this toolkit marks a new era in NXT, and especially in the future prospects
of NXT-G. Expect to see a large number of applications and new blocks in the coming future! We at
NXTasy will try to cover these advances, as well as support the community in our forums.
Add starLikeShareShare with noteEmailAdd tags
Dec 5, 2006 10:50 AM
It‘s Here! NI LabVIEW Toolkit for LEGO Mindstorms NXT
by eric
National Instruments has just released the widely anticipated NI LabVIEW Toolkit for LEGO Mindstorms
NXT!Click the screenshot above for a closer look. Download and enjoy!
Per National Instruments:
Users including adults, students and secondary school and university educators can now can create and
download VIs to operate and control the MINDSTORMS NXT robotics platform. Third-party software and
hardware developers can also use the toolkit to create native blocks for MINDSTORMS NXT software.
Once a LabVIEW program has been compiled and downloaded to the NXT, the toolkit can be used to
interact with the NXT robot while a program is running. By dropping a LabVIEW control, the toolkit can
send data to the robot and influence the currently executing program. By dropping an indicator, the value
at that point in the program is sent back to the PC and viewed in a regular LabVIEW front panel.
Developers of third-party sensors and other hardware add-ons for MINDSTORMS NXT can use LabVIEW
to create native blocks that program and control their hardware for use in MINDSTORMS NXT software.
Add starLikeShareShare with noteEmailAdd tags
Dec 5, 2006 9:50 AM
Updated LDraw and LeoCAD Parts for NXT
by eric
Philo‘s home page has been updated with downloads to his latest LDraw and LeoCAD NXT parts
libraries.
LeoCAD
A few new parts, and several improved, thanks to the work of Kevin Clague and Daniele Benedettelli.
LDraw
A few new parts, and several improved, thanks to Kevin Clague‘s work.
[via TheNXTStep]
Add starLikeShareShare with noteEmailAdd tags
Dec 4, 2006 9:50 PM
NXT Second Life Video
by eric
Over the summer, Wired hosted an event in the virtual world of Second Life to kick off the LEGO Big
Robot on Campus series. The Media Factory has posted a video with highlights of what took place.
Add starLikeShareShare with noteEmailAdd tags
Dec 4, 2006 11:50 AM
TriBot Radar
by guy
Krystian Majewski has a website explaining how to use the TriBot ultrasound sensor to create a polar
―radar scan‖ of the environment around it.
Add starLikeShareShare with noteEmailAdd tags
Dec 2, 2006 11:44 AM
Wii Will Hack You?!
by eric
Word on the streets is that the Nintendo Wii is a blast to play. Its innovative wireless motion-sensing
controller (the Wiimote) is revolutionizing the video gaming experience.
Sure enough, hackers have been dissecting the hardware to reveal what lies beneath all the pretty plastic
as soon as they got their paws on the system. It seems Nintendo didn‘t disclose too many details about
the technology behind the Wiimote, so it was only recently discovered that it‘s actually a Bluetoothcompliant device capable of communicating with devices other than the Wii. Great news for us, wouldn‘t
you say!? Imagine wirelessly controlling the arms of your robot with the physical motions of your own
arms. Sure, we‘ve seen agesture-based application for the LEGO Mindstorms NXT, but this takes it to
another dimension — literally!
Do any of our readers own a Wii? Anybody up for the challenge of creating the first Wiimote NXT
application? I‘m sure the NXT community, and even the rest of the tech world, would be interested in
seeing it. Good luck!
Here are a few resources to get you started:
Wiimote Technical Guide
Video of Wiimote acceleration reading on a PC
Add starLikeShareShare with noteEmailAdd tags
Dec 2, 2006 10:44 AM
MS Robotics Studio Tutorial
by eric
Another informative article has been added to the Microsoft Robotics Studio site. They‘re definitely
stepping up documentation and resources as the official release nears. Check it out!
Microsoft Robotics Studio Runtime – An Introduction
The Microsoft Robotics Studio is a Windows-based environment for academic, hobbyist and commercial
developers to easily create robotics applications across a wide variety of hardware. The Microsoft
Robotics Studio Runtime is a lightweight runtime written for CLR 2.0 that provides support for creating,
hosting, and managing such applications.
Add starLikeShareShare with noteEmailAdd tags
Dec 2, 2006 9:44 AM
OnBrick PDA/PC Source Code Now Available
by eric
Source code is now available for OnBrick — a LEGO Mindstorms NXT remote control application that
runs on a PC or PDA.
undocumented, unsupported, open-source - use at own risk…
Download: onbrick_source.zip
Add starLikeShareShare with noteEmailAdd tags
Dec 2, 2006 9:44 AM
Vernier Analog Adapter for NXT — Early 2007
by eric
Back in August, Vernier Software & Technology posted several videos of LEGO Mindstorms NXT robots
built to demonstrate their sensors. This was made possible with a prototype adapter that we hear will
soon be available.
Most of these videos use prototypes of an adapter we are working on which allows all of the 40 or so
Vernier analog (BTA) sensors to be used with the NXT. We also are working on making special blocks in
the Mindstorms software for use with our sensors and an adapter. We hope to have an adapter
commercially available in early 2007.
Add starLikeShareShare with noteEmailAdd tags
Dec 1, 2006 4:44 PM
HiTechnic Compass Block
by guy
A message we got from HiTechnic:
A reminder to those who have the HiTechnic compass sensor - an NXT-G block for this sensor was
released, and can be downloaded on HiTechnic site. There is a free give away each month that will be
awarded to someone who downloads the block. The next prize is a color sensor.
Add starLikeShareShare with noteEmailAdd tags
Dec 1, 2006 3:44 PM
Remove Bad Wires
by guy
Some time ago Jasonking posted on our forums an NXT-G addon that cleans bad wires from your
diagram (these are the ugly black dotted lines you need to hunt sometimes in your program for it to
compile).
Setup Instructions:
Copy the file RemoveBadWires.llb to a directory engine/project under your NXT program directory. If this
directory does not exist, create it first. Restart NXT-G software. If you followed this correctly, you should
have under Tools menu an option ―Remove Bad Wires…‖.
Add starLikeShareShare with noteEmailAdd tags
Dec 1, 2006 2:44 PM
NXTasy Challenge 2 - ―NXT Triathlon‖
by guy
The NXTasy Challenge #2 is getting started! This time we have a programming only contest, which
requires you to build TriBot and use the test pad to complete three tasks. The exact details, rules, prizes
etc. will be published in the next few days, but I didn‘t want to disappoint our readers waiting for the
announcement.
So, here is the overview - write a program (in any language NXT-G, NBC, Robolab, LabView, RobotC
etc.) that moves the tribot from the ―START‖ mark on the pad, completing three rounds on the black line
(task #1 - line following), turns around and complete three rounds outside the line (task #2 - deadreckoning) and finally locates, aims and capture a target positioned somewhere in the middle of the pad
(task #3 - targeting).
I‘ll brief you on the exact details when I finialize them, and get answers from possible sponsors regarding
prizes. Till then - start planning!
Add starLikeShareShare with noteEmailAdd tags
Dec 1, 2006 10:44 AM
TECHNIC Treads
by guy
A good summary of market available treads by Brian Davis, with links to Bricklink where one can buy
them.
Add starLikeShareShare with noteEmailAdd tags
Dec 1, 2006 6:44 AM
PSP-Nx NXT-G Block Preview
by guy
How many blocks do you need to turn your NXT into a remote controlled car? three blocks (well, four if
you count the loop). Here‘s a screenshot of the program that does it. The first block is the PSP-Nx block
I‘m writing for mindsensors.com, which communicate over I2C with the PSP-Nx PS2 controller
interface by mindsensors.com. This new sensor block outputs the four analog joystick values scaled to
the range -100 to +100, and can also check the status of the many buttons in the PS2 controller. Of
course, it can be used within a Wait block, a Loop block or Case block, just like any other sensor block.
The block is planned to be released next month, when the NXTToolkit for LabView is announced.
Add starLikeShareShare with noteEmailAdd tags
Nov 30, 2006 2:44 PM
Download to File… in NXT-G
by guy
Jasonking posted on our forums an NXT-G addon to allow compilation of NXT-G programs to a file on the
Mac/PC, rather then the usual ―Compile and Download‖ option which downloads directly to the NXT brick.
Setup Instructions:
Copy the file DownloadToFile.llb to a directory engine/project under your NXT program directory. If this
directory does not exist, create it first. Restart NXT-G software. If you followed this correctly, you should
have under Tools menu an option ―Download to File…‖. Select it and the above window will open up.
Finally, choose the path to place the compiled file and press ―Download‖.
Add starLikeShareShare with noteEmailAdd tags
Nov 30, 2006 2:44 AM
Wanted - Legs!
by guy
Have you ever wondered what the best way is to make robots that move on multiple legs? Well, I have.
For an exploration into this subject, I am looking for other users‘ input — if you want to share with us your
implementation of legged NXT bot send some images (detailed enough for reconstruction)
to guy@nxtasy.org. I‘ll pick up the most elegant designs and put them in the article with your name.
Add starLikeShareShare with noteEmailAdd tags
Nov 29, 2006 12:13 PM
NBC Debugger for NXT
by eric
A new debugger has surfaced for NBC and the LEGO Mindstorms NXT. Check out the wealth of features!
Basic Features
integration with BricxCC; start/stop/restart; step into/over/out; single/multi thread debugging; show/walk
thread‘s call stack; watch/modify variables; debug logging; unlimited soft and hardcoded break points and
debugbreaks; copy to clipboard; optional periodical data collection during program execution; comm
status lights; NXT keep alive
Debug logging
simple/multi-segment debug log with numeric and string support
Source code integration
jump to definition of subroutine/thread/variable/label/macro/file in the project; show/jump to next
instruction; force continue anywhere; run to cursor; color coded soft/hard enabled/disabled breakpoints;
user selected font
Breakpoints
unlimited hard coded unconditional/conditional/counter type with optional reset, enable/disable at runtime; unlimited soft breakpoints add/remove/enable/disable at run time; 1 soft break point enabled per
subroutine; display location/type/hit count; enable all/disable all; reset hit count; jump to breakpoint;
add/remove/enable/disable breakpoint for source line at run time; copy to clipboard
Variable watch/modify
display/modify variable/array/cluster during execution/pause; hex/decimal base; display variable
name/type/value; display array type/length/values; display array as string; expand truncated lines in tooltip; unlimited embedded array/cluster dimensions; collapse/expand clusters/arrays; full collapse/expand; 3
modes show all variables/user selected variables/variables in currently executed section; copy to
clipboard
Thread and call stack
display location with subroutine/thread name/file name/line number; expand truncated lines in tool-tip;
expand threads call stack; display/walk call stack; click to jump to source code; copy to clipboard
[via nxtasy.org forums]
Add starLikeShareShare with noteEmailAdd tags
Nov 29, 2006 12:13 PM
Next Bytes Code 1.0.1.b12 Now Available
by eric
John Hansen has released an updated NBC beta. NBC allows users to program the LEGO Mindstorms
NXT using textual code with assembly language syntax.
This beta release introduces support for two new languages related to NBC. The NPG language is a very
simple 5 step declarative language for writing RPG (NXT Program) executables. NPG programs simple
list the 5 steps with compiler support for C++-style comments interspersed. Unlike the built-in NXT menu
system mechanism for writing NXT Programs which require alternating move and wait commands,
programs written using NPG can sequence the 5 commands in any order except that the EndStop and
EndLoop commands can only occur as the last step. See test.npg for a small sample. These programs
require the RPGReader.sys program on the NXT. This executable is 14kb in size but a replacement
version which nearly identical functionality will soon be available on the NBC site which is only ~2.5kb.
NBC also now supports a very early version of the NXC programming language. This language is a lot
like NQC syntax-wise. It is still in its infancy so it is subject to substantial change and improvement. The
NBC compiler converts the NXC code to NBC code and then compiles it as it would any other NBC
program. See test.nxc for a basic example.
The NXTDefs.h header file has been split into NXCDefs.h and NXTDefs.h. NBC programs should still
#include ―NXTDefs.h‖ but NXC programs should #include ―NXCDefs.h‖.
This release also fixes a problem with unix-style line endings which made it so that multiline macros
written on non-Windows platforms would not work correctly.
Add starLikeShareShare with noteEmailAdd tags
Nov 28, 2006 9:14 PM
Array Block for NXT
by adam
Hi everyone, my name is Adam Parkes. I‘m a new contributor to nxtasy.org. This is my first time working
with robots, I‘m a programmer normally, so I guess thats why most of my robots look really crummy. One
of the first things that I noticed in the NXT standard development language is that there wasn‘t
an array block . After a few quick minutes of thinking about how to implement one I developed a block
that handles reading and writing to a pseudo array of data. The reason I call it pseudo is that the block
mimics an array, in reality the data blocks may not be located right next to each other, not that it matters
much anyway for all intent and purpose it can be used exactly like an array. The block has one major
drawback, it is unable to be resized at runtime. This is due to the block being hard-coded to have the
exact number of data members needed in the array before compile time.
The Array Tutorial
I have provided a tutorial on how the block functions and how to make your own. Using a similar structure
you could implement an aggregate data type, e.g. classes or structs. If anyone wants a tutorial on how to
make an aggregate data structure with NXT just drop me an email.
Till NXTime.
Add starLikeShareShare with noteEmailAdd tags
Nov 28, 2006 4:25 AM
Controlling NXT from MathWorks MATLAB
by guy
Gregory Gutt has developed a software package to control the LEGO Mindstorm NXT using
Bluetooth, RealTermand MathWorks MATLAB software. MATLAB is a high-level language and interactive
environment that enables you to perform computationally intensive tasks faster than with traditional
programming languages such as C, C++, and Fortran. Gregory developed this for the George Mason
University Neural Engineering Laboratory.
You can download the readme.txt file here, and the whole package here.
Add starLikeShareShare with noteEmailAdd tags
Nov 27, 2006 1:25 AM
The LEGO Group Outsources Production
by rachel
In an effort to cut costs, the LEGO Group is moving its brick production out of Billund, Denmark, to
factories in Mexico and the Czech Republic. The number of jobs will drop from 2,500 to 1,600 by 2009.
The 30,000 8,600-inhabitant factory town has been the home of all LEGO operations since the toy
building brick company was founded in the 1940s (the airport was originally built by LEGO). Headquarters
and research operations will remain in Billund, as well as the LEGOLAND theme park.
[via About Geography]
Add starLikeShareShare with noteEmailAdd tags
Nov 26, 2006 5:24 PM
Unbelievable new High Score!
by guy
I had to watch the videos a few times to believe it, but I must confirm this new high score, 4 days only
from the deadline - and someone managed to throw the ball as far as 11 meters! This is almost twice the
distance of the previous high score, and certainly a hard challenge to overcome.
Once the deadline if over, I‘ll be adding a Challenges section to the main page, and describe in some
detail the different submissions received for challenge no. 1. The second challenge will begin at
December 1st, and will be a programming only mission using the TriBot design, and will require also the
test mat supplied with NXT retail set.
Add starLikeShareShare with noteEmailAdd tags
Nov 25, 2006 4:25 PM
Tip of The Day - Bluetooth Connection between 2 NXT‘s
by dave
Even after being an MDP and MCP for so many months, I am embarrassed to say that this is the first time
I have really dug into connecting two NXT‘s together via Bluetooth. I toyed around with it after receiving
my second NXT set, but never really did anything as I always had 2 robots on the go… After working on
my latest bot, I decided I was going to stray away from my standard autonomous robot building approach
and use another NXT as a remote. There are many others out there that have already done this - (BTW
Thx to Brian Davis for your help here).
After building both the host and remote apps to send / receive BT messages for the 2 NXT‘s I found that
values were simply not getting passed to the receiving NXT. At first I thought it was the code, but I
checked, and the messages were being sent to the correct mailbox numbers. I also checked the
connection which was the correct value (#1). But, this is where I made my mistake. I assumed that both
NXT units connected on the same BT port (I looked to the client NXT to get the port number). This is not
the case. In fact, the HOST showed the client on port #0 and the client showed the host on port #1. On
my host application, I had specified to send the messages out on port #1, but the BT connection was on
Port #0. Once I changed the software to send out on Connection #0, it worked fine.
So, if you are having a similar issue, be sure to verify the connection from each NXT unit. The software
you are writing for the host should use the same connection # that the NXT shows when viewing
connections on the LCD screen in the BT settings.
Add starLikeShareShare with noteEmailAdd tags
Nov 25, 2006 11:25 AM
NXT_Python 0.1 Now Available
by eric
A new development package has been released to control your LEGO Mindstorms NXT over Bluetooth.
NXT_Python is a package for controlling a LEGO NXT robot using the Python programming language. It
is available under the Free Software Foundation‘s GPL license. It has been developed on Fedora Core
(Linux), but it should work on Windows as well.
Thanks, Doug!
Add starLikeShareShare with noteEmailAdd tags
Nov 23, 2006 4:57 PM
1 Week till NXTasy Challenge Deadline
by guy
Just 1 week ‘till the end of our 1st Challenge - ―Throw Me!‖ ! For anyone who is still interesting in
submitting robots, hurry up and read the instructions in our forums. The winning robot will be awarded a
digital compass sensor courtesy of HiTechnic, and the best 5 get a 25% discount coupon from
mindsensors.com!
Add starLikeShareShare with noteEmailAdd tags
Nov 23, 2006 1:57 PM
Flexi-Cables from Mindsensors.com
by guy
Mindsensors.com announces a new product - a 4 pack set of NXT compatible cables of different lengths 20cm (1 cable), 35cm (2 cables) and 50cm (1 cable). More details and costs are available
athttp://www.mindsensors.com/.
Also, mindsensors.com have a Thanksgiving special sale at their website. They‘re offering 30% off any
purchase using coupon code BLACKFRIDAY and it‘s valid until 6:00 pm, Nov-24-2006.
Add starLikeShareShare with noteEmailAdd tags
Nov 23, 2006 11:57 AM
First Annual Thanksgiving RoboParade
by eric
Here‘s a video to the first Annual Thanksgiving Autonomous Robot Parade held at Lawrence Tech
University.
30 robotic floats created by grade students participated in the first event. Robots were made by 27 Lego
RCXs, 2 Lego NXTs, and one Boe-Bot.
Add starLikeShareShare with noteEmailAdd tags
Nov 22, 2006 7:57 AM
NXT Trike
by guy
John Brost published on NXTLOG this beautiful trike design, built around the NXT with large wheels and
remotely controlled via another NXT using Bluetooth. Some more pictures are on NXTLOG. There‘s also
a movie. Great work John! I hope you plan to make building instructions for this…
Add starLikeShareShare with noteEmailAdd tags
Nov 18, 2006 1:34 AM
Dynamic Blocks & Legacy Support
by eric
The LEGO support page has been updated with downloads for dynamic blocks, mini blocks, and RCX
support.
Dynamic Block Update
The Dynamic Block Update allows the MINDSTORMS NXT Software to import new blocks to the
Complete palette. These blocks include the Mini Blocks, the Legacy Blocks, 3rd party sensor blocks or
any other blocks developed using the LabVIEW Toolkit for LEGO MINDSTORMS NXT.
Mini Block Library
The Mini Block Library adds 4 new blocks to the Action palette: Mini Move, Mini Motor, Mini Display and
Mini Sound. These blocks are very similar to the blocks that were in the 1.0 release of MINDSTORMS
Software, but they have been optimized to make smaller programs on the NXT.
Legacy Block Library
The Legacy Block library adds support for RCX actions and sensors to the LEGO MINDSTORMS NXT
Software. There is a new block for the RCX motor, lamp, touch sensor, light sensor, rotation sensor and
temperature sensor. NOTE: In order to connect the RCX sensors to the NXT, a converter cable is
required.
[via The NXT Step]
Add starLikeShareShare with noteEmailAdd tags
Nov 16, 2006 2:34 PM
The Future of NXTasy Challenges
by guy
With the coming deadline of our first NXTasy challenge (December 1st, if anyone has forgotten), we
would like to hear your opinions regarding the future of these challenges. We had very little participation
so far (if anyone is waiting ‘til the last day - don‘t wait! You may still be surprised by others who do the
same and have no time to improve your robots), which raises the question if we should go on with the
second NXTasy challenge (which was meant to be a programming-only challenge using Tribot). I thank
again HiTechnic for contributing a Compass sensor for the winner, and mindsensors.com who promised 5
discount coupons for the top 5.
Any comment/suggestion/remark will be welcome as comments to this post or by email
tochallenge@nxtasy.org
Add starLikeShareShare with noteEmailAdd tags
Nov 15, 2006 4:34 PM
NXT Walker
by guy
Isogawa Yoshihito published these instructions showing construction details of his NXT Walker.
Add starLikeShareShare with noteEmailAdd tags
Nov 14, 2006 10:34 AM
Building Knowledge With LEGO
by eric
A local news site features a closer look at a FIRST LEGO League team competing in a tournament at
James Madison University this Saturday.
In some respects, Chase Conley‘s LEGO robot looked like any other creature built by an imaginative
child.
Gray, black and yellow LEGO pieces clasped together to form what resembled an Army tank.
But this robot wasn‘t a toy.
At about 6 inches long and 4 inches tall, the robot had an arm that extended from its right side and ended
in pinchers. It had sensors that responded to light and touch, and in its middle sat an NXT controller, the
brains of the operation.
The robot was programmed to perform a very specific set of missions.
Add starLikeShareShare with noteEmailAdd tags
Nov 13, 2006 10:34 PM
Dynamic Block Update
by dave
As one of the LEGO Mindstorms Community Partner‘s (MCP), we sometimes get wind of new things in
the pipeline from LEGO. Well, for those of you who are fans of NXT-G a new feature is expected out
shortly - Dynamic Block Update. Details are sketchy right now, but it will likely come via software update
for NXT-G. More:
Description
Windows/Mac
The Dynamic Block Update allows the MINDSTORMS NXT Software to import new blocks to the
Complete palette. These blocks include the Mini Blocks, the Legacy Blocks, 3rd party sensor blocks or
any other blocks developed using the LabVIEW Toolkit for LEGO MINDSTORMS NXT.
Expect to see details on the LEGO Mindstorms site within the next few days.
Add starLikeShareShare with noteEmailAdd tags
Nov 11, 2006 5:34 AM
nxtC, a C-like language for the NXT (with an IDE)
by sivan
Phillip van Eeden developed a C-like language for the NXT, along with an IDE, called nxtC.
I only had a brief chance to try it, but here is Phillip‘s list of the main features of nxtC:








Functions can be multilevel. There can be functions in functions (like Delphi).
Library of functions that only compile functions that are used. The library can be precompiled and encrypted.
Classes with inheritance. Classes can be multilevel (classes in classes).
NBC assembler functions can be directly used in a function.
Fantom driver functions are integrated in the IDE and can be programmed from the PC.
Bluetooth implementation for downloading and communication with the brick.
More than 10 program flow structures and programming syntax enhancements.
The compiler translates nxtC programs (text files) into NBC files (*.nbc) - to be compiler by
nbc.exe
Add starLikeShareShare with noteEmailAdd tags
Nov 8, 2006 11:54 AM
News You Can Use
by rachel
The LEGO Mindstorms NXT community is growing! It‘s wonderful to see new sites with great content
popping up left and right.
We work hard to dig up stories that we think you‘ll enjoy. See something you like on nxtasy.org? Feel free
to post it on your own blog or website. We are all for viral news as it is an excellent way to spread the
word on the latest and greatest thing to hit our community. All we ask is that you make sure you link to
our original post.
If you‘re new to blogging and unsure of how to format it, here are a few ways to do it:
- Include the link in the body of your post:
Just saw this great robot on nxtasy.org!
- Or just add a line at the end:
[Via nxtasy.org]
Thanks! And keep up the good work!
Rachel
nxtasy.org Editor
Add starLikeShareShare with noteEmailAdd tags
Nov 8, 2006 10:48 AM
RoboRealm Machine Vision for NXT
by eric
The talented folks at RoboRealm have added a module that provides machine vision capabilities to the
LEGO Mindstorms NXT. This free software allows you to control your robots from a PC over a Bluetooth
connection, and with a wireless camera, a digitizer, and a little VBScript, gives you the ability to
incorporate machine vision to do some pretty cool things.
To demonstrate, RoboRealm hooked up a wireless camera to a TriBot and programmed it to use machine
vision to help find a blue ball, pick it up, and move it to an orange cone. Take a look at the videos below
to see the robot in action. A comprehensive tutorial is also available to get you started.
Video of robot view:
Video of 3rd-person perspective:
Add starLikeShareShare with noteEmailAdd tags
Nov 8, 2006 9:48 AM
MS Robotics Studio November 2006 CTP Released
by eric
Microsoft Robotics Studio sees an updated community technology preview for November. This release
brings new security support, visual programming language improvements, simulation improvements (like
the new wireframe view), a new deployment tool, and service improvments.
While you will see some significant new features in this preview, from here we will be winding down and
focused on finalizing what we have for version 1. If you encounter any significant issues after installing
this latest preview, please post something to us in our newsgroup. Feature requests are still welcome, but
we may save these for our next release.
Add starLikeShareShare with noteEmailAdd tags
Nov 6, 2006 8:54 AM
NXT Mobile Application Now Available!
by eric
A few weeks ago, nxtasy.org reported that a new download would be surfacing soon from the LEGO site
for interfacing your mobile device with the Mindstorms NXT. Well, the time has come! The NXT Mobile
Application is now here!
Here‘s a brief summary of basic operation:
Remote Control
This enables you to control two motors on the NXT. Use the joystick/command wheel on your phone to go
forward, backwards, stop – or you can choose to control one motor at the time. If your NXT model have
wheels (like the Tribot) it will be much like a remote controlled car.
Program Control
This mode enables you to control any of the programs on your NXT. First select the program you want to
control and then you can send command messages to your NXT by pressing the numeric keys on your
phone. What the NXT does when you press the keys depends entirely on your program.
Collected Data
If the NXT can make your phone take photos, this is where you can find them. Have you made a program
that sends data to your phone, this is where you can find it as well, for instance be readings from the
sensors.
Add starLikeShareShare with noteEmailAdd tags
Nov 6, 2006 8:54 AM
Razix‘s NXT Director Updated
by eric
NXT Director, a remote control application for Palm OS mobile devices, has been recently updated with
new features.
Per Razix:
More functions added. Telemetry of sound, light and touch sensors now online. More to come when I
have some time. This addition ate up my whole weekend!
Add starLikeShareShare with noteEmailAdd tags
Nov 6, 2006 8:54 AM
NXT in TIME
by eric
The LEGO Mindstorms NXT makes it to TIME Magazine this week in a brief review — probably due to its
popularity this holiday season.
I‘ll never forget that Christmas morning in 1984 when I got the mother of all Lego sets, the medieval
castle, and how happy I was snapping the colored pieces together to build it higher and higher. So it was
a special treat for me to open up the latest iteration of the Lego franchise, a sophisticated system of
sensors, motors and computer controllers called Lego Mindstorms NXT.
Add starLikeShareShare with noteEmailAdd tags
Nov 6, 2006 12:54 AM
BrickFest PDX 2007
by eric
A few years ago, the first BrickFest outside of the Washington, D.C. area was held in Portland, OR. Due
to popular demand, it looks like another is in the works to be held March 30 - April 1!
In the spirit of the positive feedback we have received we are thinking of this event sort of like a ―reunion‖;
we feel that the family or class reunion best captures the hullabaloo of last time, that we would like to
extend to all AFOLs! In addition to several classrooms for sessions at the Oregon Convention Center we
have 30,000 square feet of exhibit hall, so there is plenty of SPACE for exhibits and other activities.
Keep your eyes open for more information about registration and public day.
Miss out on this year‘s BrickFest? See some of nxtasy.org‘s coverage and videos!
[via BrickFest]
Add starLikeShareShare with noteEmailAdd tags
Nov 4, 2006 12:54 PM
Shifting Gears: A NXT Vehicle with a Transmission
by sivan
This creation is really more about modelling cars than about robotics. One NXT motor drives the car, a
second NXT motor steers it, and a third controls the transmission. Apart from the NXT brick, the motors,
and the touch sensor, the parts are not from the NXT kit. Most of the parts are from Lego set 8421, a
large Technic crane. Thefull description of this vehicle contains a video and many more images. Don‘t
miss the video!
Add starLikeShareShare with noteEmailAdd tags
Nov 4, 2006 8:54 AM
ruby-nxt 0.8.1 Now Available
by eric
Tony Buser‘s ruby-nxt gets an update to version 0.8.1. ruby-nxt is an interface written in the Ruby
programming language that allows Bluetooth control of the LEGO Mindstorms NXT.
Not much new in this release. Mainly a few fixes to allow ruby-nxt to be packaged into a gem, finally! You
also might find the examples/drb_server.rb interesting - a simple DRb server that keeps the bluetooth
connection alive.
[via Juju]
Add starLikeShareShare with noteEmailAdd tags
Nov 3, 2006 2:54 PM
roboDNA Dashboard Designer 2007 Beta
by guy
A new commercial product supporting NXT drive-by-wire was brought to our attention by Lou Morris from
roboDNA.com. The software package ―roboDNA Dashboard Designer 2007 Beta‖ (final version will cost
$89 for non-commercial use) allows users to easily and interactively build impressive dashboards (i.e.
user interfaces) to control and monitor NXT robots (as well as other robotic platforms).
To support as many robotic platforms as possible, the software is built in a layered fashion:
1. Dashboard and user interface: Gauges, Sliders, Buttons, Indicators etc.
2. Communication protocol: LEGO, modbus, roboDNA Double Helix, custom
3. Communication hardware: Serial, Bluetooth, USB, Ethernet
4. Robotic platform definitions: Input registers, Output registers, Command types
To get going with the NXT, a default database was created using the app‘s DB Builder, which represents
all of the input and output registers supported by the NXT‘s default firmware. Examples of ‗Input
Registers‘ are:
- Motor 1 Target Speed Input Register
- Loudspeaker Tone Frequency
- Loudspeaker Tone Duration
Examples of ‗Output Registers‘ are:
- Motor 1 Encoder Count
- Battery Level
- Bumper On/Off
Once all of the registers were entered in the Database, the command types were added. These
commands communicate with the NXT, sending or receiving commands and/or register values. At this
point, it becomes easy to drag and drop registers onto various Dashboard Controls such as gauges,
sliders, buttons and indicators. The dashboard controls are directly linked to the register values. So if you
change the value of a register, the gauges update and vise versa - if you click on a dashboard button, the
register updates. For example, add a button and drag the Port0 Register onto it. Then when this button is
clicked, a lamp connected to port 0 on the NXT goes on and off. Similarly moving a slider connected to
the tone frequency register changes the frequency being generated on the NXT.
Some of the other features of ―roboDNA Dashboard Designer 2007 Beta‖ are:
- Because the Dashboard, Controls and Registers can be inter-linked, there are many possibilities for the
dashboard‘s design. For example, there can be more than one button linked to the same register. Or you
can link a knob, and a slider to the same register.
- Multiple dashboards can be open at once, so they can be specific for different robot operation tasks.
- Gauge fonts, sizes, colors, needle sized, range types, min/max values and warning/alarm setpoints are
some examples of customizable properties.
- Dashboard Designer is speech enabled, so the Dashboard controls can have speech notifications. For
example speech notifications are played when the battery levels hit the warning setpoint, and then again
at the alarm setpoint.
- There is an interesting ‗Tivo‘ feature: Basically, you hit ‗record‘, and operate the robot, as all of the
‗moves‘ and sensor/telemetry values are being recorded. Each recorded session can be played back in
simulation mode, which moves the gauges accordingly, or in Piloted mode which actually drives the robot
as it is playing back. The playback in piloted mode is not precise to the millimeter, as the wheel moves
are sometimes milliseconds apart, so perfect squares/paths cannot easily be played back.
- There is an additional logging feature, for logging raw packet data, as well as request/response
commands/registers sent for a session. There is a screen which shows the raw request and response
packet payloads, as they are being sent.
- A neat ‗unexpected‘ feature is the ability to request telemetry data as the NXT is running a user program
or in autonomous mode. It can respond to requests as it is running it‘s code without interrupting it, so you
can setup one dashboard to simultaneously show the battery levels of 20 NXTs as they are running, or
show the motor encoder values and chart, etc. ( good for referee at competition ). For example the
dashboard could monitor the rear bumper on 20 NXTs, and set off a speech notification for the first hit.
roboDNA.com is currently signing up Beta Testers for ―roboDNA Dashboard Designer 2007 Beta‖. You
can sign up on their web site http://www.robodna.com/.
Add starLikeShareShare with noteEmailAdd tags
Nov 3, 2006 10:54 AM
Meet the NXTMECH
by eric
Forum member, SickBrick, has posted information about his newest LEGO Mindstorms NXT robot called
NXTMECH — a biped using two intelligent bricks and six (thanks Edwin) motors. Very cool. Pictures and
videoavailable!
I was never really a fan of chicken walkers, but hey, they‘re a lot easier to build than humanoid bipeds.
the mechanics are pretty simple. The motor is pretty much directly connected to the joint at the hips. at
the knees they‘re connected to one gear and at the ankle its a worm gear with some gear reduction. and
then somehow just get them nxt bricks on there - which i should modify so you can add the rechargeable
batteries. but its ok.
programming on the other hand, is nothing short of a college level trial and error, mathematics and
physics set of equations. getting it to walk will take me some time. on one of my videos, i got it to stand up
and the other to lean left and right..without falling over. (which has happened many times already)
Add starLikeShareShare with noteEmailAdd tags
Nov 3, 2006 2:54 AM
Next Bytes Code 1.0.1 b11 Available
by eric
John Hansen has released an updated NBC beta.
This beta release has a number of additional macros in NXTDefs.h for simplifying several aspects of
programming the NXT.
NBC allows users to program the LEGO Mindstorms NXT using textual code with assembly language
syntax. A few new tutorials are now available, as well.
Add starLikeShareShare with noteEmailAdd tags
Nov 3, 2006 2:54 AM
LEGO Mindstorms NXT Education Software
by eric
Anthony Dhanendran from Computeract!ve reviews the LEGO Mindstorms NXT education kit.
Good points
* Great way to learn about basic engineering and programming
* Plenty of fun
* Easy to program
Bad points
* Can be complicated for younger children
* An expensive toy
Overall
If you can justify the cost, Lego Mindstorms NXT is an extremely fun and educationally minded toy.
Add starLikeShareShare with noteEmailAdd tags
Nov 2, 2006 10:54 AM
More Information on the ACCL-Nx
by eric
Per yesterday‘s news, the mindsensors.com ACCL-Nx acceleration sensor is now available.
More information and pricing has been provided regarding the ACCL-Nx‘s three distinct flavors:



ACCL-Nx-2g2x - 2G sensitivity, 2 Axis readings
ACCL-Nx-5g2x - 5G sensitivity, 2 Axis readings
ACCL-Nx-3g3x - 3G sensitivity, 3 Axis readings
Add starLikeShareShare with noteEmailAdd tags
Nov 2, 2006 3:54 AM
Desert Ranger Building Instructions
by guy
I‘ve made building instructions for my Desert Ranger. You can find them in our repository /Projects page,
or directly here.
Add starLikeShareShare with noteEmailAdd tags
Nov 2, 2006 3:54 AM
Desert Ranger
by guy
Guy Ziv‘s building instructions for Desert Ranger.
Add starLikeShareShare with noteEmailAdd tags
Nov 1, 2006 2:53 PM
NXT Palm control software
by guy
Razix has written NXTDirector - a software for palm that allows you to remotely control NXT from a
bluetooth enabled palm.
Add starLikeShareShare with noteEmailAdd tags
Nov 1, 2006 2:53 PM
NXT Robot Holds‘em and Deals‘em
by eric
I love Texas Hold‘em Poker, folks. In this video, the builder of this robot (and likely also an ardent poker
buff) demonstrates how his robot deals poker hands to five players. And this video shows the robot
dealing from a different angle. Maybe in future versions, the builder can add rotation to deal to players
around a table.
Anybody up for building a card shuffler? Or even a robot that shuffles up AND deals!? Then we‘d be set!
Nobody ever enjoys being the dealer, so this would be a lifesaver.
Add starLikeShareShare with noteEmailAdd tags
Nov 1, 2006 2:53 PM
Technic Pins
by guy
Jim German posted this article describing the different pins in the NXT set, and what they are (usually)
good for.
Add starLikeShareShare with noteEmailAdd tags
Nov 1, 2006 9:53 AM
More NXT Element Drawings
by eric
A few days ago, Motocube‘s Jim German brought us LEGO Mindstorms NXT technical drawings based
onCarnegie Mellon Solid models. Well, due to popular demand, Jim has put together more drawings and
will likely complete all kit elements by the end of this week. Enjoy!
Add starLikeShareShare with noteEmailAdd tags
Nov 1, 2006 2:42 AM
mindsensors.com Acceleration Sensor Now Available
by eric
mindsensors.com has updated their site and is now taking orders for their ACCL-Nx digital acceleration
sensor for the LEGO Mindstorms NXT. Capable of capturing static and/or dynamic acceleration data in
different axes, the ACCL-Nx can be used as a tilt sensor or to plot velocity profiles.





Uses NXT compatible I2C protocol for communications.
Detects acceleration as small as 10mg (depending on sensitivity and two axis or
three axis versions)
Various options available to select from like 2 axis or 3 axis and available in different
sensitivity.
Supplied with cable compatible with mindstorms NXT
Supports Auto Detecting Parallel Architecture (ADPA) for sensors. This means that
ACCL-Nx can co-exist with LEGO or third party digital sensor on the same NXT port.
This enables user to employ several sensors on the same port without the need of
external sensor multiplexer, reducing the overall size.
mindsensors.com also gives us a preview of new products soon to be available for LEGO Mindstorms
NXT:
Temperature Sensor
The Temperature sensor enhances the suite of faculties of NXT. It will interface with NXT with Digital
interface and provide ambient temperature reading in either Degrees or Fahrenheits.
NXT Motor Extender
NXT Motor Extender supports two nxt motors with encoder (standard nxt motors). These motors can be
controlled using on board PID control to act as servo motors.
These two motors can be operated at fixed velocity, or fixed position or in a synchronized mode to make
the robot move along straight line.
This new extender is designed to ‗insert in-line‘ on a NXT sensor port, so that your sensors can further be
connected to this extender.
Add starLikeShareShare with noteEmailAdd tags
Oct 31, 2006 2:42 PM
The Skinny on Technic Pins
by eric
Jim German has posted a neat piece on the Technic pins that are available in the LEGO Mindstorms NXT
retail kit. Lots of great content coming from Motocube. He added feed links to the site, so be sure to
subscribe!
Folks that are experienced with the set already know what each is used for, and are experts on their
benefits and weakness. However people that are just getting into Legos or are haven‘t used Technic sets
frequently, may be confused as to what the differences are between the various connectors. This article
will give a brief description of the pins, and what they are used for, and should be useful for new folks
looking to understand a bit more how to build their own models.
Add starLikeShareShare with noteEmailAdd tags
Oct 31, 2006 9:42 AM
NXT Director for Palm Devices
by eric
Razix, the maker of Call Director for the Palm Treo, has created a freeware application called NXT
Director. It allows the remote control of your LEGO Mindstorms NXT via Bluetooth connection from a
Palm mobile device. Support for Sound, Light, and Touch sensors will be available soon.
Thanks for the email, Razix. NXT Director has been added to our development link roll.
Add starLikeShareShare with noteEmailAdd tags
Oct 31, 2006 9:42 AM
iCommand 0.5 Now Available
by eric
A new version of iCommand is now available! iCommand allows you to control your LEGO Mindstorms
NXT with Java over a Bluetooth connection. No custom firmware required. Best of all, it works with
Windows, Macintosh, and Linux systems.
New features include webcam robotics, compass support, synchronized motors, convenient sensor
wrappers, and the ultrasonic sensor can now return multiple pings like radar.
iCommand Download
iCommand API
Additionally, as previously reported, Juan Antonio Breña Moral has created a comprehensive guide to
configuring your system to develop with iCommand.
[via leJOS]
Add starLikeShareShare with noteEmailAdd tags
Oct 30, 2006 5:42 PM
NXT Parts Drawings
by guy
Jim German produced detailed technical drawings of some NXT parts, with dimensions etc.
Add starLikeShareShare with noteEmailAdd tags
Oct 29, 2006 4:42 PM
NXT Life
by john
Based on a comment in the nxtasy forums about a version of the Life simulator written in NBC that was
unusably slow, I decided to try my hand at writing a speedier version.
The original code is written by forum user bk227865. He kindly shared a copy of his code with me and I
started ripping it apart and building it up again. Originally, the program kept an array of bytes with 6400
entries which was used to mark whether a pixel on the screen was a live cell or a dead cell. A faster way
to implement Life is to just keep an array of live cell indices. This will generally be a relatively small array
which can be used to paint the screen very quickly.
After a generation has been drawn on the screen then a new array is built containing all the live cell
indices from the previous generation plus all their neighbors which may become live in the next
generation. This next generation array is then processed to count how many live neighbors each cell
indice has. I can think of a way to optimize this further to make it even faster at calculating the next
generation of live cells, but I‘ll leave that as an exercise for the reader for now.
In my version of NXT Life with a glider and a blinker on the screen, like in bk227865‘s original code, each
generation takes a little less than 0.8 seconds to draw. When the glider intersects the blinker and
additional live cells appear in subsequent generations the time it takes to calculate the next generation
increases.
The program uses a macro called MakeCellLive to draw the first generation state. If you want to try other
Life shapes you can modify this section of the program.
You can get a copy of Life on the NBC Samples page. It‘s the first item on the page. I also posted it to
thenxtasy forums.
Add starLikeShareShare with noteEmailAdd tags
Oct 29, 2006 4:42 PM
New Products from HiTechnic
by eric
HiTechnic has posted information about four new product offerings! Here‘s a summary from their site:
NXT Prototype Board (shown)
The HiTechnic Prototype board gives you an easy-to-use platform to build your own sensors or interface
to other devices. The Prototype board comes with a complete and operating NXT I2C interface to give
you a head start on your design.
NXT Color Sensor
The NXT Color Sensor operates by using three different color light emitting diodes (LED) to illuminate the
target surface and measures the intensity of each color reflected by the surface. Using the relative
intensity of each color reflection, the color sensor calculates a Color Number that is returned to the NXT
program.
NXT Acceleration Sensor
The NXT Acceleration Sensor contains a three axis accelerometer that measures acceleration in three
axes, x, y and z. Acceleration is measured in the range of –2g to +2g with scaling of approximately 200
counts per g.
NXT Extended Connector Cable Set
The Extended Connector Cable Set contains four cables in total, two cables shorter than the standard
Mindstorms cables and two cables longer than the standard Mindstorms cables. Cables has standard
NXT style RJ12 plugs on each end.
[via TheNXTStep]
Add starLikeShareShare with noteEmailAdd tags
Oct 29, 2006 1:42 PM
NXT Element Drawings Available on Motocube
by eric
Motivated by some community discussion, Motocube‘s Jim German put together a few technical
drawings of elements within the LEGO Mindstorms NXT kit.
Since Carnegie Mellon was nice enough to give out some solid models of the various pieces I figured I‘d
spend a few minutes and put up some dimensioned drawings. I tried to only put the relevant dimensions
on, with measurements in inches and millimeters.
Add starLikeShareShare with noteEmailAdd tags
Oct 28, 2006 6:42 AM
New High Score in NXTasy Challenge!
by guy
Less than 5 weeks till the deadline (December 1st) and our challenge is still not settled! A new
contribution just arrived setting the high score at 204 inches!
Reminder - first prize is a HiTechnic digital compass sensor. Best 5 throwers awarded a 25% discount
coupon towards purchases at mindsensors.com.
Rules, Q&A, scoreboard, and discussions can be found in the challenge forum.
Add starLikeShareShare with noteEmailAdd tags
Oct 28, 2006 6:42 AM
New NXTasy Challenge High Score!
by guy
Less then 5 weeks till our first challenge deadline (December 1st), and we‘ve got a new high score - 204
inches!
Reminder: the challenge is throwing the blue ball as far as possible. First prize - HiTechnic digital
compass sensor. Best 5 throwers win 25% discount cupons in mindsensors.com.
Rules, Q&A, score board and discussions are in the dedicated forum.
Add starLikeShareShare with noteEmailAdd tags
Oct 28, 2006 1:42 AM
Tony Buser‘s NXT Search Engine
by eric
Tony Buser has created an NXT search engine using Google‘s Co-op beta technology. Need to find that
tidbit of information you remember reading on one of your favorite NXT sites a while back? Tony has the
solution.
I‘ve been playing around with Google‘s new Co-Op system which basically allows you to create your own
search engine that only searches a certain list of websites. (ala Rollyo) So I‘ve put together an NXT
search engine that indexes a lot of NXT blogs and a few api documentation sites.
[via Juju]
Add starLikeShareShare with noteEmailAdd tags
Oct 27, 2006 6:43 PM
Adding your own robots into NXT-G Robo Center/Robot Educator
by guy
Motivated by a question posted by ahdavidson on our forums, I set out to unravel the details of NXT-G
Robo Center/Robot Educator file structure. In a detailed review I posted to NXTasy repository, I describe
the details and the instructions how to add your own contents into Robo Center/Robot Educator.
I‘ve opened a thread in our forum for discussion on this review here.
Add starLikeShareShare with noteEmailAdd tags
Oct 27, 2006 6:43 PM
Adding contents to Robo Center/Robot Educator
by guy
In this review I describe the LEGO Robo Center/Robot Educator file structure and format. Using
this information, you can add your own projects’ documentation into the NXT-G programming
environment. This contents will look and behave just like the existing contents in Robo
Center/Robot Educator.
Add starLikeShareShare with noteEmailAdd tags
Oct 27, 2006 4:42 PM
Adding Digital I/O Ports with I2C
by sivan
2
The sensor ports on the NXT support a serial digital protocol called I C, which was developed by Philips
2
in the 1980‘s. I have built a prototype that shows how to interface to the NXT a simple I C chip that
provides 8 digital I/O ports. Each one of these eight ports can be used as either input or output (and in
some restricted ways also as both). These inputs and outputs are binary: they are either on or off. Input
ports can be used for touch sensor (switches), for example. Output ports can drive LEDs, and through
relays or other devices they can turn motors on or off. In my setup, two ports are used to drive LEDs, two
other ports are used as inputs, connected to push switches, and four ports remain unused.
It turned out that connecting your NXT to this this interface chip is as easy as electronics experimentation
goes, and programming your NXT to communicate with this chip is also easy.
Connecting your NXT to any home-made gizmo (like the one described here) can damage it.
Beware.
Add starLikeShareShare with noteEmailAdd tags
Oct 27, 2006 9:42 AM
Microsoft Robotics Studio Data Sheet
by eric
Microsoft has finally published official literature for Robotics Studio. The latest data sheet highlights the
features available in the October CTP.
There were initial rumors of an October final release, but I have not heard any updates since then. We‘ll
see if November brings us anything juicy.
Add starLikeShareShare with noteEmailAdd tags
Oct 26, 2006 12:36 AM
Evansville Wakes Up to NXT
by eric
Instructional Technologist Steven Combs joins Sean McHose on Fox 7 in Evansville, IN, to demonstrate
the LEGO Mindstorms NXT.
The system had been out for about three months and I was aware of its development while a LEGO
Ambassador with secret ―in the know‖ information. It was one of those secrets you really wanted to get
out tell everyone about so it was good to get a chance to finally play with the system and then
demonstrate its capabilities on the air.
See the video.
[via Combsing Through the Minutia]
Add starLikeShareShare with noteEmailAdd tags
Oct 25, 2006 7:37 PM
NXT Mobile Application!?
by eric
A FAQ can be found on the LEGO Mindstorms website about something new called the NXT Mobile
Application. Details are sketchy, but it appears to be a Java app for phones and mobile devices that
allows the remote control of the NXT over Bluetooth. Perhaps something similar to Ap0cN3t‘s
application. It may also allow the control of the mobile device from the NXT — taking pictures, for
instance. We shall see.
What are the requirements for my phone to run the NXT Mobile Application?
You need Bluetooth and the option of running Java programs (JSR-82). Make sure that your operator
allows third party applications and that your phone‘s internet settings allow download of Java. You may
have to change your phones settings to permit the use of java applications.
What are the requirements for my NXT to support the NXT Mobile Application?
Your version of the NXT brick needs to be minimum:
FW 1.03
AVR 1.01
BC4 1.01
You can find your version numbers under ‗Settings‘ - ‗NXT Version‘ on the NXT brick.
A sign of things to come? Sure! The end of October already promises a new patch. Who knows what
else is around the corner!? Stay tuned to nxtasy.org and, most likely, the LEGO
NXT‘reme section for news on download availability.
Add starLikeShareShare with noteEmailAdd tags
Oct 25, 2006 2:36 PM
‗Yo robot, get me a soda!‘
by eric
Another interesting video on YouTube…
The Media Factory wrote, directed, edited, produced and filmed this video podcast for Lego
Minstroms [sic] NXT robot division. Lego wanted to market Lego Robots to a cool urban audience. We put
our man Lee West on the job and he came up with the ―Bro‘bot.‖
[via Media Factory]
Add starLikeShareShare with noteEmailAdd tags
Oct 25, 2006 12:36 PM
Robots on the Dinner Table
by eric
The Globe and Mail has published a well-written review of the LEGO Mindstorms NXT.
The Good: The sophisticated evolution of the classic children‘s toy that can keep the young mind‘s
creative faculties focused
The Bad: The price; it needs a lot of space to spread out; the wordless diagram instructions aren‘t always
clear; it comes with no batteries (gasp!)
The Verdict: If you‘re all grown up now, it‘s the toy you wish you‘d had when you were a kid. If you‘re still
a kid or a kid at heart, or have a kid that likes to tinker, Mindstorms NXT is the pinnacle of fun
Add starLikeShareShare with noteEmailAdd tags
Oct 25, 2006 12:36 PM
A Halloween Hand
by eric
I find this video absolutely hilarious. Trick-or-Treaters beware!
Add starLikeShareShare with noteEmailAdd tags
Oct 25, 2006 12:36 PM
Jim German‘s Motocube.com
by eric
Forum member, Jaguar, has posted a link to his new LEGO Mindstorms NXT website at Motocube.com. I
have added it to our blogroll. The latest content features video clips of the prototypes he has built for
the NXTasy challenge. Check it out!
Add starLikeShareShare with noteEmailAdd tags
Oct 24, 2006 7:11 PM
Making Music With NXT Melodies
by john
Introduction
I want to first thank Eric and Guy for letting me join the nxtasy team. I‘ve been impressed for quite some
time by the amazing content and community being built here and I wanted to be a small part of it.
And now on to the subject at hand - making music!
Playing Sounds
A very popular feature of the standard NXT firmware is the ability to play wave files which have been
converted into NXT sound files (with an .rso extension). The NXT software comes with many sounds
which can be used in an NXT-G or NBC program with the standard NXT firmware to make your robot
sound cool. Using a wave file to NXT sound file conversion utility you can easily create additional sounds
for use in NXT-G and NBC programs.
Unfortunately, even though NXT sound files are fairly low quality (8-bit, mono, 8k sample rate) sounds,
they can take up large amounts of flash memory when they are used in a program. The ―Writing Efficient
NXT-G Programs‖ pdf document on the First Lego League website recommends that you ―minimize use
of Sound and Display blocks‖ in order to more optimally use the available flash memory. With flash
memory limited to around 128 kilobytes it can be very important to pay close attention to how much space
is taken up by sound files.
Size Matters
All of this brings me to a little known feature of the standard NXT firmware – melody files. What is a
melody file? You might think of a melody file, in comparison to a sound file, as being something like a
MIDI file in comparison to a wave file. Where sound and wave files contain sound samples (8 thousand of
them per second in sound files) melody and MIDI files contain notes which are played for a specific
duration. MIDI files are quite a bit more involved than melody files but hopefully the analogy helps explain
the difference between sounds and melodies.
If a sound lasts for much more than a split second, the number of samples that are stored in the file
causes the file size to grow rapidly. In the world of melody files, playing a single tone for 10 seconds
takes only 4 bytes (2 bytes for the frequency or tone and 2 bytes for the duration). An uncompressed .rso
sound file lasting 10 seconds would take something like 80,000 bytes.
Of course, melody files can‘t be used to reproduce speech and the music that can be played using a
melody file won‘t be as fancy as that in a sound file. But the size of long melody files will be much smaller
than the size of short sound files.
Creating a Melody File
Melody files can be created in a few different ways. Each has its pluses and minuses. Bricx Command
Center (BricxCC) has a Brick Piano tool window which can be used to manually construct a series of
tones. The resulting ―song‖ can be saved in many different formats, one of which is the NXT melody file
format. For simple melodies this is a pretty easy way to create a melody file.
Perhaps an easier way to create a complex melody file is to convert an existing MIDI file into a melody
file. The trick with this approach is that many MIDI files use multiple tracks, each of which only play some
of the notes which comprise the song. And without a MIDI editor or track viewer it may be hard to tell
which track contains the melody as opposed to the bass guitar or drums or whatever. The MIDI
Conversion tool in BricxCC can be used to convert MIDI files into the NXT melody file format (as well as
several other formats). Using this tool you pick which track you want to convert and the format to use for
the conversion.
The easiest way to quickly create a lot of complex melody files is to use the MIDI batch conversion
utility which makes it possible to select many MIDI files and convert them all (either the first track or all
tracks) into corresponding NXT melody files. This utility, unlike BricxCC, is available for multiple platforms,
including Mac OSX, and Linux.
Currently, the MIDI conversion mechanism does not support combining multiple MIDI tracks into a single
melody file. That would be a nice feature to have and it is on my list of enhancements that I hope to get to
once I get NQC and other high level languages working with the standard NXT firmware.
Playing a Melody File
So you have created a melody file. Now, how on Earth can you hear what it sounds like?
First of all, you should know that the LEGO Mindstorms NXT software does not know how to play an NXT
melody file. You can get melody files to show up in the NXT-G Sound block‘s list of sounds by a) giving
the file an .rso extension even though it is not a sound file, and b) copying the file to your engine\Sounds
directory below the main Mindstorms NXT install directory. On my PC the correct directory is at
C:\Program Files\LEGO Software\LEGO MINDSTORMS NXT\engine\Sounds.
You should also know that there aren‘t any shareware NXT melody players out there for your favorite
operating system (OS) like you can find for MIDI files. There is, however, a simple utility that I have
written calledRMDPlayer. It currently runs only on the Win32 platform. RMDPlayer lets you preview
approximately what a melody file will sound like on the NXT. The player uses the computer‘s sound card
to play the notes in the melody file for the specified durations. Computers can handle a range of
frequencies that extends beyond the range supported by the NXT, so a melody file that contains very low
notes or very high notes will play differently on the NXT than on your computer. RMDPlayer also lets you
save your melody file as a wave file. This means that you can convert from MIDI to NXT melody to Wave
to NXT sound if you feel so inclined.
Another way to hear a melody file – exactly as it will sound from a running program – is to use the NXT
Explorer tool from within BricxCC. Using this window you can select a melody file on the NXT (and, soon,
on your PC) and play it via the Play menu item or toolbar button. If you haven‘t downloaded a melody file
to the NXT yet then the NXT Explorer window is the perfect place to be since it also lets you drag and
drop files from directories on your computer to your NXT. I‘ll leave saying anything more about the NXT
Explorer window to another post.
Playing Melodies on the NXT
If you write a program in NXT-G which uses a Sound block and you select a melody file from the list of
sounds you won‘t hear the melody play as you would a sound file. But when you download your program
to the NXT and run it, the melody will play as it should. The NXT software will even transfer the melody
file to the NXT just as it does for any sound files you select. Long melody files could be played in a Sound
block on a parallel beam so that the music plays in the background while the robot moves around and
responds to sensor input. NXT-G needs melody files to have a sound file extension (.rso) because the
Sound block is hard-coded internally to append ―.rso‖ to the end of the filename (without any extension)
that you selected from the lists of sounds.
With NBC you have direct access to the system function for playing files. The function is called using the
syscall opcode. The name of the function is SoundPlayFile. You pass this function a structure of type
TSoundPlayFile. This structure has Loop, Filename, and Volume members which you set prior to the call
to the SoundPlayFile system function. Here is some code which demonstrates how simple it is to play
either a sound file or a melody file using NBC:
#include ―NXTDefs.h‖
thread main
precedes player, worker
exit
endt
thread player
dseg segment
spfArgs TSoundPlayFile
dseg ends
// this thread plays music in the background
mov spfArgs.Filename, ‗mysong.rmd‘
set spfArgs.Loop, TRUE
set spfArgs.Volume, 3 // 75%
syscall SoundPlayFile, spfArgs
endt
thread worker
// this thread does all the ―work‖
endt
With NBC, either via the command-line or when using BricxCC, the files used in NBC programs, such as
melody files, sound files, and icon files, are not currently transferred to the NXT automatically. This may
change in a future version of NBC but for now you have to transfer these auxiliary files manually. These
files can be copied to the NXT using the NXT Explorer tool in BricxCC, the NextTool command line utility,
or via NBC with the -b command-line switch:
nbc –S=usb -d -b mysong.rmd
nexttool /COM=usb -download=mysong.rmd
So give NXT melodies a try and let your NXT sing!
Add starLikeShareShare with noteEmailAdd tags
Oct 21, 2006 2:12 PM
Bluetooth Tutorial with MS Robotics Studio
by eric
Oliver Schenk has posted a very informative tutorial on how to connect the LEGO Mindstorms NXT with a
PC using Bluetooth and Microsoft Robotics Studio.
This guide aims to describe the procedure I followed to allow you to connect your PC to your NXT and
vice versa. This guide does not only apply to the Robotics Studio developed by Microsoft but actually any
application you wish to make that needs to communicate through Bluetooth with your NXT.
Oliver is also responsible for the soon to be released SimpleNXT.
Add starLikeShareShare with noteEmailAdd tags
Oct 21, 2006 8:12 AM
NXT Tic-Tac-Toe - No Motors, No Sensors!
by dave
Ross Crawford has whipped up a version of Tic-Tac-Toe on his NXT using NBC - with no sensors or
motors… Why bother when you can do it right on the screen? Right?
Well, I‘ve been playing a bit with NBC on my NXT lately, and the first program I like to write in any new
language is Tic Tac Toe, so here is my NXT version. You are always ―X‖ and have the first move. NXT
plays for the draw, but will win if you stuff up! Use the arrow keys and enter key on the NXT to play.
Add starLikeShareShare with noteEmailAdd tags
Oct 20, 2006 7:12 AM
NXT Remote Control for Java Cellphones
by eric
Forum member, Ap0cN3t, has posted information about NXT Symbian — a Bluetooth remote control
application for the LEGO Mindstorms NXT and Java cellphones.
For PocketPC devices and the PC, a somewhat similar application exists called OnBrick.
Add starLikeShareShare with noteEmailAdd tags
Oct 20, 2006 1:11 AM
Dr. Truchard on Cyber-Physical Systems
by eric
On Monday, Dr. James Truchard, President and CEO of National Instruments, delivered a keynote
address to attendees of a National Science Foundation workshop on Cyber-Physical Systems.
The workshop promoted a new government initative to research and enhance the real-time integration of
computers and physical components.
Truchard discussed cyber-physical system design and programming, including technologies for
distributed control and sensing using graphical system design tools. He also gave a preview of future
technologies for cyber-physical system design and showed examples of LEGO MINDSTORMS NXT and
wireless sensing devices.
He emphasized the importance of programming heterogeneous multiprocessor computer systems, which
are key to controlling these types of systems, so that they meet concurrency, responsiveness, power,
performance and reliability requirements.
[via National Instruments]
Add starLikeShareShare with noteEmailAdd tags
Oct 19, 2006 2:49 PM
Silberpfeil Building Instructions
by guy
Matthias published the building instructions for Siberpfeil, and by that completed documenting all the NXT
creations which he published on his website. We are looking forward to see what wonderful new robots
are in progress, Matthias!
I want to use this opportunity to remind everyone about NXTasy.org repository. Not only can you find a
link to Siberpfeil here, but also much more useful NXT-related information sorted into different categories
such as programming, projects, technic solutions, utilities etc. We would be happy to get feedback from
you - Do you use this resource? Do you think we forgot something (let us know and we‘ll add it!)? Do you
have any other comment on the NXTasy repository? Let us know! You can either
email repository@nxtasy.org or send PM to Golem (that‘s me) in the forums.
Add starLikeShareShare with noteEmailAdd tags
Oct 19, 2006 2:49 PM
Silberpfeil
by guy
Matthias Paul Scholz‘s building instructions to Silberpfeil
Add starLikeShareShare with noteEmailAdd tags
Oct 19, 2006 6:49 AM
Using Legacy Sensors with the NXT
by dave
I wanted to start by thanking Eric for inviting me to contribute to nxtasy.org. I am honoured to be part of
his team. As a brief intro to myself, I am one of the LEGO NXT MDP / MCP members and hope that
through my site (http://www.astolfo.com/) and my participation in the community, that I can bring useful
tips, robots and information to the table for others. Some of you may know me for creating DominoBot
and DominoBotNXT. Now, on to the topic of this post.
Most of those in this tight community are aware of Mindsensors and HiTechnic for their RCX and NXT
sensors, but there is another company out there producing high quality sensors for NXT and RCX
systems that deserves mention. TechnoStuff (Techno-Stuff) has been creating RCX sensors for some
time now, and I have had the chance to test a number of them including their:
Proximity Infrared Sensor
DIRPD Sensor
Tilt/Accell Sensor
.
What may not be so well known is that most of these sensors will work on the NXT kit. You simply need a
NXT RCX wire converter and either NXT-G or a 3rd party programming language (eg. RobotC). The
converter wires can be obtained from shop.lego.com, or you can make one yourself quite easily (as long
as you dont mind cutting up a few cables).
Programming with these sensors in NXT-G can be done by using a legacy Temp Sensor block and raw
output (for unpowered sensors) and a Light Sensor block for powered sensors. For my testing, I use
RobotC and set the sensors up as a Light Sensor. This will allow you to read the raw reading values and
code your robot to react appropriately. For more information on these sensors, visit the TechnoStuff
website at www.techno-stuff.com.
Dave
Add starLikeShareShare with noteEmailAdd tags
Oct 19, 2006 3:49 AM
NXT Parts Added to BrickLink Catalog
by eric
BrickLink.com is an unofficial ―venue for individuals and businesses from all around the world to buy and
sell new, used and vintage LEGO through fixed price and auction services.‖ They have now added parts
specific to the 8527 LEGO Mindstorms NXT retail kit.
[via Robot Challenge]
Add starLikeShareShare with noteEmailAdd tags
Oct 19, 2006 2:49 AM
Compass FAQ Hints at New Patch
by eric
The official LEGO Mindstorms NXT FAQ has been updated with a few questions pertaining to
the HiTechnicCompass Sensor. The last question asks, ―How do you program the Compass Sensor?‖
There will be a patch available by the end of October that will enable 3rd party programming blocks in the
MINDSTORMS NXT environment. In the meantime, the current version of MINDSTRORMS [sic] NXT
software will allow the Ultrasonic block to program the Compass Sensor.
The ‗patch‘ has been rumoured for quite sometime now, but this gives us an indication as to when we can
expect it. The end of October draws near and we will probably see a download available for the Compass
Sensor blockas the patch goes live.
Add starLikeShareShare with noteEmailAdd tags
Oct 15, 2006 10:49 AM
Meet the MDP‘s — Rob Torok
by eric
A new MDP profile for Rob Torok has been added to the LEGO Mindstorms NXT site.
The profile features two of his robots:
Twisterbot — A Twister game spinner that announces the result.
Trent — A RoboCup Junior soccer goalie. Soccer?
Add starLikeShareShare with noteEmailAdd tags
Oct 14, 2006 11:50 AM
A Clap Counter MyBlock
by sivan
When Eric and Guy invited me to contribute to nxtasy, I felt that I must do something to justify the
invitation. The result is a NXT-G My Block that counts claps. It was inspired by a LEGO Education blog
entry from February, which suggested that the sound sensor would be able to count claps and to
recognize tones.
I have no idea how to recognize tones with the sound sensor, but it can certainly count claps.
Add starLikeShareShare with noteEmailAdd tags
Oct 13, 2006 10:38 AM
Two more contributors!
by eric
NXTasy.org is pleased to announce the addition of two more contributors!
MDP member, John Hansen, has been instrumental in providing great development tools to the RCX and
NXT community. We welcome the new NXT content he aims to share about NBC, BricxCC, NQC, NXT-G,
and more!
Sivan Toledo is an associate professor in computer science and conducts research in the area of highperformance scientific computing. He has previously published a few NXT articles (here and here) and we
hopeNXTasy.org provides him with an additional outlet to share his work with the community.
Add starLikeShareShare with noteEmailAdd tags
Oct 13, 2006 1:32 AM
Press Release: Mindstorms Education NXT Now Available
by eric
LEGO has issued a press statement announcing the official release of the LEGO Mindstorms Education
NXT. Ironically, despite today‘s news, the LEGO Education store currently lists the set as ‗Temporarily
Out of Stock‘.
Add starLikeShareShare with noteEmailAdd tags
Oct 12, 2006 11:17 AM
Please Excuse the Dust
by eric
Good news! We‘re growing! Bad news. We‘re growing. Okay, well, it‘s not entirely bad news. It just means
we might be a little rough around the edges while I move nxtasy.org to bigger servers in the next few days
to handle the increased traffic. That said, please excuse the dust. =)
I‘m also taking this time to enhance a few areas on our site. Some will be major like upgrading the
engines behind our blog and forums. Others will be minor and might go unnoticed like the nice link
directory that I‘ve restructured on our sidebar.
Did you enjoy the first NXTasy Challenge? I understand the competition is pretty tough, but no worries,
there‘s still plenty of time left. Guy has some great ideas for a new challenge in the very near future. This
time, the focus will be on programming. We‘ll put our heads together to come up with cool prizes.
Again, we welcome Dave Astolfo to our contribution team. He and I hit it off really well at BrickFest and I
can‘t wait to see what he has in store for all of us. Word is that it‘s REALLY awesome. We‘re always
looking for helping hands, so don‘t hesitate to shoot an email our way.
Overall, I think we‘ll be able to bring you even better content in the future, so stay tuned! Thanks again for
all the support!
Add starLikeShareShare with noteEmailAdd tags
Oct 12, 2006 11:17 AM
Mind-Altering Software
by eric
LiveScience has posted an article on the LEGO Mindstorms NXT and its upcoming LabVIEW Toolkit.
Enjoy.
[via LUGNET]
Add starLikeShareShare with noteEmailAdd tags
Oct 12, 2006 10:18 AM
Buzz Words: Technology Convergence
by eric
Last month, Microsoft held its inaugural Global High Tech Summit where leaders in high-tech
manufacturing met to discuss the future of their industry. Key topics included communication,
collaboration, innovation, and convergence.
In high tech, competition is ferocious, the rules of the game change overnight, and the rate of change is
accelerating due to new markets, customers, products and technology.
- Microsoft
Phil Hester, AMD‘s corporate vice-president and chief technology officer, centered on this idea of
technology convergence. He emphasized that the future technological frontier for exploration is the space
between your cell phone and laptop computer.
Everything is essentially becoming a network device.
- Phil Hester, AMD
Hester believes that the focus should not only be on the progression and improvement of technology that
already exists, but also the progression and improvement on the mechanisms to package and deliver that
technology. He considers the new LEGO Mindstorms NXT as one of the prime examples of technology
convergence today.
[via Cadalyst]
Add starLikeShareShare with noteEmailAdd tags
Oct 12, 2006 5:18 AM
Educational Building Instructions Online!
by guy
Thanks to pemiamos we found that the LEGO education site has now PDF files with building
instructions. The list includes Alpha Rex, RoboArm, Spike and Tribot, as well as educational version
modules including lamp module and others. Go here to get them!
Add starLikeShareShare with noteEmailAdd tags
Oct 12, 2006 2:17 AM
Next Bytes Code 1.0.1 b10 Available
by eric
John Hansen has released an updated NBC beta.
This beta release implements multi-dimensional array support. It has additional macros in NXTDefs.h for
motor and sensor control. It moves all forms of optimization under the control of a command-line switch (Z, -Z1, or -Z2). The optimizations that were always executed in beta 8 are now only executed if you set
the optimization level to at least level 1. -Z and -Z2 both set the optimization level to 2. Level 2
optimizations replace several different patterns of code with simplified equivalents.
NBC now has special tokens that can be used in macros or elsewhere for useful purposes. The tokens
are __FILE__, __LINE__, __VER__, __THREADNAME__, __I__, __J__, __ResetI__, __ResetJ__,
__IncI__, __IncJ__, __DecI__, and __DecJ__. The compiler will also replace ## wherever it exists in the
sourcecode with nothing (even within strings). These tokens make it possible to define preprocessor
macros which can be used repeatedly in the same thread or in multiple concurrent threads without
causing threading problems or producing duplicate label names. The values of __I__ and __J__ are
automatically reset to zero at the start of each new thread or subroutine.
Add starLikeShareShare with noteEmailAdd tags
Oct 12, 2006 1:18 AM
NXTasy.org Welcomes Dave Astolfo!
by eric
NXTasy.org proudly welcomes MDP member Dave Astolfo to our contribution team! With great builds
likeDominoBotNXT and TiltBot (shown), Dave is excited to share more of his robots and many wonderful
tips and tricks with our readers.
Add starLikeShareShare with noteEmailAdd tags
Oct 10, 2006 6:17 PM
HiTechnic Compass Sensor Now Available from LEGO
by eric
As a follow-up to Sunday‘s news that the HiTechnic Compass Sensor is now shipping, we see the result
of the new third-party collaboration program with the same offering from LEGO Shop@Home.
Interestingly, there is no mention of HiTechnic.
Add starLikeShareShare with noteEmailAdd tags
Oct 10, 2006 1:18 PM
HiTechnic Digital Compass driver for RobotC
by guy
I‘ve written a simple device driver for the HiTechnic digital compass sensor. The driver hides all hardware
details (i.e. I2C communication) from the user, allowing easy integration of the new sensor into existing
programs. It polls the sensor reading every 5ms into the standard sensor variables SensorRaw and
SensorValue.
The following sample program demonstrates the use the driver:
// Add the driver code
#include ―HTCompass.c‖
//Assign port
const tSensors myCompass = S4;
task main()
{
// Define sensor type and subtype as HiTechnic Digital Compass sensor
SensorType[myCompass] = HTCompassSensor;
SensorSubType[myCompass] = HTCompassSubType;
// Start compass driver.
StartTask(HTCmpsDriver);
// Calculate relative heading from 23 degrees
nHTCmpsRelativeHeading[myCompass] = 23;
while(1)
{
//Display heading
nxtDisplayTextLine(5,‖ Heading: %d‖, SensorRaw[myCompass]);
nxtDisplayTextLine(6,‖ Deviation: %d‖, SensorValue[myCompass]);
// wait a little
wait1Msec(1);
}
StopAllTasks();
}
The above code demonstrates how to read both ―raw‖ heading (exact heading 0..359) and the deviation
from a predefined value. The value in nHTCmpsRelativeHeading can be set at any time, setting a new
―relative‖ heading direction.
To use the driver one need the HTCompass.c file available here. Also, one must use the latest RobotC
version, as older versions did not allow writing into SensorRaw. The current RobotC version (v. 1.0.21A)
still defines SensorRaw as ―const‖, but in firmware this variable is read/write, and future versions of
RobotC will correct this. In the mean time, one should manually change the line
intrinsic const word variable(SensorRaw, opcdSourceSensorRaw, kNumbOfTotalSensors, tSensors);
in RobotCIntrinsics.h to
intrinsic word variable(SensorRaw, opcdSourceSensorRaw, kNumbOfTotalSensors, tSensors);
Add starLikeShareShare with noteEmailAdd tags
Oct 10, 2006 1:18 PM
Converting Light Sensor to Laser Pointer
by guy
Kevin has submitted a step-by-step guide to converting an NXT Light sensor to a Laser Pointer… check it
outhere.
Add starLikeShareShare with noteEmailAdd tags
Oct 9, 2006 6:18 PM
MS Robotics Studio October 2006 CTP Released
by eric
Microsoft Robotics Studio sees an updated community technology preview for October. The release
brings enhanced simulation support with a move from managed Direct X to the XNA Framework. Multiple
camera angles, rendered in different perspectives, can be simulated and controlled by a PC or even a
wired Xbox 360 controller. New tutorials have been added, as well.
Updates specific to the LEGO Mindstorms NXT:
We now support automatic download of the program loaded on the LEGO NXT brick to facilitate
communication with your MSRS authored program. Now once you just set your BlueTooth connection
between your PC and the LEGO NXT and you can just run your application. We have also added support
for access to some the advanced commands that are available for the NXT.
Add starLikeShareShare with noteEmailAdd tags
Oct 9, 2006 5:18 PM
NXTLOG Beta Now Available
by eric
A beta version of NXTLOG is now available from LEGO. It‘s a ‗fully moderated community‘ site that allows
Mindstorms NXT users to showcase their creations. A tag system makes it easy to sort projects and
improve searching.
A few projects have already been created. Here are a few notables:
Hard Disk Drive
Copier
Add starLikeShareShare with noteEmailAdd tags
Oct 8, 2006 5:18 PM
NXTasy forums back online!
by eric
Apologies for the downtime. Our forums are now back online!
Add starLikeShareShare with noteEmailAdd tags
Oct 8, 2006 5:18 PM
HiTechnic Digital Compass is Shipping
by guy
HiTechnic has updated their site and are now shipping the new digital compass sensor for $46.99. See
more details on the new compass here.
Add starLikeShareShare with noteEmailAdd tags
Oct 8, 2006 4:18 PM
Forums down for maintenance
by eric
Be back soon!
Add starLikeShareShare with noteEmailAdd tags
Oct 8, 2006 12:18 PM
Introducing the Deskbot
by rachel
Scotta725 has a new bot up on Flickr. DeskBot navigates around a table without falling off: if one of the
small wheels‘ edge detects drops off, the touch sensor is released, causing DeskBot to stop, backup and
turn.
Check out photos of the bot and the program screenshots!
Thanks for the email, Scotta!
Add starLikeShareShare with noteEmailAdd tags
Oct 7, 2006 4:19 PM
The NXTasy Challenge sets a new High Score!
by guy
Less than 8 weeks till our first challenge deadline, and we received a new contribution setting the high
score at 153 inches! I must admit, I thought it was a lost fight when the 122 inches score was reached,
but I‘m happy to be surprised once again by the creativity of NXTasy.org readers.
Just to remind you - the challenge is throwing the NXT set blue ball (red balls also count…) the farthest,
without using elastic parts pneumatics and alike (exact rules are here, Q&A here). The deadline is
st
December 1 . The winning bot will be awarded a new Digital Compass sensor courtesy of HiTechnic, and
the best five throwers will be awarded a 25% discount coupon from mindsensors.com.
Add starLikeShareShare with noteEmailAdd tags
Oct 5, 2006 6:12 AM
Analysis of NXT Bluetooth Protocol
by guy
Sivan Toledo published a detailed analysis of the NXT BT communication protocol. Get it here.
Add starLikeShareShare with noteEmailAdd tags
Oct 4, 2006 1:12 PM
Perl API Tutorials
by eric
Michael Collins has posted several tutorials that demonstrate ultrasonic sensor readings and motor
control via Bluetooth with his NXT Perl API.
Add starLikeShareShare with noteEmailAdd tags
Oct 4, 2006 12:12 PM
Can you do the worm?
by eric
One of my first robots was a wheeled robot that moved sort of like an inch worm. Well, graduate film
student,Josh Greenbaum, stumbled across a video of the robot and asked if it could play a sock as the
lead character in a movie he is making. Unfortunately, given the design of the robot (specifically, the
wheels), placing a sock over it would compromise the worm-like movement Josh needs. I‘d told him I‘d
ask our readers because I know the NXT community loves challenges.
So does anybody have any design ideas or is up for the challenge of creating a worm sock bot to star
in Josh‘s film? You‘d probably want to keep it small to fit in a sock and have a motor to control each of its
three joints.
Add starLikeShareShare with noteEmailAdd tags
Oct 4, 2006 11:13 AM
Microsoft Robotics Studio Upcoming Events
by eric
The Microsoft Robotics Studio website has listed several events where you can get the chance to meet
the team.
Add starLikeShareShare with noteEmailAdd tags
Oct 3, 2006 8:13 AM
Retail NXT RoboCenter projects
by guy
LEGOEDWEST published building instructions for all 4 RoboCenter projects - TriBot, RoboArm, Spike
and Alpha Rex. For those NXT users who have the Educational version, or any Retail NXT holder how
prefers printing the instructions beforehand - get them here.
Add starLikeShareShare with noteEmailAdd tags
Sep 30, 2006 2:17 PM
Teaser on NXT Desert Ranger
by guy
Here‘s a first glance at my new ―NXT Desert Ranger‖ creation. It‘s a two seats jeep fully equipped with
rear-wheels drive, GPS navigation, auto-pilot, dual-springs suspensions, mud shields, solar panels, seat
belts, and two high-power top-mounted light projectors.
Click the picture for high-res. More details will follow…
Add starLikeShareShare with noteEmailAdd tags
Sep 27, 2006 10:20 AM
Updated NXT LDraw Parts
by eric
The unofficial collection of LEGO Mindstorms NXT LDraw parts has been updated. Several improvements
have been made to existing parts.
Add starLikeShareShare with noteEmailAdd tags
Sep 27, 2006 10:20 AM
Updated Visual LEGO Documentation
by eric
Bram Fokke has updated his Visual LEGO documentation with a few examples on how to connect to a
LEGO Mindstorms NXT and control a motor. Enjoy.
Add starLikeShareShare with noteEmailAdd tags
Sep 27, 2006 10:20 AM
Linux Bluetooth Tutorial
by eric
Michael Collins has posted a starter guide for establishing a Bluetooth connection to a LEGO Mindstorms
NXT under Linux. He is also responsible for NXT PERL API, which allows you to send Bluetooth
commands directly to the NXT.
Add starLikeShareShare with noteEmailAdd tags
Sep 26, 2006 12:32 PM
Mindstorms Bot Stars
by eric
A new section has been added to the Mindstorms site featuring three brand new robots: Bone Bot, Guard
Bot, and Throw Bot.
Incredible, new, hi-tech sensors combine with the power of the NXT Intelligent Brick to let your robot do
just about anything you can imagine.
[via LEGO]
Add starLikeShareShare with noteEmailAdd tags
Sep 26, 2006 12:32 PM
Toys ‗R‘ Us Hot Holiday Toys
by eric
Toys ‗R‘ Us lists their top toy picks for this holiday season:
Among the hottest toys for ―big kids‖ will be LEGO‘s $250 Mindstorms NXT, an eye-catching robot that
kids can design, build and program. It‘s got bluetooth technology, so it can even be controlled with a
mobile phone. Parents may wonder: Can it take out the trash?
[via Daily News]
Add starLikeShareShare with noteEmailAdd tags
Sep 24, 2006 6:07 PM
New Repository Category
by guy
Driven by the large development in the ―alternative‖ programming platforms, and with the prospects of
new firmwares in the future, I‘ve opened a new repository category \Programming\Alt.NXT-G. The new
category will hold links to firmware versions, NXT<->PC control software etc. Please email us
at repository@nxtasy.org to update on any new/upgraded Alt.NXT-G projects.
Add starLikeShareShare with noteEmailAdd tags
Sep 23, 2006 11:15 PM
iCommand v0.4 — Java NXT Programming
by eric
Plenty of NXT development news this weekend.
If Java programming is your fancy, you‘ll be thrilled to hear that Brian Bagnall‘s iCommand v0.4 is
now available. iCommand allows you to control your LEGO Mindstorms NXT with Java over a Bluetooth
connection. No custom firmware required. Best of all, it works with Windows, Macintosh, and Linux
systems. It‘s all very well documented, too.
New features include:
- Full Windows support and preliminary setup instructions for Mac OSX and Linux.
- I2CSensor and UltrasonicSensor support.
- Changed API so it duplicates architecture of leJOS API (static calls).
- iCommand now reads the COM port using the environment variable NXTCOMM.
- Fixed bug in Motor.stop() so it now stops dead instead of floating.
- Added an NXT class with methods for brick name, running Lego executables, checking versions,
checking memory.
- Added a (bad looking) GUI app called NXTDirect for controlling motors and sensors in the samples
directory.
Download this archive for API documentation, samples, and instructions. Thanks for the forum post,
Brian!
Add starLikeShareShare with noteEmailAdd tags
Sep 23, 2006 8:15 PM
NXT# 0.2 — A .NET Mindstorms NXT Library
by eric
Bram Fokke has released NXT# 0.2 (previously known as Visual LEGO). It‘s a library that makes it
possible to directly control the LEGO Mindstorms NXT with C# or VB.NET over a Bluetooth connection.
Add starLikeShareShare with noteEmailAdd tags
Sep 23, 2006 12:15 PM
The Tourist — A mindsensors.com PSP-Nx Review
by eric
Thanks goes to the kind folks at mindsensors.com for sending me their new PSP-Nx Sony PlayStation 2
controller interface for the LEGO Mindstorms NXT. I wanted to give the interface a spin and post a review,
so I put together a simple robotic vehicle that I affectionately call the Tourist (click here for hi-res). Is the
PSP-Nx a stud or dud? See the full review after the jump to find out!
I‘ve always wanted a way to remotely control my LEGO Mindstorms NXT creations. The most popular
option available thus far has been the use of second NXT set to act as a Bluetooth remote. It‘s certainly a
very cool way to get the job done (and pure in terms of NXT-only parts), but it‘s probably not a costeffective option for folks who have already plunked down the $250 for their first set. Free alternatives
include Microsoft Robotics Studio and a few homebrew projects, but they are currently in their infancies
and may each have a bit of a learning curve.
The mindsensors.com PSP-Nx is now available and, at a mere 35 bucks, it provides an easy and
inexpensive remote control solution for NXT fans on a budget. The interface is said to support any Sony
or third-party compatible PS2 controller. I picked up a Pelican 2.4 GHz wireless controller for about $20 at
a local game store.
A standard PS2 controller has two analog joysticks and 16 buttons — all of which can be read by the
PSP-Nx. I have heard that the two rumble motors within the controller can be programmed to provide
force feedback, as well. Speaking of programming, the PSP-Nx is currently only supported
by RobotC and NBC. With the imminent release of the LabVIEW toolkit, however, I expect an NXT-G
block for the PSP-Nx to shortly follow. In the interim, you can use the ultrasonic sensor block, but
functionality will be limited.
The terminal connector of your controller or wireless receiver plugs right into the PSP-Nx, which can then
connect to any of the four sensor ports on the NXT intelligent brick. When the interface is turned on, a
nifty LED indicator lets you know if you‘ve connected your controller terminal improperly. Learn to use this
indicator as installing the controller terminal can be tricky at times. The PSP-Nx uses a standard RJ-12
connector accepting a center latch, so a converter cable is provided to connect to the NXT‘s proprietary
port.
Unfortunately, I can‘t say I‘m a big fan of how the interface mounts onto the NXT. The PSP-Nx is a raw
circuit board with two pairs of mounting holes set three Technic modules apart. First off, the circuit board
has the depth of a stud, so you have to use hybrid connectors which don‘t really yield a secure mount (I
like to crash into things). Secondly, call me anal retentive, but a distance of three modules makes it a little
difficult to achieve symmetry along most beams. Hey, don‘t let all this scare you, though. The benefits of
remote control far outweigh these minor physical issues.
Ready to give the PSP-Nx a shot, I built the Tourist. It‘s nothing sophisticated. Rather, it‘s a simple
vehicle where two motors drive the rear wheels and the third motor controls the front steering wheels
(sorry, no rack and pinion). The ultrasonic sensor gives it a jeepy look but could prove to be more
awesome if force feedback is sent to my controller when it encounters obstacles.
Programmed in RobotC, the Tourist uses the left and right analog joysticks to control steering and
acceleration, respectively. I mapped motor power levels to the values returned from the sticks to take
advantage of their full ranges. Thus, movement is not a matter of stop and go, but a gradual increase or
decrease in acceleration like it should be. It was easy and worked out well.
Remote control was straightforward. After compiling, I set the Tourist down, ran my program, and enjoyed
the freedom of controlling my new creation. The wireless range, although a function of your controller and
not the PSP-Nx, was spectacular. The sky‘s truly the limit with the PSP-Nx and it‘s probably the best
addition to any LEGO Mindstorms NXT set.
Good:
Look Ma, no wires! It‘s absolute remote bliss at an affordable price.
Supports all 16 buttons and both analog joysticks.
Not so Good:
Does not currently support NXT-G.
Questionable mounting mechanism.
Verdict:
The PSP-Nx is a stud. Despite a few minor issues, it‘s a must-have for any NXT fan yearning for remote
control.
Add starLikeShareShare with noteEmailAdd tags
Sep 23, 2006 10:15 AM
Meet Dave Astolfo‘s Tiltbot
by eric
Fresh on the heels of DominoBotNXT, our good friend Dave Astolfo does it again with another excellent
creation that he calls Tiltbot! He started this project to test and review the new Techno-stuff Tilt Sensor.
Can‘t wait to see a video!
The general idea was to build a robot that would navigate over varying terrain (eg. a few books etc), with
a high center of gravity so that it could easily flip forward or backward. Then, to have the center NXT brick
unit (seen in picture) to auto level itself to ensure that the robot weight was balanced and not flip over.
The Tilt Sensor would allow for it to detect when it was riding up on an object and then shift the NXT unit
forward or back depending on where the weight was shifting.
Learn more about Tiltbot over at Dave‘s site: http://www.astolfo.com/
Add starLikeShareShare with noteEmailAdd tags
Sep 21, 2006 10:19 AM
Ruby-NXT Project Site
by eric
An official project site has been established for ruby-nxt — an interface written in the Ruby programming
language that enables Bluetooth control of the LEGO Mindstorms NXT.
Thanks, Matt!
Add starLikeShareShare with noteEmailAdd tags
Sep 21, 2006 10:19 AM
Build Instructions for Leguan
by guy
Matthias has published building instructions for Leguan. They can be accessed from our repository
\Projectscategory.
Add starLikeShareShare with noteEmailAdd tags
Sep 21, 2006 10:19 AM
New NXT Wallpaper Available
by eric
Want to dress up your desktop a little bit? National Instruments is now offering wallpaper sets that
highlight the LabVIEW-powered LEGO Mindstorms NXT. Enjoy.
Add starLikeShareShare with noteEmailAdd tags
Sep 21, 2006 10:19 AM
Toy for Tomorrow Award: LEGO Mindstorms NXT
by eric
Hamleys, one of the world‘s largest toy shops, has announced what it considers the best toys of the year.
The new LEGO Mindstorms NXT has taken the top spot in the Toy for Tomorrow category. Congrats!
Add starLikeShareShare with noteEmailAdd tags
Sep 21, 2006 9:19 AM
NIDays 2006 - Savoy Place, London
by eric
The UK semi-equivalent of NIWeek, National Instruments will hold a one-day conference
called NIDays that will feature all the coolest innovations in virtual instrumentation. The LEGO Mindstorms
NXT, powered by NI LabVIEW, will definitely be on exhibit.
To get an idea of what one might see at NIDays, see Dick Swan‘s NIWeek trip report.
Add starLikeShareShare with noteEmailAdd tags
Sep 21, 2006 9:19 AM
LiNXT - Linux to NXT Communication
by eric
There‘s a neat new project in the works called LiNXT that allows communication between the LEGO
Mindstorms NXT and Linux via USB.
This communication includes downloading files from, and uploading files to the brick; retreiving device
information, including the firmware and protocol versions, the bluetooth address, and the amount of free
flash memory; listing the files on the brick; and getting the current battery level.
The Perl source code is available on the project site on Google Code under Artistic License/GPLv2.
Check it out!
Thanks for the email, Ben!
Add starLikeShareShare with noteEmailAdd tags
Sep 19, 2006 12:19 PM
LEGO Education Focus Group Survey
by eric
The folks over at LEGO Education are searching for a few teachers to participate in a product
development focus group. Those who are interested are instructed to take a survey.
Add starLikeShareShare with noteEmailAdd tags
Sep 19, 2006 1:19 AM
Toy Companies Push High-Tech Robotic Toys
by eric
There is an interesting article in this week‘s Time about the push from toy companies this holiday season
to wow young consumers with high-tech toys.
With young consumers growing out of toys faster and preferring iPod digital music players and video
games, the nation‘s toy makers are working harder to come up with more high-tech products, particularly
robotic playmates.
Towards the end, the article makes mention of the LEGO Mindstorms NXT and how it will allow LEGO to
enter alternative channels that in the past would not normally sell their products.
Add starLikeShareShare with noteEmailAdd tags
Sep 19, 2006 12:19 AM
Bricksmith 1.5 Now Available
by eric
Bricksmith 1.5, a Macintosh LEGO modeling application based on the popular LDraw library, is now
available.
New Features
* Minifigure Generator
* Move and Rotate panels
* Pressing x,y, and z keys rotates parts
Bugs Fixed
* Holding option while nudging parts reliably selects the third axis
* Circumvented problem on Intel iMacs preventing selected parts from being displayed
If you don‘t have them already, here is the link to the unofficial LDraw parts for the LEGO Mindstorms
NXT.
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2006 11:20 AM
MS Robotics Studio September 2006 CTP Released
by eric
Microsoft Robotics Studio sees an updated community technology preview for September. New hardware
support, simulation tutorials, and programming and service improvements are included. One of the
tutorials provided with the installation demonstrates how to enable remote drive-by-wire via MSN Live
Messenger (shown above).
The online tutorials section gets an update, as well, with robotics and Visual Programming Language
lessons. Enjoy.
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2006 9:19 AM
2006 FLL Challenge: NANO QUEST
by eric
Per David Levy, the new FIRST LEGO League challenge for 2006 has been announced. The theme this
year will be nanotechnology. As you can see, the board and obstacles look pretty awesome.
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2006 9:19 AM
PC Magazine Reviews LEGO Mindstorms NXT
by eric
Lance Ulanoff of PC Magazine gives a pretty extensive review of the LEGO Mindstorms NXT as he takes
it for a spin with his 11 year old.
Bottom Line:
LEGO Mindstorms NXT is an excellent upgrade to an already worthy robot-building kit.
Pros:
Well-built. Easy to follow instructions. Fun and learning for all ages.
Cons:
Some instructions are all visual. Similar-looking parts can lead to confusion. Bluetooth lacks detailed
instructions.
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2006 2:19 AM
Press Release: LEGO Embraces 3rd-Party Development
by eric
Official word has now been published regarding the LEGO/HiTechnic collaboration.
The LEGO Group today announced partnership with HiTechnic to allow the manufacture and sale of
hardware accessories certified by the LEGO Group for the newly-released LEGO® MINDSTORMS® NXT
robotics toolset. This debut partnership represents the evolution of the company‘s commitment to
community-driven innovation and open-source development surrounding the launch of its next generation
robotics system.
See our report when the news first broke at BrickFest 2006.
Add starLikeShareShare with noteEmailAdd tags
Sep 16, 2006 2:19 AM
Robotics Investigation Force - 1st Mission Available
by eric
In case you‘ve missed it, the Robotics Investigation Force site has been updated and the first mission is
available. I must say that this is a wonderful way to expand the LEGO Mindstorms NXT beyond the
standard kit robots. Please check it out.
The Robotics Investigation Force was created to investigate the Unusual, the Unexplainable, and the
Unimaginable. Using a Mindstorms NXT Robotics kit, agents can elect to take on certain missions for the
Robotics Investigation Force. Mission Details are downloaded by an agent in the ‗R.I.F. Mission File‘ — a
collection of PDF files that contains everything the agent needs to fulfill a mission‘s objectives.
Completion of the assignment is left to the agent, and there is no deadline or required completion time.
Each mission typically involves the agent using a MissionBot to assist with the investigation.
Thanks for the email Rick!
Add starLikeShareShare with noteEmailAdd tags
Sep 14, 2006 1:44 AM
Two new Technic solutions
by guy
We continue to add more Technic solutions to our \Projects\Technic section of NXTasy Repository. Two
new contributions are the steering mechanism from Bryan Bonahoom‘s CAS (Collision Avoidance
System) and a simple (yet elegant) ball caster designed by Brian Davis.
Add starLikeShareShare with noteEmailAdd tags
Sep 13, 2006 9:44 PM
Next Bytes Code 1.0.1 b8 Available
by eric
John Hansen has released an updated NBC beta.
This beta release adds call, release, abs, sub, and waitv opcodes. It also makes the preprocessor
operate recursively on both parameterized and non-parameterized macros. It fixes a typo in the
NXTDefs.h header file and adds some standard preprocessor macros for motor control. The compiler has
a major new optimization feature which removes unused variables and threads/subroutines from the
compiled executable. In b7 I accidentally broke the ―wait‖ opcode support that was added in b6 but that
support has been restored in b8.
Add starLikeShareShare with noteEmailAdd tags
Sep 11, 2006 6:39 AM
Building Instructions for Dicke Bertha Typ II
by guy
The building instructions for Dicke Bertha Typ II were published by Matthias. From the web site:
The Ball Gun Dicke Bertha Typ II (German for: Big Bertha Mark II) is an enhanced version of Dicke
Bertha, a NXT driven gun for the Blue Ball contained in the NXT kit.
It additionally features a second motor for the firing mechanism, a (detachable) magazine for four balls
and a rotating Ultrasonic sensor for target detection.
To propel the five motors required, Dicke Bertha Typ II is controlled by two NXT bricks that communicate
via Bluetooth.
You can find the instructions on the website and in our repository item for Dicke Bertha Typ II.
Add starLikeShareShare with noteEmailAdd tags
Sep 11, 2006 12:38 AM
Pocket-lint — ―We love it.‖
by eric
With the LEGO Mindstorms NXT finally available in the UK, Pocket-lint got the chance to give it a good
spin and has published a review. They love it, giving it a 9 out of 10 rating.
Lego has managed to create the perfect balance between a hardcore robotics kit and kids play without
loosing [sic] focus along the way.
Add starLikeShareShare with noteEmailAdd tags
Sep 10, 2006 5:39 PM
Need a Fourth Motor?
by guy
Need a fourth motor in your NXT ? Here‘s a possible solution…. Well, partial solution at least. Sometimes
it is enough to have one motor doing one of two possible functions. The small worm-gear motor
―multiplexer‖ sub-assembly published here allows you to do this easily. When you rotate the horizontal
axle CW the worm gear drives one of the 8-tooth gear. When you rotate it CCW, the worm gear slides
and drives the other 8-tooth gear.
Add starLikeShareShare with noteEmailAdd tags
Sep 8, 2006 9:39 AM
PPS35-Nx Now Shipping
by eric
The mindsensors.com PPS35-Nx pnematic pressure sensor for the LEGO Mindstorms NXT is now
shipping. The pre-calibrated sensor is capable of measuring pressure levels up to 35 PSI at 10-bit
resolution and .045 PSI sensitivity. Not only is it compatible with LEGO Pneumatics, but also any other
pneumatics system as long as a tubing adapter is used.
The PPS35-Nx is an analog sensor, so it can be used in NXT-G as a light sensor with the standard block.
Calibration curves are provided to translate sensor readings to pressure levels. The sensor is also
compatible with RobotC and NBC.
Add starLikeShareShare with noteEmailAdd tags
Sep 7, 2006 12:39 PM
Big Robot on Campus
by eric
LEGO has updated the Mindstorms site with a bit of Big Robot on Campus coverage. Check it out!
You‘ll get an inside look at some of the most talented minds at WIRED magazine, GAP Kids, Microsoft,
AOL, Reebok and the Massachusetts Institute of Technology. And you‘ll see NXT bots created by other
leading groups!
Add starLikeShareShare with noteEmailAdd tags
Sep 7, 2006 1:39 AM
IGN on Mindstorms Evolution
by eric
IGN has posted a brief article on the evolution of LEGO Mindstorms. The article is pretty much all fluff —
sorta like this post, I suppose.
Add starLikeShareShare with noteEmailAdd tags
Sep 6, 2006 4:39 PM
DAZLR Instructions on NXTasy.org !
by guy
The building instructions for DAZLR (Dual Action Zamor Launching Robot) created by Brian Davis have
finally been formatted and prepared for publication!
The instructions can be found in our repository \Projects folder or accessed right here. Enjoy!
Add starLikeShareShare with noteEmailAdd tags
Sep 6, 2006 8:39 AM
JNXT: Gesture-based NXT Controller
by eric
Stefano Sanna has created an application that allows him to control his LEGO Mindstorms NXT from a
PDA. Gestures on the PDA‘s touchscreen translate into commands sent over bluetooth to his robotic
vehicle. See thevideo.
Add starLikeShareShare with noteEmailAdd tags
Sep 5, 2006 9:39 AM
Techno-stuff NXT Support Roadmap
by eric
Pete Sevcik from Techno-stuff was kind enough to send nxtasy.org some information regarding its
support roadmap for the LEGO Mindstorms NXT.
The support rollout will occur in three phases:
The first phase is to test current RCX products with the Lego NXT conversion cable (W770323).
The second phase is to modify some of my existing RCX sensors for native attachment to NXT.
The third phase is to develop new products utilizing the enhanced features of NXT.
Phase one is nearly complete and many of my sensors are now supported for attachment to NXT. I am
investigating an anomaly in the results of my musical pitch sensor. My current theory is the scaling
algorithm that converts RAW into 0-100 is different in the default NXT. This is only a theory and is not
proven yet.
Although the RCX has been replaced with a better product there are still a large number in the field.
Techno-stuff will continue to release new products for the RCX as long as the market justifies it.
Be sure to check out all the cool Techno-stuff sensors that are now supported for attachment to the NXT.
Techno-stuff now also carries the LEGO NXT/RCX conversion cable that can be purchased individually.
Thanks for the info, Pete!
Add starLikeShareShare with noteEmailAdd tags
Sep 5, 2006 8:39 AM
New Website by Bryan Bonahoom
by eric
Bryan Bonahoom has created a new website! It‘s currently under development, but we can expect lots of
good information on NXT, FLL, and more. What will we see next coming out of Bryan‘s labs?
Well, Bryan‘s W.O.P.R. has sure seen a lot of buzz lately. The BrickFest video of W.O.P.R., featured first
onnxtasy.org, has made the headlines on TechEBlog and Slashdot! It is also the 13th most viewed and
46th most linked video in YouTube‘s Science & Technology section this week. Congrats, Bryan!
Add starLikeShareShare with noteEmailAdd tags
Sep 4, 2006 7:39 PM
Next Bytes Code 1.0.1 b7 Available
by eric
John Hansen has released an updated NBC beta. Version 1.0.1 b7 includes ―a new symbol table
generation feature (-Y) along with a significantly faster preprocessor.‖ A couple of bugs have been fixed,
as well.
Add starLikeShareShare with noteEmailAdd tags
Sep 3, 2006 3:50 PM
NRLink and PSP-Nx Shipping Soon
by eric
Our BrickFest coverage included a look at several new products coming to the LEGO Mindstorms NXT
frommindsensors.com. Their site has been updated and they are now accepting orders for the NRLink
and PSP-Nx. Looks like they‘ll both be shipping next week.
The NRLink is an infrared adapter that allows communication between an NXT and RCX.
The PSP-Nx makes it possible to control an NXT from a PlayStation controller.
Add starLikeShareShare with noteEmailAdd tags
Sep 2, 2006 2:40 PM
A HiTechnic compass, RobotC, and 100 lines of code…
by eric
There‘s been a lot of great coverage on HiTechnic‘s new compass sensor - the first product offered as the
result of the company‘s collaboration with the LEGO Group. But since the product has not yet officially hit
the store shelves, an NXT-G block is not available from HiTechnic to read the compass bearing. The
workaround thus far has been to use the standard NXT-G ultrasonic sensor block to retrieve a single byte
(at 0×42) representing half the bearing and multiplying that value by two. Unfortunately, this means that
we lose some precision in our measurement.
To see HiTechnic‘s compass truly shine, I decided to create a simple test program in RobotC to
communicate with it via the I2C protocol and concurrently read the first byte at 0×42 and the odd/even
byte at 0×43. The result is the full bearing range from 0-359 degrees.
For every value retrieved at 0×42 (0-179), there is a value of 0 and 1 at 0×43. Thus, for the even byte, the
bearing equals the value in 0×42 multiplied by two. For the odd byte, the bearing equals the value in 0×42
multiplied by two then one added to the result. Cool? Cool!
See the source code. The program reads the bearing from the compass and outputs it to the LCD on the
intelligent brick. To use in a more sophisticated robotics application, the ReadBearing() function can be
dropped right into its source code - provided the ports, addresses, and sensor type are defined. Enjoy!
Add starLikeShareShare with noteEmailAdd tags
Aug 31, 2006 3:43 PM
BrickFest ‗06 - Dave on DominoBotNXT
by eric
I hung out with Dave Astolfo a bit last weekend at BrickFest and he took some time to tell me about
DominoBotNXT. A project that was initially created for a pretty successful Mindstorms book, Dave has
since put the robot through several revisions. In this video, he talks about its evolution and gives it a spin.
Add starLikeShareShare with noteEmailAdd tags
Aug 31, 2006 8:43 AM
Ars Technica Reviews NXT
by eric
Ars Technica‘s Nate Anderson has reviewed the new LEGO Mindstorms NXT. The good, he says, is that
the ―programming system [is] easy enough to let Grandma build a ‗bot.‖ He was disappointed, however,
that it did not come with a death ray. Me too! Perhaps we‘ll someday see a certified third-party death ray.
Until then, I guess a spring missle launcher will suffice.
Add starLikeShareShare with noteEmailAdd tags
Aug 31, 2006 8:43 AM
First Looks: HiTechnic Compass Sensor
by eric
I‘m a HUGE fan of Filip‘s writing over at bNXT. He has recently updated his site with a great preview of
the new HiTechnic compass sensor.
The new HiTecnic Lego brick adds value to my NXT set, and I believe sensors like these will bring more
people to buy the LEGO MINDSTORMS NXT set. Users will have a wider range of sensors to build robots
with. So everyone wins.
- Filip Verhaeghe
Likewise, Brian Davis over at theNXTStep has also given its readers a first look at this exciting new
sensor.
I took a HiTechnic compass sensor and mounted it on JennToo, and then went ahead and wrote a
program to keep the compass sensor pointed due south. The result is a fun and impressive robot that
consistantly points in one direction (it‘s a $250+ compass… OK, I need to make something more practical
someday).
- Brian Davis
As you‘ll notice in both articles, Filip and Brian highly praise the seamless integration of LEGO and
HiTechnic hardware with this compass sensor. I wholeheartedly agree and cannot wait to see what else
is on the horizon as the result of this terrific collaboration.
REMINDER: After all this praise to the new HiTechnic Compass sensor - the winner of the NXTasy
Challenge will get one of these new sensors free of charge from HiTechnic! Click here for details.
Add starLikeShareShare with noteEmailAdd tags
Aug 30, 2006 10:43 PM
BrickFest ‗06 - mindsensors.com Controls a Skull Bot
by eric
For yet another look at the new mindsensors.com PlayStation wireless controller for the LEGO
Mindstorms NXT, check out this video from last weekend‘s BrickFest. The guys hook it up to a skull head
robot built by Philip Eudy. Spooky, yet totally awesome! I want one!
Add starLikeShareShare with noteEmailAdd tags
Aug 30, 2006 5:43 PM
MS Robotics Studio - Service Tutorials
by eric
The documentation for Microsoft Robotics Studio, a new Windows-based development environment that
allows the creation of robotics applications for the LEGO Mindstorms NXT (and other robotics hardware),
has been pretty skimpy lately. In fact, any help thus far has consisted only of a few tutorial files provided
with the installation. Being familiar with software implementations, however, I can understand that the
focus may be centered first on getting the product to work before documenting how it works.
That said, I have to give kudos to the guys over at Microsoft for updating their site today with several new
Robotics Studio tutorials. The new content takes aim at creating and subscribing to services.
Writing an application using the Microsoft Robotics Studio is a simple matter of orchestrating input and
output between a set of services. Services represent the interface to software or hardware and allow you
to communicate between processes that perform specific functions.
If you are new to Microsoft Robotics Studio, we strongly recommend that you begin with these tutorials to
create a strong foundation upon which you can build as you progress with Robotics Studio.
It looks like they have several tutorials in the pipeline to cover general robotics and simulations, as well.
The great thing with these latest tutorials is that a robot is not required. Good for me 1000 miles from
home!
Add starLikeShareShare with noteEmailAdd tags
Aug 30, 2006 12:43 AM
BrickFest ‗06 - Man Meets Machine
by eric
You thought Kasparov vs. Deep Blue was epic?! Well, witness as I, a self-proclaimed tic-tac-toe virtuoso,
squared off against Bryan Bonahoom‘s W.O.P.R. at last weekend‘s BrickFest. It was a great battle that
ended in a draw, but even more impressive was the robot itself.
See the video.
In describing the robot, here‘s what Bryan told nxtasy.org:
W.O.P.R. is a robot that exploits the advantages of NXT over RCX. I previously constructed an RCX
based robot to play Tic-Tac-Toe. Obtaining the accuracy required (1/2 a stud in two directions) to play
cubes was very difficult and it required many pieces and sensors. With the NXT, I simply used the built in
motor encoders. Additionally, it was difficult to get the required dynamic range out of the RCX light sensor
to distinguish between filled cells and empty cells on the board. The led to much more complicated
solutions to detect the cubes on the board. The NXT light sensor is able to consistently distinguish
between cubes and empty cells.
All of this led to an ability to construct a much simpler robot. I also changed the cube size from 4 studs
with the RCX robot to 2 studs. Simpler robot and smaller cubes allowed me to construct a much smaller
and portable robot. Additionally, this led to a higher reliability. The WOPR ran through BrickFest without
any physical breakdowns. The only time it had difficulty playing consistently was when the batteries were
extremely low.
The NXT display also enables the inclusion of instructions to the user on resetting the robot. This allowed
WOPR to run unattended. I just wish I had included a game counter in the code.
As a side note: Some of the readers may not be old enough to remember the movie War Gamesfrom the
early 1980‘s. This is where the name of my robot came from. WOPR stands for War Operations Planned
Response. If you look at the NXT carefully, you will see that it is named Joshua.
Add starLikeShareShare with noteEmailAdd tags
Aug 29, 2006 9:43 AM
BrickFest ‗06 - LEGO Ambassador Slideshow
by eric
Tormod Askildsen, head of Community Development at the LEGO Group, discusses the LEGO
Ambassadorprogram during his BrickFest keynote address.
View the presentation.
Add starLikeShareShare with noteEmailAdd tags
Aug 28, 2006 2:09 PM
BrickFest ‗06 - New mindsensors.com Products
by eric
I stopped by the mindsensors.com booth at BrickFest to get a sneak peek at some of their exciting new
products for the LEGO Mindstorms NXT.
Deepak first showed me a robot using their new magnetic compass sensor (now shipping). With logic to
maintain an orientation to the north, the robot quickly compensated as he turned the platter beneath it. He
also told me about an RCX-NXT communication adapter that hooks up to the NXT and is capable of
controlling RCX motors and sensors with its IR link.
Finally, I watched Nitin demonstrate remote control of a vehicle using a wireless PlayStation controller
adapter. With the ability to program both analog joysticks and all 14 buttons, there are plenty of options
available to builders to control their NXT creations remotely.
See the video.
Add starLikeShareShare with noteEmailAdd tags
Aug 28, 2006 1:09 PM
Time Machine
by eric
Building instructions for Matthias Paul Scholz‘s Time Machine have been posted. It really works, too!
Build it yourself, but please proceed with caution. I‘ve said it before, but I‘ll say it again - Matthias rocks.
See the video.
Add starLikeShareShare with noteEmailAdd tags
Aug 28, 2006 1:09 PM
New MDP Profile - John Hansen
by eric
The Meet the MDP‘s section on the LEGO site has been updated to include a profile of John Hansen.
Known for the plethora of programming utilities he has contributed to the Mindstorms community, it‘s
great to learn a little more about him.
Add starLikeShareShare with noteEmailAdd tags
Aug 28, 2006 12:09 AM
Solid Modeling
by eric
Thanks to Bernard for sending us a link to Solid Modeling - Resource Primer for 3D Artists. Developed by
Carnegie Mellon, it serves as a repository for Pro/ENGINEER Wildfire 3D models for those interested in
designing and animating with LEGO Mindstorms NXT parts.
Add starLikeShareShare with noteEmailAdd tags
Aug 27, 2006 5:09 PM
Try THIS with the NXT ball!
by eric
It seems to be the latest craze in LEGO land for builders to come up with clever ways to incorporate the
NXT ball with their robots. Anybody up to try this one?
Meet BallBot - a robot developed at Carnegie Mellon University capable of balancing on a single spherical
wheel.
In a premlinary experiment paper entitled ―One is Enough!―, BallBot‘s researchers proclaim ―multi-wheel
statically-stable mobile robots for operation in human environments are an evolutionary dead end.‖ Bold
statements, I‘d say, probably directed at the well-publicized Segway. ―Robots of this class tall enough to
interact meaningfully with people,‖ CMU researchers say, ―must have low centers of gravity, overly wide
bases of support, and very low accelerations to avoid tipping over.‖ A single spherical wheel, however,
will reduce a robot‘s footprint and allow it to turn in any direction quickly.
Here are a few CMU videos of BallBot:
Response to Disturbance
Point-to-Point Motion
Press Release:
BallbotAugustFinal.pdf
BallBot is also featured in the September issue of Popular Science. It‘s available now on news stands
andonline.
There you have it. The math is provided in the research papers. So I‘d say pick up a few acceleration
sensors from mindsensors.com or Vernier, and get to it!
Add starLikeShareShare with noteEmailAdd tags
Aug 27, 2006 12:09 AM
BrickFest ‗06 - John Brost‘s Camera Bot
by eric
MDP member John Brost was kind enough to tell me about his LEGO Mindstorms NXT robot on display
forBrickFest. The robot uses two intelligent bricks, one for the vehicle and one for the controller,
communicating with each other via bluetooth. With a Kodak EasyShare V570 mounted on the front of the
vehicle, John is able to send streaming video back to his laptop with a wireless transmitter. It also comes
equipped with a BIONICLE Zamor sphere shooter that he demonstrates by pegging a kid in the leg.
Awesome.
See the video! At one point, he has a run in with another robot. He should‘ve pegged that one to death
with spheres. Muhahah..
Add starLikeShareShare with noteEmailAdd tags
Aug 26, 2006 6:09 PM
BrickFest ‗06 - LEGO Announces HiTechnic Collaboration
by eric
During the BrickFest 2006 keynote on Saturday, LEGO announced a pilot collaboration program
with HiTechnicto offer ‗certified‘ third-party LEGO Mindstorms NXT sensors. Per Stephen Barker, certified
sensors will use official LEGO casing and undergo rigorous quality testing. Sold via Shop@Home, the
program will allow worldwide visibility and accessibility to HiTechnic products.
Click here for a video of the announcement.
Add starLikeShareShare with noteEmailAdd tags
Aug 26, 2006 9:09 AM
Closeable Shovel
by eric
Building instructions have been posted for Matthias Paul Scholz‘s closeable shovel. You can find these in
our\Repository\Projects\Technic section.
The shovel was created to support Matthias‘ great ball contraption Vorrichtung Nr. 2.
Add starLikeShareShare with noteEmailAdd tags
Aug 25, 2006 5:15 PM
BrickFest ‗06 - Open-Source Firmware Soon?
by eric
During a LEGO Mindstorms NXT Q&A session with the MUP/MDP/MCP members, it was briefly
mentioned that LEGO may be releasing the NXT firmware source code within the next two weeks. We
will keep you posted if we find out more.
Add starLikeShareShare with noteEmailAdd tags
Aug 25, 2006 2:15 PM
Eric Arrives at BrickFest 2006!
by eric
I woke up pretty early this morning to make the 200 mile journey up to the Washington, D.C. area
for BrickFest 2006. Thank goodness I was able to avoid morning rush hour traffic as it‘s usually bad on
the route I took. After about 3.5 hours, I finally made it to the Sheraton Premier.
A nice big sign greeted me when I walked through the door. So far, the event looks well-organized. This is
my first BrickFest, but it looks like the turnout is really good. The people I‘ve met have been very friendly. I
can‘t wait to meet some of the MDP members!
All registered attendees are given LEGO parts to build their own badges. I, unfortunately, lack the
creativity to put together anything cool and original, but I did see one guy with a NXT sensor and those
orange claw tips attached to his badge.
I was in a bit of a hurry to make the Microsoft Robotics Studio speaker session, so I wasn‘t able to see
everything on display. I did manage, however, to take a quick shot of W.O.P.R. - a NXT Tic-Tac-Toe
game byBryan Bonahoom (hence, the B-squared). Click on the thumbnail for a higher resolution
photograph.
More coverage to follow!!
Add starLikeShareShare with noteEmailAdd tags
Aug 25, 2006 11:15 AM
BrickFest ‗06 - MS Robotics Studio
by eric
The first NXT-related session of the day featured a presentation by Geoff Gray on Microsoft Robotics
Studio. Geoff was fortunate enough to not only work with Microsoft to develop Robotics Studio, but also
with LEGO as aMindstorms Developer Program participant. Knowing early on that both projects were in
the works, he commented on the interesting challenge of avoiding the acknowledgment of the other‘s
existence due to concurrent nondisclosure agreements.
Equipped with a laptop, a beta of Windows Vista, and the latest CTP of Robotics Studio, Geoff gave us
an overview on each of the component files provided with the installation. He explained how Robotics
Studio essentially allows a developer to build services and expose them through a web interface. With
Fantom handling the low-level commands to the intelligent brick, the high-level programming becomes
much more simplified.
Geoff was unable to perform a drive-by-wire demonstration with his robot (probably due to the inability to
access the manifest without internet connectivity), but he will certainly let us know later this weekend if he
gets it to work. Stay tuned.
The final release of Microsoft Robotics Studio, including the simulation package, is slated for sometime in
October. It looks like it will remain as a free download.
Add starLikeShareShare with noteEmailAdd tags
Aug 24, 2006 3:57 AM
Hello World!
by eric
nxtasy.org says hello to all our readers across the globe!
Can you spot your location‘s dot? For a closer look at the top 500 reader locations across each part of the
world, click on either the thumbnail above or the following links:
North America
Europe
Asia
Australia
South America
Thank you for your support and we hope to continue providing a rich source of news and knowledge for
all things LEGO Mindstorms NXT!
Add starLikeShareShare with noteEmailAdd tags
Aug 24, 2006 2:57 AM
Brainier Robots, Brainier Kids?
by eric
Do children of today‘s generation need ‗brainier‘ toys to spark and maintain an interest in engineering and
sciences?
BusinessWeek‘s Stephen Wildstrom explores this idea in a new article on the LEGO Mindstorms NXT.
―Today‘s leading high-tech toys are video games,‖ says Wildstrom, ―which mostly give children vicarious
training in handling automatic weapons.‖ He adds, ―LEGO Mindstorms NXT could be a helpful antidote.‖
Add starLikeShareShare with noteEmailAdd tags
Aug 24, 2006 12:57 AM
Skye Updates ‗NXT Ramblings‘
by eric
FLL Freak‘s Skye Sweeney has posted a few rants regarding his beef with the LEGO Mindstorms NXT-G
language. Particularly, he takes aim at IDE performance, unattached comments, math operations, and
broken wires.
―I am not yet at the point of discouraging the use of NXT for FLL, but I am close,‖ Skye says, but he is
reserving final judgement hoping future firmware/software revisions resolve the issues. Else, he
continues, ―it could be a very long painful season.‖
In the interim, Skye has a copy of ROBOLAB 2.9 on order.
Add starLikeShareShare with noteEmailAdd tags
Aug 23, 2006 9:57 AM
Jutta the Easter Bunny
by eric
Matthias Paul Scholz is on a roll!
He has published yet another set of building instructions for his robots. This time for ‗Jutta the Easter
Bunny‘.
You can find the instructions in \Repository\Projects.
Add starLikeShareShare with noteEmailAdd tags
Aug 23, 2006 7:57 AM
BrickFest 2006 Schedule
by eric
BrickFest 2006 is just around the corner!
nxtasy.org hopes to bring our readers full coverage of the event — keynote
presentations, AFOL creations, LEGO Mindstorms challenges, and more!
Click on the thumbnail below to view latest published schedule -
Add starLikeShareShare with noteEmailAdd tags
Aug 22, 2006 3:34 PM
More building instructions
by guy
Matthias Paul Scholz has published building instructions for his 90-degree axis rotation assembly. You
can now find it in the Repository\Projects\Technic section.
Add starLikeShareShare with noteEmailAdd tags
Aug 22, 2006 10:34 AM
UK NXT Pre-Launch Coverage
by eric
The Engineer‘s latest issue features an article covering the pending UK launch of the LEGO Mindstorms
NXT.
Once again, Soren ‗Mr. Mindstorms‘ Lund gets the spotlight and outlines why this toolset is a different
beast than its competitors.
―There are a lot of robotics toys out there and they‘re all good, but pretty much all them are ‗what you see
is what you get‘,‖ says Mr. Lund in the article.
Evoking ―slow progress‖ with the review kit, The Engineer says ―the technical complexity of the kit
suggests that if the toy is accurately pitched at today‘s children, reports of falling educational standards
might be exaggerated.‖
Add starLikeShareShare with noteEmailAdd tags
Aug 21, 2006 9:42 AM
National Instruments - Startup to Stardom
by eric
The Austin American-Statesman has an article today in the business section featuring local Austin, TX
companyNational Instruments.
Dr. James Truchard, the CEO of National Instruments Corp., gives a little insight into how the company
began and its hopes that the LEGO Mindstorms NXT will give it the household name it deserves.
Add starLikeShareShare with noteEmailAdd tags
Aug 21, 2006 7:45 AM
Pneumatic Pressure Sensor
by guy
mindsensors.com will soon be releasing its Pneumatic Pressure Sensor for the LEGO Mindstorms NXT!
This new sensor will be useful for those who use LEGO Pneumatics with the NXT as its range will be
capable of measuring pressure levels from 0 to 35 PSI or 0 to 240 kg/sqcm.
The sensor will be compatible with NXT-G, RobotC, and NBC.
Update:
Following up on reader questions, we were able to obtain more details from mindsensors.com. The
pneumatic sensor can measure up to 35 psi, it is used as a light sensor (i.e. it is an analog sensor, not
digital, see here for a review on the difference) and when used in raw reading, it can provide sensitivity of
20 counts /psi. Please to refer the following plot.
Add starLikeShareShare with noteEmailAdd tags
Aug 19, 2006 11:05 AM
Revolutionary Robots
by eric
A Forbes special feature includes several well-written articles on robotics and how they are changing the
world. One of the articles has an interview with Soren Lund (featured on the magazine cover) and
describes how the LEGO Mindstorms NXT is ―helping bring what was once considered esoteric
engineering into the hands of enthusiasts everywhere in the world.‖
Add starLikeShareShare with noteEmailAdd tags
Aug 19, 2006 10:05 AM
Introduction to Robotics Studio Simulations
by eric
The Microsoft Developer Network has added a video introduction to simulations within Microsoft Robotics
Studio— a Windows-based development environment to create robotics applications.
George Chrysanthakopoulos outlines the advantages of simulating robotics in a virtual environment and
demonstrates remote joystick navigation with the LEGO Mindstorms NXT.
Add starLikeShareShare with noteEmailAdd tags
Aug 19, 2006 10:05 AM
Update: NBC Beta 1.0.1 b6
by eric
Just a day following the last beta release, a new beta of the command line Next Byte Codes compiler has
beenreleased (1.0.1 b6). No change history information is available at this time.
Add starLikeShareShare with noteEmailAdd tags
Aug 18, 2006 6:05 PM
Another R.I.F. email
by guy
We received this email from the so-called ―Robotics Investigation Force‖:
Attached is a fragment of the RIF newsletter. We enjoy the many NXT blogs and do not wish to focus our
attention on any one blog. For that reason, we would like to offer your readers something on behalf of the
RIF. We hope they have some ―fun‖ with it.
Poe
Agent 27
www.rifagent.com
See the attachment pdf file here: Parchment1.pdf
Add starLikeShareShare with noteEmailAdd tags
Aug 18, 2006 2:17 AM
Matthias Paul Scholz‘s ―Slug‖ Unveiled!
by guy
Matthias has published building instructions for his ―Slug‖ NXT bot. We added links to these in our
repository\Projects category.
Reminder: the NXTasy repository \Projects category holds fully-detailed building projects with building
instructions for you to follow. If you make a nice NXT bot and wish to share it with everyone, send it
torepository@nxtasy.org !
Add starLikeShareShare with noteEmailAdd tags
Aug 17, 2006 6:17 PM
NBC Update
by rachel
No, not that NBC. Version 1.0.1.b5 beta of Next Byte Codes was released today with improved
preprocessor support.
Go grab it for Windows, Mac, or, as previously reported, Linux.
And if you haven‘t tried them already, have fun with the sample programs.
Add starLikeShareShare with noteEmailAdd tags
Aug 17, 2006 12:11 PM
NIWeek ‗06 - Keynote Presentations
by eric
National Instruments has uploaded quite a few videos of the keynote presentations from last week‘s
NIWeek 2006. Enjoy.
NXTasy.org‘s Dick Swan attended the conference and published a great article about his trip. If you
missed it, be sure to check it out!
Add starLikeShareShare with noteEmailAdd tags
Aug 17, 2006 12:11 PM
Meet the Robots
by eric
The official LEGO Mindstorms NXT overview page has been updated with a ‗Meet the Robots‘
section. The new content features the out-of-box robots and provides interactive descriptions,
hardware highlights and code explanations.
Add starLikeShareShare with noteEmailAdd tags
Aug 17, 2006 11:12 AM
Bot Buddies
by eric
An article over at New Scientist digs into research in Sweden to develop robots that can ―remotely tap into
each other‘s sensors and computers in order to perform tricky tasks‖. Örebro University‘s Robert Lundh
says his robots do not use hard-coded cooperative behavior. Rather, he tells New Scientist, the robots
―plan for themselves how to draw on their capabilities and those of others.‖
In one experiment, two robots were tasked to carry a fixed length of wood on their heads. Relaying
information about the other‘s speed and direction allowed them to keep the wood beam balanced.
Another experiment demonstrated how two robots with limited vision could help each other through a
doorway.
The article is a good read, so check it out. No mention of the LEGO Mindstorms NXT, but with multiple
sets, similar experiments are certainly possible.
Add starLikeShareShare with noteEmailAdd tags
Aug 16, 2006 1:05 AM
Sci Fi Channel Reviews LEGO Mindstorms NXT
by eric
The Sci Fi Channel has posted a review of the LEGO Mindstorms NXT in their website‘s Sci Fi Tech
section. Michael Trei praises the Bluetooth and open-source firmware, but like other reviews, is not too
fond of the $250 price tag or lack of memory. Overall, his impressions are good and he gives it an Agrade calling it ―just the sort of hands-on diversion needed for someone at risk of developing carpal tunnel
syndrome.‖
Add starLikeShareShare with noteEmailAdd tags
Aug 16, 2006 12:05 AM
New Repository Category - Technic
by guy
A new category has been added to our repository - \Projects\Technic
This new repository category will hold all contributed LEGO Technic sub-assemblies with full building
instructions. Found a cool technical solution you wish to share with the community? Here‘s the place to
put it! All items should contain building instructions (or otherwise be sufficiently detailed to let you build
the sub-assembly yourself).
For starters, we thank Bryan Bonahoom for sharing with us the construction details of the differential
transmission used in his CAS steerable vehicle. It is made from only the standard LEGO Mindstorms NXT
set parts.
We encourage you all to send us your Technic inventions by sending an email to repository@nxtasy.org.
Take a look in our other repository categories, as well. We‘re sure you‘ll find some great stuff there
already!
Add starLikeShareShare with noteEmailAdd tags
Aug 14, 2006 7:29 PM
Web-Controlled NXT Robot
by eric
Andrew, known as Legoguy in our lively forums, has created a LEGO Mindstorms NXT robot controllable
by anyone via the internet.
Armed with a Vision Command camera, daring explorers can roam the robot‘s terrain using an internet
dashboard. The interface is flexible to either click-and-hold presses of the controls or text input.
Commands are subsequently sent from Andrew‘s machine to the robot over Bluetooth.
This project is all running from Andrew‘s home server. Thus, to facilitate communication between those
who are controlling the robot and those who are spectating, he has established an IRC server
(turbogfx.homelinux.org) with a channel (#robot) for people to meet and chat. Enjoy!
Links:
Web-Controlled NXT Robot Pictures
Web-Controlled NXT Robot ‗Dashboard‘
Original Web-Controlled RCX Robot Pictures
Discussion Topic in our Forums <-- Leave comments here..
mIRC (PC IRC Client)
X-Chat Aqua (Mac IRC Client)
Add starLikeShareShare with noteEmailAdd tags
Aug 14, 2006 12:18 AM
1000+ Posts in NXTasy Forums!
by eric
The nxtasy.org team would like to thank all of our readers for visiting our site and helping it become a
great LEGO Mindstorms NXT user community! We‘ve reached over 1000 posts in our forums in only a
month and a half!
To celebrate this great milestone, msim, who is currently the top poster in our forums at 176 posts (as of
August 13th at 8:30PM EST), will be receiving a brand new LEGO Rechargeable Battery Set. We hope to
celebrate more wonderful milestones like this in the future. Thanks again!
Add starLikeShareShare with noteEmailAdd tags
Aug 14, 2006 12:18 AM
New MDP Profiles
by eric
The LEGO MDP Invention Gallery has been updated with two new profiles - Michael Brandl and Andreas
Dreier. Both profiles include a NXT solution for decorating eggs. And if you recall, nxtasy.org published
a post last month featuring Andreas‘ cool plotter.
Add starLikeShareShare with noteEmailAdd tags
Aug 13, 2006 5:18 AM
Prototype Vernier Sensors Adaptor
by guy
Vernier Software & Technology supplies many different sensors for educational purposes working with a
wide variety of measurement systems. With the release of the LEGO Mindstorms NXT, Vernier officially
joined acollaboration with LEGO Education to develop curriculum and sensors. Vernier‘s sensors are
analog based and connecting them to the NXT requires some electronics (impedance matching etc.) for
which they are designing an appropriate adaptor.
Above is a picture of the Vernier sensors adaptor prototype. It will allow interfacing of the NXT brick with
all Vernier sensors with ―British Telecom Analog Connector‖ (BTA) which are listed as X-BTA part
numbers on theirwebsite (about 40 different sensors!). According to Vernier, the adaptor will be out in the
market in a few months.
Add starLikeShareShare with noteEmailAdd tags
Aug 11, 2006 12:12 PM
―NI Week‖ Trip Report
by dick swan
NI Week is National Instruments annual sales conference held in Austin, TX. There was a very strong
LEGO and Mindstorms flavor at this year‘s conference with several significant Mindstorms
announcements. There was great attendance by many influential people in the Mindstorms community.
The contents of this post include not only the ―formal‖ NI Week activities but also describe advanced
Mindstorms ―sensor‖ technologies that I was quietly demonstrating at NI week — including interfaces to a
wireless SONY Playstation Controller and (an almost complete) video camera connected to the NXT high
speed sensor port.
People Networking
This conference was a unique opportunity to meet almost all the movers and shakers behind the
Mindstorms development.




Soren Lund and several senior Lego executives from Denmark were in attendance.
Everybody from NI that was associated with the NXT was there.
Several members of the MDP came from out of town.
There were several attendees from Tufts and Carnegie-Mellon. Both of these universities
have been developing terrific educational materials for the NXT. They‘ve spent all summer
running pilot trials on a variety of new NXT training and education classes. They have
classes for both students and educators.
Here‘s a picture of MDPers Brian Davis, Steve Hassenplug and Chris Smith at lunch with most members
of the National Instruments NXT development team. It was a bit sad, but not unexpected, to learn that
many of the NI team have finished their work on NXT and are transitioning to other projects.
A personal highlight was unexpectedly meeting and having a long chat with Fred Martin. I‘ve read about
Fred‘s early work at MIT but never dreamed that I‘d ever meet him. Fred designed the Handyboard — the
first autonomous robotics controller for LEGO bricks and motors. It was the Handyboard‘s success over
15 years ago that eventually led to the Mindstorms products. Fred presented a paper on his next
generation Handyboard which will be available later this fall. It‘s a very powerful system based on the
AMD Blackfin CPU. Naturally it can be programmed in ―embedded LabVIEW‖ as well as a variety of
conventional text based programming languages.
Buy a NXT at the Apple Store
Did you know that Apple is selling the NXT in their stores? Here‘s Steve Hassenplug talking to a rep from
the local Apple store (the picture resolution is too low to see the white blob on her T-shirt is the Apple
logo]. You could buy a NXT at the Apple booth in the exhibit hall. Unfortunately there was no show
discount!
Steve has so many NXTs I don‘t think he needs another one. Steve‘s holding his holonomic robot in his
right hand; it has three equally spaced wheels which allows the robot to instantly travel in any direction
without mechanical steering.
LabVIEW Toolkit for the NXT
Brian Davis partnered with John Field of NI on a conference presentation on the NXT. John‘s talk
explained the details on the newly announced LabVIEW toolkit for NXT.
Here‘s Brian getting ready for his presentation. The second picture shows the packed audience.
I‘ve had a chance to review an early version of the tool kit. It‘s really powerful. There are two main
components.
1. The first component is for the experienced LabVIEW programmer. This toolkit allows you to
use the standard LabVIEW environment rather that the MINDSTORMS NXT software to
program the NXT brick. This gives you a lot more control in writing your programs. You‘ll be
able to write NXT programs at the individual opcode / instruction level; each opcode will
represent a single ―subVI‖ (i.e ICON) on your program block diagram. While this
environment is much more powerful, the LabVIEW environment was not designed for a 10
year-old and has a steeper learning curve than MINDSTORMS NXT
2. The next component is the ―build a block‖ capability. This is the really exciting part. It‘s ideal
for defining support for third party sensors; in fact, these were stated as the primary target
for this functionality. With this toolkit, there are three steps you do in building your own block.
1. You write the low-level NXT instructions for the block. You start with a template that
defines the input and output connectors to your block and fill in the details for
interacting with your sensor.
2. You write the code for the configuration page (the GUI that is displayed in the lower
left corner of MINDSTORMS NXT). You start with a template and build the GUI
using regular LabVIEW. The toolkit has all the UI elements so that your config pane
looks like the ones that were shipped by LEGO.
3. You start with another template to write code that displays the graphical icon that
will be used for your block.
You‘re done. Your block is complete. This is the same toolkit that NI used internally in developing the
NXT-G blocks.
There has been a logjam in supporting new third party sensors on the NXT. Most (all?) of the available
digital sensors have been constrained to behave like a LEGO UltraSonic (US) sensor so that NXT-G
software can be ―tricked‖ into supporting them. This means that any value they return has to fit into a
single byte because that‘s what the US sensor support.
So for example, a digital compass might return reading values of 0 to 180 representing even numbered
(0, 2, 4, 6, …., 358, 360) degrees. With the ―build a block‖, the return value could be the true higher
resolution available with the sensor. I‘m sure the release of the toolkit will accelerate the availability of the
new sensors.
Vernier Software and Technology – More Sensors for the NXT
One of the press announcements at NI Week was a new collaboration between LEGO, NI, Tufts
University, Carnegie-Mellon University and Vernier Software/Technology to ―to produce a continuum of
robotics sets, programming software, sensors, and curriculum aimed at students‖. The first four
companies/universities have always been visible in the NXT efforts. But who is Vernier? Vernier
(http://www.vernier.com/probes) happens to be one of the biggest suppliers of sensors into the education
market; the ability to use their sensors will add an incredible array of new sensors to the NXT.
Vernier makes dozens of different sensor types. The picture below shows four different Vernier sensors
(force, magnetic field, current, acceleration). For their newer sensors, Vernier has standardized on the BT
(―British Telecom‖) connector. The little black rectangular box in the picture is an prototype adaptor that
will convert between the Vernier and NXT cables/connectors.
A little more detail on the adaptor can be seen in the following picture.
One of the neat things about Vernier sensors is that all their newer sensors have an auto-identification
feature. You simply plug the sensor in and the ―host‖ system is able to determine the type of sensor.
Wireless SONY Playstation Controller Interface for the NXT
mindSensors has a really cool new ―sensor‖. It hasn‘t been formally announced yet, but I had an early
version that I was demonstrating. It‘s an interface to a wireless SONY Playstation Controller. Here‘s a
picture showing the complete system.
The blue controller is a ―MadCatz Predator‖ wireless controller for the Sony Playstation. I bought mine at
Walmart for $14.95. The black rectangular shape is the wireless base station that comes with the
MadCatz. There‘s a small $5 cable that converts from the Sony 9-pin connector format to the sensor. The
green circuit board is the ‗sensor‘ from mindSensors. There are four analog joysticks and 12 buttons on
the controller. The values of these can all be read by the NXT over the wireless link. It‘s a bidirectional
link so there‘s even control over the ‗rumble‘ motors in the controller handles – useful feedback for when
your robot crashes! The actual device driver for the sensor is written using the RobotC system – it‘s about
100 lines of code.
With the new Build a Block toolkit it will only be a matter of time before there will also be a NXT-G driver!
Here‘s a close up of the sensor and the wireless base station.
Sensors Galore
Some people bring their robots to an event like this to show off. Brian, Steve and Chris brought a lot – I
can‘t complete with them. So I brought my collection of NXT digital sensors. I need a sensor multiplexer.
Counter-clockwise from the top left are two different infra-red sensors for communicating with RCXs and
the existing infrared remote, a multiplexer for four legacy RCX motors, the SONY Playstation controller
interface, a standard LEGO ultra-sonic sensor, the Vernier adaptor and a prototype video camera for the
high-speed sensor port.
Video Cameras and the NXT
I‘m working on support for a smart video camera connected to the NXT using the high speed RS-485
sensor port. The device drivers for it use the RobotC system. Video cameras are already available on
several of the different robotics controllers supported by RobotC. For camera support on RobotC for NXT
it‘s a straight forward software porting and minor change to hardware from RS-232 to RS-485!
Prototype hardware is now complete. It was real easy. Start with a standard commercial camera (an
AVRCAM was used but a CMUCAM would also have worked) that was then modified to change from an
RS-232 to RS-485 interface required for the NXT high speed sensor port; the hardware change wasn‘t
much more than swapping an RS-232 signal driver IC with an RS-485 IC and accommodating pin out
differences. The modified camera is shown in the following picture.
The biggest remaining challenges are:
1. Converting onboard camera firmware from full duplex RS-232 based signaling to half-duplex
RS-485 signaling.
2. Testing the NXT high speed sensor port. This may be the first application for it.
3. Adding enhanced functionality to utilize the NXT‘s Bluetooth signaling to provide near realtime frame upload to the PC. Hopefully you‘ll get ―live‖ camera pictures on your PC!
4. Finding and selecting a hardware partner to (hopefully) productize the prototype.
The initial development used an unmodified camera with a RS-232 interface. It‘s connected to a standard
ARM7 development board (i.e. same CPU family as the NXT) which is running the RobotC firmware. See
picture below. The camera driver has now been developed for the RobotC system using this
configuration. Once the on-board camera firmware is modified to support RS-485 it will then easy to add
an RS-485 camera driver to the RobotC firmware and move it on to the NXT.
Add starLikeShareShare with noteEmailAdd tags
Aug 10, 2006 12:12 PM
Now Shipping: Mindsensors Motor Multiplexer for NXT
by eric
The Mindsensors Motor Multiplexer for the LEGO Mindstorms NXT is now shipping! From a single digital
sensor port on the NXT intelligent brick, this multiplexer allows the connection of up to four LEGO motors.
Add starLikeShareShare with noteEmailAdd tags
Aug 9, 2006 2:07 AM
New Review - NXT Digital Sensor Ports
by guy
A new review has been added to the NXTasy repository!
The review details the old RCX analog port function and the new NXT digital sensor architecture. The
essentials of I2C communications are explained, as well as basic NBC programming using I2C.
This review is NOT intended for hardware experts or professional hobbyists looking for the nitty-gritty
internal details, but rather to the common users who want to know some principles of the LEGO
Mindstorms NXT analog and digital architecture.
Part II of this review will be published soon and will explore RobotC I2C support and example third-party
I2C products which can expand your NXT capabilities.
Read the review here!
Add starLikeShareShare with noteEmailAdd tags
Aug 8, 2006 1:06 PM
NIWeek ‗06 - Carnegie Mellon/LEGO Education Develop NXT Curriculum
by eric
We‘ve known for quite some time about the collaboration between Carnegie Mellon and LEGO Education.
During this week‘s NIWeek 2006, however, they have published an official press release detailing the
collaboration on the new LEGO Mindstorms NXT curriculum aimed at middle and high school students.
―Students working with the new Carnegie Mellon curriculum are required to ‗do‘ math and science rather
than study them‖, says Robin Shoop, director of the Carnegie Mellon Robotics Academy, quoted in the
release.
The educational activities were developed using an iterative process with Pittsburgh-area schoolteachers.
Teachers would periodically visit the academy, work with the robot kits and Carnegie Mellon-developed
lesson, and provide feedback. Their suggestions would then be incorporated and assessed by the next
group of teacher-testers.
Foreign teachers rejoice: the CD-Rom will likely be translated in as many as nine languages.
The press release is as follows:
PITTSBURGH–Educators at Carnegie Mellon University‘s Robotics Academy say robotics could become
an even more powerful teaching tool with curriculum they developed for the new version of LEGO
Education‘s popular MINDSTORMS robot-building set.
The co-branded LEGO Education/Carnegie Mellon curriculum takes advantage of upgraded software and
hardware, such as simplified programming and Bluetooth wireless capability, in the newly released
MINDSTORMS Education NXT robotics set. The CD-ROM-based curriculum for middle- and high-school
students is included in a MINDSTORMS Education product line launched Aug. 1.
Robin Shoop, director of the Robotics Academy, said the new lesson plans are designed as a series of
explorations that require students to investigate problems and develop their own solutions.
―We give kids the opportunity to think of themselves as researchers,‖ Shoop said. ―We are trying to put
the responsibility for learning on them by asking them to answer questions.‖
Shoop explained that students working with the new Carnegie Mellon curriculum are required to ―do‖
math and science rather than study them. Using this methodology, students come to appreciate not only
the importance of each concept, but also how they relate to each other in the real world.
Since 2002, the Robotics Academy, an outreach program within Carnegie Mellon‘s Robotics Institute, has
been a leader in the use of robotics as a teaching tool, including the development of curricula for previous
versions of MINDSTORMS. The Robotics Academy sponsors robotics clubs, camps and competitions for
students, develops robotic software and curricula, and provides robotics training for teachers.
Residuals from worldwide sales of the academy‘s new MINDSTORMS curriculum will help fund continued
operation of the academy. Shoop says initial plans call for the curriculum to be translated into as many as
nine languages.
For the new MINDSTORMS Education NXT project, the academy has collaborated with colleagues at
Tufts University, LEGO Education and National Instruments of Austin, Texas, to develop tools that teach
math and science through robotics.
―Succeeding in a creative society requires critical thinking, teamwork and communication skills that we
know can be gained from robotics classes. We‘ve seen how these classes motivate students to do better
in school and go on to careers in science and engineering fields,‖ said Jens Maibom, general manager of
LEGO Education in Billund, Denmark. ―The software and curricula provided by our partners are critical
elements in that success, as it puts robotics into a real-world context and makes it much more than a toy.‖
Shoop noted that the Carnegie Mellon curriculum — the ―Introduction to Mobile Robotics‖ and ―Guided
Research and Engineering‖ CDs — were developed using an iterative process with Pittsburgh-area
schoolteachers. Teachers would periodically visit the academy, work with the robot kits and Carnegie
Mellon-developed lesson, and provide feedback. Their suggestions would then be incorporated and
assessed by the next group of teacher-testers.
―As a father of four and a public school teacher of 28 years, I‘ve held this project very near and dear to my
heart,‖ Shoop said. ―The exponential growth of information has led to an overwhelming amount of things
that students need to know, and we as educators need to do a better job of helping students make these
cross-discipline connections, preparing them to leave school and move into the new economy. Research
shows that students relate better to current examples of technology, such as robotics, than they do to
historical examples, like Newton‘s apple. Kids want to know, ‗Why do I need to know this and why is this
important to me today?‘ ―It also helps that kids think robots are fun,‖ Shoop added.
For more information about LEGO Education, visit http://www.legoeducation.com/. For a preview of the
new Carnegie Mellon/LEGO curriculum, see www-education.rec.ri.cmu.edu/nxt/preview/. For more on the
Robotics Academy, see www-education.rec.ri.cmu.edu.
Add starLikeShareShare with noteEmailAdd tags
Aug 8, 2006 11:06 AM
NIWeek ‗06 - LabVIEW Toolkit for LEGO Mindstorms NXT
by eric
Last week, Guy hinted at the release of a toolkit that would allow users to program their NXT robots in
LabVIEW. Well, today at NIWeek 2006, National Instruments officially announced the LabVIEW Toolkit
for the LEGO Mindstorms NXT!
Here‘s the official press release:
National Instruments, a global leader in virtual instrumentation, today announced the NI LabVIEW Toolkit
for LEGO® MINDSTORMS® NXT. With the new toolkit, LabVIEW users can create and download VIs to
operate and control the MINDSTORMS NXT robotics platform. Third-party software and hardware
developers also can use the toolkit to create native blocks for MINDSTORMS NXT software.
MINDSTORMS NXT, the next generation of the popular LEGO robotics invention system, became
available earlier this month and includes a new programming environment, custom developed by NI and
powered by LabVIEW.
The LEGO Group and National Instruments worked together to develop the new MINDSTORMS NXT
software that includes a simple drag-and-drop, graphical interface optimized for the target MINDSTORMS
NXT consumer – children 10-14 years old. With the new LabVIEW toolkit, more advanced MINDSTORMS
NXT users, including adults, students and secondary school and university educators, now can program
the NXT using advanced graphical programming tools available in LabVIEW. 2006 marks 20 years of
LabVIEW innovation, and this toolkit continues its evolution by making LabVIEW accessible and intuitive
enough for an audience it has never before engaged – children.―The availability of the LabVIEW Toolkit
for LEGO MINDSTORMS NXT is critical for encouraging the development of additional tools for the
system,‖ said Søren Lund, director of LEGO MINDSTORMS. ―One of the key reasons for working with
National Instruments to develop the NXT software was the ability for third-party developers to use
LabVIEW to create add-on software blocks for our software. In addition, experienced MINDSTORMS
users can easily migrate from the graphical drag-and-drop environment of MINDSTORMS NXT to the
more advanced graphical programming in LabVIEW. Providing the tools advanced users need to take our
system to the extreme is what made the legacy MINDSTORMS platform a huge success, and the NI
toolkit furthers that tradition.‖
With the toolkit, users also can interact with the NXT robot while a program is running. By dropping a
LabVIEW control, the toolkit can send data to the robot and influence the currently executing program. By
dropping an indicator, the value at that point in the program is sent back to the PC and viewed in a
regular LabVIEW front panel.
Developers of third-party sensors and other hardware add-ons for MINDSTORMS NXT can use LabVIEW
to create native blocks that program and control their hardware for use in MINDSTORMS NXT software.
For example, HiTechnic Products developed the Digital Compass Sensor for MINDSTORMS NXT and is
currently using the new LabVIEW toolkit to create blocks for this and other sensors.
―The LabVIEW Toolkit for LEGO MINDSTORMS NXT makes customizing add-ons for the NXT extremely
easy and encourages users to expand the MINDSTORMS experience,‖ said John Barnes, president of
HiTechnic. ―This type of customer-driven functionality will extend and enhance the experience of
MINDSTORMS fans of all ages.‖
LabVIEW 7.1 and 8.20 customers can download the beta version of the toolkit from ni.com beginning this
fall. For more information, visit www.ni.com/mindstorms.
About the LEGO Group
The LEGO Group (http://www.lego.com/) is a privately held, family-owned company, based in Billund,
Denmark. It was founded in 1932 and today the group is one of the world‘s leading manufacturers of play
materials for children, employing approximately 5,600 people globally. The LEGO Group is committed to
the development of children‘s creative and imaginative abilities. LEGO products can be purchased in
more than 130 countries.
About National Instruments
For 30 years, National Instruments (http://www.ni.com/) has been a technology pioneer and leader in
virtual instrumentation – a revolutionary concept that has changed the way engineers and scientists in
industry, government and academia approach measurement and automation. Leveraging PCs and
commercial technologies, virtual instrumentation increases productivity and lowers costs for test, control
and design applications through easy-to-integrate software, such as NI LabVIEW, and modular
measurement and control hardware for PXI, PCI, PCI Express, USB and Ethernet. Headquartered in
Austin, Texas, NI has more than 4,000 employees and direct operations in nearly 40 countries. For the
past seven years, FORTUNE magazine has named NI one of the 100 best companies to work for in
America.
Add starLikeShareShare with noteEmailAdd tags
Aug 7, 2006 2:55 PM
Vernier Acidity Tester
by eric
Vernier Software & Technology has added another cool LEGO Mindstorms NXT project to their site. The
Acidity Tester robot ―uses a Vernier pH probe to test the acidity of a solution. The NXT ultrasonic, light,
and rotation sensors are used to find the solution and to track the robot‘s position.‖
Add starLikeShareShare with noteEmailAdd tags
Aug 6, 2006 11:43 AM
Mindstorms NXT vs. Storm of Competition
by eric
The Washington Post has an article in Sunday‘s edition featuring the LEGO Mindstorms NXT and its
battle against video games. LEGO is ready for the fight armed with ―hackers, the Web and a robot on its
side.‖
Add starLikeShareShare with noteEmailAdd tags
Aug 6, 2006 11:43 AM
New MDP Profile Available - Bryan Bonahoom
by eric
A profile of Bryan Bonahoom has been added to the LEGO Meet the MDP‘s site. He won the MDP Grand
Challenge with his robot ‗Skidmark‘. Video included.
Add starLikeShareShare with noteEmailAdd tags
Aug 5, 2006 2:43 PM
Microsoft Robotics Studio August 2006 CTP Released
by eric
A new tech preview of Microsoft‘s Robotics Studio for August 2006 has been released for download.
Features Include:
New Simulation Features
New Robot Services
New Authoring Support
New Tutorials
Updated API
Updated License Agreement
Add starLikeShareShare with noteEmailAdd tags
Aug 5, 2006 2:43 PM
New FLL Freak Tutorial - Two Bugs
by eric
Skye has updated his website with a new video tutorial for the LEGO Mindstorms NXT.
Add starLikeShareShare with noteEmailAdd tags
Aug 5, 2006 8:43 AM
What‘s A NXT IOMAP?
by dick swan
This is a high level overview of the NXT I/O MAPs (IOMAPs). It‘s compiled from information scattered
among the recently released Development Kits (DKs). Many third party environments will require that
developers have a good knowledge of the IOMAPs to do advanced NXT programming.
There‘s 11 separate software ―modules‖ in the NXT firmware. A memory mapped communication scheme
is used between modules where each module exposes a block of RAM memory known as its ―IOMAP‖.
The IOMAP becomes the external software interface between one module and its peers. A module is
―commanded‖ (e.g. motor A forward at 50% power) to perform actions by modifying fields within its
IOMAP and the results of that command (e.g. current rotation count) is ―returned‖ in other fields.Let‘s use
a sensor as an example:
1. A user program initially configures a sensor by setting up two fields in the SENSOR IOMAP
for the type and mode of the sensor (e.g. set up a sonar sensor with measurement units in
cm.). The program should also set a third field that indicates the current sensor value is now
invalid. The user program continues execution until its timeslice ends.
2. On its next execution time slice, the sensor module notices that the sensor‘s type and mode
fields have changed and performs the appropriate steps to initialize the sensor.
3. At some much later timeslice, the sensor has finally stabilized (10 to 20 milliseconds later,
much longer for a SONAR sensor). The sensor module clears the ―invalid value‖ flag in the
IOMAP and updates the sensor value in its IOMAP but also.
4. During step 2 and 3, the user program has continued to run. When it tries to access this
sensor, it should be checking to see if the ―invalid data‖ has been cleared; it might ‗block‘
until it is.
5. The sensor module is constantly running to update the IOMAP entry for sensor value with
the latest values.
One corrollary is that changes requested by user programs do not happen immediately. User programs
must be tolerant of this delay (i.e. check the ―invalid data‖ field).
If you‘re programming in the Lego/NI developed NXT-G system, IOMAP complexity is hidden from end
user programming. You set a motor speed in a NXT-G block and do not have to understand that updates
to several IOMAP fields for the motor are triggered by this one item. However, if you‘re using a third party
development environment, you may have to deal with all the low level IOMAP access.
RobotC, one of the first third party NXT IDEs, has an interface layer on top of the standard IOMAPs. This
interface layer hides the IOMAPs from the end user while still providing access to all the device driver
functionality.
IOMAPs are briefly described in several of the NXT Development Kits (DKs) that were released beginning
of August 2006.



The Fantom DK provides interfaces for getting a list of all the modules in the system and for
reading and writing individual fields in a module‘s IOMAP. You access an individual IOMAP
by reading (writing) ―offset X for Y bytes‖.
The Execution File Format DK (pg 44 onwards) gives a wealth of detail on the ―property‖
fields for sensors and motors. Property fields look suspiciously like they are really IOMAP
fields?
The PC Direct Message DK describes about a dozen messages used between PC and
NXT. Most of these messages look like they may be directly updating the IOMAPs for
sounds, sensors, and motors.
Unfortunately the DKs did not provide the detailed internal layout of the IOMAP structures. Hopefully
additional DK information will be released that will include this.
Add starLikeShareShare with noteEmailAdd tags
Aug 4, 2006 2:55 PM
National Instruments Mindstorms NXT Site Launched
by eric
I apologize for the abbreviated post (about to board a flight in Atlanta to Vegas), but National Instruments
haslaunched their new LEGO Mindstorms NXT website!
Per the LEGO press release:
―Learn how National Instruments (NI) and LEGO jointly developed the LEGO MINDSTORMS NXT
Software, and Test Drive the LEGO MINDSTORMS NXT Software at NI.com with an excluisive online
demo.
Also read about how the software that powers MINDSTORMS NXT robots is an optimized version of the
professional NI LabVIEW graphical programming software. A software used by scientists and engineers
worldwide to design, control, and test consumer products and systems such as MP3 and DVD players,
cell phones, and vehicle air bag safety systems!‖
Addition (by guy): looking in the above site I found this:
Program NXT Robots Using NI LabVIEW
LabVIEW users can also program their MINDSTORMS NXT robots in LabVIEW. The LabVIEW Toolkit for
LEGO MINDSTORMS gives existing LabVIEW users the ability to create and download VIs to operate
and control their LEGO robotics systems. The toolkit also makes it possible for third-party software and
hardware developers to create native blocks for MINDSTORMS NXT software.
The LabVIEW Toolkit for LEGO MINDSTORMS will soon be available for download.
Add starLikeShareShare with noteEmailAdd tags
Aug 4, 2006 2:55 PM
New NXTasy Challenge Record - 122 inches
by guy
There is a new record in the first ever NXTasy Challenge !
The current leader‘s robot managed to throw the blue ball as far as 122 inches from the start line.
Think you can do better? Go ahead and try!
Reminder - Winner gets a digital compass sensor from HiTechnic Products. Best 5 participants get a 25%
discount coupon (valid for 3 months) in their next purchase in mindsensors.com. Deadline for participating
is December 1st, 2006.
Add starLikeShareShare with noteEmailAdd tags
Aug 4, 2006 8:49 AM
DominoBotNXT - Redux with a MotorMux
by eric
Dave Astolfo‘s DominoBotNXT has been hacked. If you recall, his original 3-motor robot had to back up to
place dominos properly. Dissatisfied with the excess maneuvering, Dave decided to try out the
new Mindsensors.comMotor Multiplexor (NXT-MOTORMUX). With the RobotC beta and a little help
from Dick Swan, Dave was able to add a 4th motor and allow the robot to place dominos while always
moving forward. Video included.
Add starLikeShareShare with noteEmailAdd tags
Aug 3, 2006 3:10 PM
NXT Memory and File System Organization
by dick swan
Here‘s a little bit more technical information on the LEGO Mindstorms NXT file system and memory.
The main processor on the NXT is an ARM7 RISC CPU equipped with 256K bytes of flash memory and
64K bytes of RAM memory
Sector size on the flash memory is 256 bytes. There are hardware commands to erase either a single
sector or all sectors at once. The ―erase‖ and ―write‖ command operates on a complete sector in flash.
The NXT firmware is loaded into flash memory starting from the front. The ―leftover‖ flash (about ~128K)
at the rear is used for the NXT‘s file system
The last sector in the flash contains the file system ―table of contents‖ (TOC). It is a 64 element array of
pointers. Each pointer is either NULL or the starting address of the first flash sector of a file. Since the
TOC is only one sector long, the NXT file system is limited to 63 files total. One of the ―pointers‖ is used to
contain some flags.
Flash memory is specified to support 10K write cycles. It might be worrisome that the TOC is written so
often that this will be exhausted in a year or two of heavy use (two rewrites per file download!).
Fortunately, (1) the spec appears to be extremely conservative and (2) the most common failure mode is
the flash will simply not retain its contents for the full 10 years in its design spec.
The first few bytes of a file contain system information about the file – like its name – and access to these
bytes is normally hidden from user programming.
The file system supports two storage formats for files:


A linear contiguous block of flash memory.
A linked list of flash sectors
The ―contiguous block‖ format is required for user programs and certain data files. Programs – both the
NXT firmware and user programs – are executed directly from flash memory.
Fragmentation of the file system is one reason that a large program file might not be loadable onto a
NXT. There may not be a single contiguous block of free flash to accommodate the file. A periodic
defragment operation may be infrequently required.
Some CPUs allow simultaneous read access to other locations in flash memory while a sector is being
written or erased. This is not the case with the NXT‘s CPU. A flash erase or write operation stops all other
flash accesses. It can take up to six milliseconds to update a flash sector! The NXT firmware execution is
essentially ―stalled‖ during that time
Normally you‘d still want interrupts – USB and BT messaging, motor encoder count updates, sound
playback, etc – to continue to function during the flash updates. So the ―trick‖ is to relocate the interrupt
handlers in RAM memory which can still be accessed during flash updates. The interrupt handlers are
stored in the flash firmware image; on initial startup they are copied to RAM and it is these versions that
are subsequently executed
The RobotC development system is one of the first 3rd party alternative development environments for
the NXT. It has some enhancements to improve on the issues mentioned above:



It has a PC based file defragmenter program. The defragmenter moves all the files on the
NXT tightly together and collapses the empty file space into a single region.
It has a comprehensive RAM based data logging capability. Use of RAM instead of NXT file
systems will ensure that users program aren‘t stalled if data is logged to a flash file. There
are also easy commands to copy datalog to a flash file when program terminates.
Standard firmware uses a polling technique is used to increment the 1-msec system clock.
Clock ticks can be dropped when flash memory is updated. RobotC has a interrupt based
implementation that captures all counts.

It supports compressed audio (RSO) files to minimize flash usage.
One final tidbit. Ever noticed the file ―NVConfig.sys‖ on your NXT and wondered what it is? It‘s a normally
hidden system file containing persistent storage for your power down delay and volume level settings.
Add starLikeShareShare with noteEmailAdd tags
Aug 3, 2006 11:05 AM
New Contributor - Dick Swan
by eric
We are extremely proud to welcome Dick Swan as a contributor to nxtasy.org. With quite a few
contributions to the LEGO Mindstorms RCX community, Dick will surely bring us great things for the NXT!
Add starLikeShareShare with noteEmailAdd tags
Aug 3, 2006 11:05 AM
Mindstorms NXT Driver v1.02
by eric
Thanks to Brian Davis for mentioning that LEGO is now offering an updated driver for the Mindstorms
NXT.
―This software updates the LEGO MINDSTORMS NXT driver and addresses an issue that prevents the
firmware from being downloaded to the NXT on some occasions.‖
PC‘s 7.12MB vs. Mac‘s 351KB
Heheheh..
Add starLikeShareShare with noteEmailAdd tags
Aug 3, 2006 2:04 AM
Mindsensors.com NRLink
by guy
Mindsensors.com has provided us with information on their new NRLink product for the LEGO
Mindstorms NXT:
―News for those who have an RCX and looking forward to use it with NXT… mindsensors.com will be
introducing a communication adapter by end of this month. This communication adapter, NRLink, enables
2 way communication between RCX and NXT. NRLink connects to NXT on a sensor port, and
communicates with RCX via Infrared.
Your RCX robot can be a separate mobile robot, and communicating to NXT robot via infrared. Using
NRLink, you can download programs to RCX as well as receive sensor events from RCX; in short, you
can do all the tasks IR Tower can do.
NRLink can be mounted on NXT robot using Technic beams and it supports NBC and RobotC
programming environments.‖
Add starLikeShareShare with noteEmailAdd tags
Aug 3, 2006 12:59 AM
Vernier LEGO Mindstorms NXT Projects
by eric
The folks over at Vernier Software & Technology have posted several LEGO Mindstorms NXT robots
projects that they have integrated with a few of their sensors. The one shown above uses a tilt sensor to
keep the beam level as weights are added and removed. Videos included.
Add starLikeShareShare with noteEmailAdd tags
Aug 2, 2006 11:30 AM
Success! Bluetooth Connection on Intel Mac
by eric
The software provided with the LEGO Mindstorms NXT for Macintosh computers was compiled to run
natively on machines with PPC processors. For Macs with Intel processors, PPC-native applications
run under emulation mode using Rosetta. Unfortunately, the Rosetta emulator does not support
bluetooth at this time, so NXT users are anxiously awaiting a universal binary with the hopes that it will
bring improved NXT-G IDE performance and bluetooth connectivity.
With yesterday‘s release of the NXT development kits, however, Tony Buser did some research and was
able to successfully establish a bluetooth connection between his NXT and Macbook! Small steps
towards his eventual goal of creating a Ruby module capable of communicating with his NXT via
bluetooth.
Add starLikeShareShare with noteEmailAdd tags
Aug 2, 2006 11:30 AM
NXT US Radar - Proof of Concept
by eric
Forum member robotech does it again with another great advanced project for the LEGO Mindstorms
NXT. This time, he demonstrates how to generate an offline data-driven radar display on the NXT‘s LCD
and provides the framework for interfacing it with real-time ultrasonic sensor data. Very, very cool!
Add starLikeShareShare with noteEmailAdd tags
Aug 2, 2006 11:30 AM
Steve Hassenplug‘s ―Omni‖
by guy
Here‘s an interesting robot presented at the ―Big Robot on Campus‖ event in Redmond Campus of
Microsoft. It uses 3 motors, each connected to a ―wheel‖ made of 12 smaller wheels. This allows Omni to
move at virtually any direction.
More pictures 1 2 3
Good job Steve!
Add starLikeShareShare with noteEmailAdd tags
Aug 1, 2006 9:29 AM
Get Your Hack On! Dev Kits Released!
by eric
It‘s August 1! The official open source firmware development kits have been released for the LEGO
Mindstorms NXT! Discuss in our forums!
Per the site:
The Software Developer Kit includes the NXT driver interface specification and necessary tools for
creating third-party programming environments. The Hardware Developer Kit provides schematics and
details for the NXT 6-wire digital connector system, enabling users to design and develop third-party
sensors that can interact with and control the NXT motors and intelligent brick. The Bluetooth Developer
Kit details the Bluetooth protocol embedded in the NXT microprocessor, allowing users to create
applications for any Bluetooth device to communicate with MINDSTORMS robots.
Add starLikeShareShare with noteEmailAdd tags
Jul 31, 2006 6:30 PM
MobileMag NXT Review: ―You apparently need a degree..‖
by eric
Mobile Magazine‘s Ryan Maule has posted a review of the LEGO Mindstorms NXT. He starts off giving
kudos to LEGO for allowing select folks to participate in the development of the kit. The review goes a bit
south, however, when he gets to building original creations and working with the NXT-G IDE. His
suggestion? A Masters and/or PhD in robotics and software engineering.
Add starLikeShareShare with noteEmailAdd tags
Jul 30, 2006 3:12 PM
NXTasy Challenge No. 1 Is Under Way!
by guy
Hello NXT fans!
NXTasy invites you to compete in the first community NXT challenge. The goal is simple! Got an NXT
set? Take the blue plastic ball and make a bot that throws it as far as possible! That‘s easy? Not so fast!
Only LEGO parts are allowed (see rules for details)….
We have a prizes for you, too! Winner gets a brand new Digital Compass Sensor courtesy of HiTechnic
Products. Additionally, the top 5 participants will receive a 25% discount coupon (valid for 3 months) for
their next purchase at mindsensors.com.
Competition deadline is December 1st, 2006. Rules, regulation and participants‘ information can
be found here.
Add starLikeShareShare with noteEmailAdd tags
Jul 30, 2006 9:12 AM
Tutorial: Bluetooth Linux Starter
by eric
Jürgen Stuber has a cool little tutorial showing how to receive a bluetooth data transmission from an NXT
brick to a Linux box. It has been added to our repository.
Add starLikeShareShare with noteEmailAdd tags
Jul 29, 2006 9:12 PM
NBC Beta 0.1.4 b4 for Linux
by eric
On Wednesday, John Hansen released a binary of the Next Byte Codes (NBC) command line compiler
that is capable of running on 32-bit Intel Linux platforms. With versions also available on Windows and
Mac, NBC allows users to program the LEGO Mindstorms NXT brick using textual code with assembly
language syntax.
Add starLikeShareShare with noteEmailAdd tags
Jul 29, 2006 3:13 AM
Wanted: Patience and Sophistication
by eric
The Saturday edition of the Washington Post features an article on the LEGO Mindstorms NXT and its
official Tuesday release. In an interview, toy industry analyst Chris Byrne gave the kit a rave review, but
said it ―requires patience and sophistication that people who like to blow stuff up in Halo might not have.‖
Add starLikeShareShare with noteEmailAdd tags
Jul 28, 2006 9:13 AM
Microsoft‘s Mr. Roboto
by eric
The Motley Fool has an article online featuring the Microsoft Robotics Studio and its aim to ―make it
easier to get on with creating robots without having to build expensive prototypes first.‖ The author,
Anders Bylund, speaks to the new LEGO Mindstorms NXT, but is only speculating that it would be
supported by Microsoft. Little does he know, that support already exists.
Add starLikeShareShare with noteEmailAdd tags
Jul 27, 2006 9:17 AM
BrickFest Registration Ends July 29th
by eric
BrickFest 2006 will be a wonderful gathering of AFOLs from all over the world. The event takes place on
August 25-27 at the Sheraton Premiere in Tysons Corner, Virginia. For those who have not registered,
despite what the website says, you have until this Saturday. And for those who cannot attend, nxtasy.org
hopes to bring you full Mindstorms NXT coverage!
Add starLikeShareShare with noteEmailAdd tags
Jul 26, 2006 5:56 PM
Mercury News Review
by eric
The Mercury News has an Associated Press article reviewing the LEGO Mindstorms NXT. When
commenting on the building experience, the author likens it to ―assembling an IKEA bookcase with 100
pages of instructions and hundreds of pieces that look similar but are slightly different.‖ Heh. He wants
more color-coding. Me? Just give it to me in all black.
Add starLikeShareShare with noteEmailAdd tags
Jul 26, 2006 5:56 PM
New Review - Digital Compass Sensors
by guy
A new review (first one..) was added to the Reviews section of NXTasy.org repository. The new review
compares the two digital compass sensors of mindstorms.com and HiTechnic, including some not-yetpublished technical specifications of the two sensors. Read the review here.
Add starLikeShareShare with noteEmailAdd tags
Jul 26, 2006 2:38 AM
3-axis Digital Acceleration Sensor
by guy
The mindsensors.com website has a new ―Coming Soon for NXT‖ item - a 3-axis Digital Acceleration
Sensor. Here‘s a picture of it from their site.
Add starLikeShareShare with noteEmailAdd tags
Jul 25, 2006 5:38 PM
LEGO Bluetooth Page Updated
by eric
intolerable has kindly posted a link in our forums to the updated LEGO bluetooth page. A compatibility
matrix is provided, indicating which adapters work best with the NXT.
Add starLikeShareShare with noteEmailAdd tags
Jul 25, 2006 2:04 PM
NXT Repository - Call for Contributions!
by guy
The NXT (unofficial) Repository at NXTasy.org is open for contributions! As the NXT community expand
(with more and more people getting their NXT sets), so does the need for a central file-sharing repository
for all NXT users. We at NXTasy.org took the challenge and added a new NXT Repository to our existing
(and very active) NXT-related forums system.
The new repository will contain moderated contributions from community NXT-fans worldwide. It is
categorized into six major categories:
1. Projects - for user-contributed projects, including building instructions and software.
2. Blocks & Extensions - for contributed MyBlocks, NXT-G extensions (in future), NBC codes,
RobotC codes etc.
3. Hardware - for hardware schematics, either of the NXT internals or of new sensor designs
4. Utilities - holds utilities and links to programs which will make your NXT experience more
fun!
5. Reviews - review papers on NXT, 3rd party products etc.
6. Tutorials - explain advanced (and basic..) NXT techniques for everyone!
At the moment contribution is possible only via email to repository@nxtasy.org. Please supply a title and
a description of your contribution. A questionnaire with detailed questions, depending on the category of
contribution, will be sent by us via email. Once all needed details are gathered, your contribution will be
added.
NXT Repository is open for your contributions! Help us making this repository THE place to look for help
in YOUR NeXT Adventure!
Yours,
Guy Ziv
Repository Administrator
NXTasy.org | a LEGO Mindstorms NXT community
Add starLikeShareShare with noteEmailAdd tags
Jul 25, 2006 2:04 PM
LEGO Robots March on Microsoft
by eric
On Monday, Microsoft held a ―Big Robot on Campus‖ event at their headquarters in Redmond. CNET
has anarticle following Steve Hassenplug as he and other NXT programmers meet to discuss the future
of Microsoft‘s Robotics Studio.
Add starLikeShareShare with noteEmailAdd tags
Jul 25, 2006 2:04 PM
Meet the NXT WiMo
by guy
Brian Cross has created this new interesting NXT creation. It is a ―Windows Mobile Robot‖, or in short,
―WiMo‖. He uses his laptop to communicate via WiFi to a smartphone, which in turn uses BT to send
commands to the NXT brick. WiMo is controlled using the new Microsoft Robot Studio and has two
―modes‖ - personality mode and camera mode. When WiMo is in personality mode, the Smartphone‘s
screen is facing forward and displays a picture that represents WiMo. When in Camera Mode, WiMo
rotates the Smartphone to face its camera forward and starts streaming video using DirectShow. More
info and pictures of this robot can be found here.
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
RobotC Version 1.0.06
by eric
The third public beta release of the RobotC cross-development software is available.
Per Robotics Academy:
Changes:
- Debug/Error Reporting is much more consistent and stable.
- General program stability has increased.
- Updated firmware for NXT platform.
- Code Completion is more stable than previous releases. The use of keyboard arrows and the ―enter‖
key to navigate code completion options works much more effectively now.
- Bug Fix: NXT internal motor encoder issues have been taken care of. Issue was with resetting the value
of the encoder.
- New message informing user about downloading firmware has been added to the ―NXT Brick - Link
Setup‖ menu.
Known Issues:
- Patching system is not implemented yet. You will have to uninstall the old version of RobotC before
upgrading.
- Breakpoints may still have some issues in this release. In particular breakpoints are not saved across
RobotC sessions.
- The built-in help file does not exsist yet.
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
Announcement - New NXT Repository
by guy
In a few days, a new addition to nxtasy.org is coming up! The first (unofficial) NXT-related code repository
is about to go live! This section of nxtasy.org site will contain user-contributed programs, contributed
MyBlocks and in the future (when SDK is published) new NXT-G blocks.
A discussion topic dedicated to the new repository can be found on the
forums:http://forums.nxtasy.org/index.php?showtopic=72
Other comments/contributions should be sent to guy@nxtasy.org
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
My Portal Updates
by eric
Following the news of updates to the official site, LEGO has now updated the My Portal section of the
NXT-G IDE. As expected, building instructions are available for a soundbot and clock. Also included is a
link to the official forums. Don‘t forget to check out our forums, as well!
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
FLL-Freak Video Tutorials
by eric
Veteran FIRST LEGO League coach Skye Sweeney has put together quite a few video tutorials covering
the art of solving FLL missions with the NXT. The site also provides a comprehensive set of links to other
sites with helpful NXT information. As an added bonus, you can sign up to be notified whenever new
information is available on the page. Skye aims to make a new tutorial per week, so stay tuned!
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
NXT-a-Sketch
by eric
Popout
Here‘s a cool video of Kevin turning his $250 LEGO Mindstorms NXT into a $20 (or less!?) etch-a-sketch.
He even included the shaking erase maneuver! Now let‘s see what George Vlosich III can do with this
baby!
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
Easter Egg Plotter
by eric
The Easter Egg Plotter by Andreas Dreier is probably one of the coolest NXT robots I‘ve seen. Here‘s
a video(5mb) of the robot in action as it mimics the old school vector graphics
printing devices. Unfortunately, only the different photo angles and captions are available to tell us about
this creation. It is clear, however, that one motor rotates the spool while the other two motors control the
X and Y positions of the pen. I would love to see the source code!
Andreas is also responsible for creating nxtRICredit - a tool enabling the creation of graphics for display
on the NXT LCD.
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
NXT LEGO Icons v1.0
by rachel
MacUpdate has a sleek set of icons for OS X inspired by the LEGO Mindstorms NXT kit. Customize
away!
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
The Walkman Robot… Literally
by rachel
Meet tveskov‘s Walkman Robot.
Less portable than the original Walkman, but way cooler!
The blurb (in Danish) says:
―This is my first robot, a real Walkman. It can‘t do much yet, but in the near future it should be able to
dance on music, change poses if you clap your hands, and some other tricks.‖
[Thanks to forum member Gibberish Driftwood for the translation!]
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
Mindsensors Compass Production Version
by guy
Mindsensors has sent us images of the production Digital Compass Sensor. One can see in the following
images how to mount the sensor using standard Technic parts. Also, one can see that the sensors has a
regular phone jack. We were told that a 6 or 8 inch compatible cable would be supplied with the sensor.
Add starLikeShareShare with noteEmailAdd tags
Jul 22, 2006 11:53 AM
New Featured Contributor - Rachel Delorme
by eric
Please allow me to welcome Rachel Delorme to the nxtasy.org team! She will help with news-gathering
and general editing of the site. Glad to have you aboard, Rachel!
Add starLikeShareShare with noteEmailAdd tags