Monday, August 28, 2006

A new MDP: John Hansen

John Hanson | Lego Mindstorms Developer Program
Another MDP profile has been added to the Lego Mindstorms website. This time it is software engineer John Hansen.

You most likely know John Hansen for his work with BricxCC. A few years ago John took over lead development for the RcxCC project for the popular coding language Not Quite C or NQC for short. He rewrote the code and renamed the project BricxCC and in the process added support for all of Lego's programmable bricks. He also expanded the program's supported languages to include Mindscript, NQC, pbForth, BrickOS, and leJOS. Now even more recently John has taken over the project of developing the NQC language formerly maintained by Dave Baum.

John's newest project is working on the NeXT Byte Codes language. NBC is the first ever text based programming language for the Mindstorms NXT system. The advantages of using text based coding is that the programs can be 10 times smaller and 10 times faster. At this time NBC supports Win32, Mac, and Linux operating systems. The compiler is based on a command line interface which makes it compatible with the BricxCC program.

John has also released a handful of utilities for the NXT system.



Images from LEGO and are used under fair use terms.

Sunday, August 27, 2006

Styling a New Look!

Hey guys I hope you like the new blogger template I have been working this past week. It should make things alot more organized and easier to read! A few little updates here and there... Hope you like it!

-Jacool

Friday, August 25, 2006

Brickfest 2006 is Underway!

Ladies and Gentlemen it is that time of year again! Today marks the official start of Brickfest 2006! For the next three days thousands of LEGO enthusiasts will converge on Sheraton Premiere Ballroom located in Washington DC. Models ranging from huge 10+ foot tall skyscrapers to Mindstorms NXT robots will be on display. Also on the menu for Brickfest 2006 is the highlight of the Mindstorms NXT system.

During the festival there will be four different Mindstorms NXT Contests. The first contest is sponsored by the First Lego League or FLL for short. In this contest adult Mindstorms enthusiasts are challenged to complete the same challenges that students faced in the FLL Ocean Odyssey contest.

Second is the Great Ball Gathering contest. In this competition approximately 1,000 minuture lego soccer balls along with 50 lego basketballs and 10 1.5" plastic balls will be spread on a 4x6 playing surface. The objective is simple, collect as many balls as you can to outscore your oponnent!

Third is the Tug O' War contest. Two robots start 18" inches from the centerline connected by a rope. Once the timer is started your robot has 60 seconds to either pull your oponnent across the centerline. If neither robot crosses the centerline, the robot that is furthest from the centerline will be announced the winner.

Finally is fan favorite, the sumo competition. In this bout two robots will battle to push their opponent out. A winner is decided by either pushing your opponent out of the 48" diameter arena or by incapacitating your oponnent.

Brickfest 2006 is looking like an excellent event and and even better platform for launching the Lego Mindstorms NXT system! If you are in the area be sure to check it out!

Official Brickfest 2006 Website
Brickfest Schedule [PDF]

Tuesday, August 22, 2006

Lego Mindstorms NXT Wiki

The Lego Mindstorms NXT Wiki at http://www.nxt-mindstorms.com needs some help! A wiki is really only as good as it's contributors!

The problem with the Mindstorms community is that the information is spread about with bits and pieces everywhere. Each person has their own specialty or area knowledge that they have put somewhere on the web. This Mindstorms NXT Wiki is the perfect place for that knowledge to come together in one area.

So fellow Mindstormers, for the good of the community, I strongly encourage you to head over and contribute your knowledge to the Mindstorms NXT Wiki!

Monday, August 21, 2006

Soren Lund and NXT featured on Forbes

Mindstorms NXT picture from ForbesIn a recent article featured on Forbes entitled "The Robots are Coming!" the Lego Mindstorms NXT Robotics system was featured as one of the 7 amazing robots that will change your life. Also in this article, Lego Mindstorms Director Soren Lund describes how the Mindstorms NXT system is, "helping bring what was once considered esoteric engineering into the hands of enthusiasts everywhere in the world."

Check out the story at Forbes: The Robots are Coming

Sunday, August 20, 2006

Lego Cam : Web Controlled NXT Robot

Andrew aka Legoguy over at the Nxtasy Forums has created a Lego Mindstorms NXT robot, equipped with the Vision Command camera, that can be controlled remotely over the Internet. Andrew built the whole setup from scratch using Lego's recently released Bluetooth SDK.

He said, "The very moment LEGO released their SDK (mainly the Bluetooth SDK) I was on the case with my Linux box. I had primitive communication (it beeped!) within 15 minutes of reading the docs, and was firmly on my way to my goal... A web-controlled NXT, with video stream."



The Legocam NXT robot is controlled via a dashboard web page set up on Andrew's home server. The web server communicates with the local machine to send Bluetooth signals controlling the robot's movement.



Surprisingly this is not Andrew's first attempt at remote robotics! A few years ago Andrew built and coded a similar robot that ran on the Lego Mindstorms RCX. More about that previous version can be found here: http://turbogfx.homelinux.org/gallery/v/things/robot/rcx

Now for the linkage:

Saturday, August 19, 2006

BrixCC and Next Byte Codes get updates for NXT

Over at the Lugnet forums, John Hanson has announced that the newest BrixCC version is available along with an updated version of NBC version 1.0.1.b5. However, the most exciting release of the day is the source code release for NBC. Read what John had to say...

I have today made the current test release of BricxCC (with a few minor
NBC-related changes) into an official release (version 3.3.7.15).

I have also released a new beta of NBC (1.0.1.b5) which includes improvements in the built-in preprocessor (parameterized macros and multi-line macros). I will have binaries for Mac OSX and Linux up later today. This new version of NBC is included in the latest BricxCC release as is an updated version of NQC (not yet available on the NQC site) that fixes a minor LASM code listing bug. This NBC beta also fixes a few small problems with unbalanced #ifdef/#endif pairs and improves the error handling for mal-formed #include lines. I also updated the NXTDefs.h file with the additional IOMap offsets. NBC has been successfully compiled on Win32, Mac OSX, and Linux platforms using the Free Pascal compiler. Built-in downloading is currently only supported on the Win32 platform but I am working on a Free Pascal-based library (built on libusb) which will enable downloading on non-Win32 platforms soon.

On the NBC samples page there are two new zips. One contains a few simple examples of controlling NXT motors using the Tachometer limit feature (two of which are written by Philo). The other new zip is called NXTlib.zip and it contains a ton of library code written by Joe Kinsella. Awesome stuff.

I have also today released the latest BricxCC sourcecode. This sourcecode
release includes Free Pascal-compliant sourcecode for NBC, RXEDumper, MidiBatch, and Wav2Rso as well as Win32-specific code for several other programmable brick utilities (such as BrickTool and NeXTTool).

Please feel free to spread the word on your blogs that if folks want to flood the NXT world with freely available and open source high level language compilers the sourcecode for NBC is finally available.

John Hansen

Quoted from this post: http://news.lugnet.com/robotics/?n=26361

You can find the new versions over at the BrixCC Sourceforge page located here:http://bricxcc.sourceforge.net/.

Thursday, August 17, 2006

NXT Hits YouTube!

I absolutely love YouTube! I could spend hours a day on that website... However, recently when I was looking at video's I noticed that there are a ton of NXT videos! Most of them include personal inventions at work and programming. I've picked some of the best of them and displayed them after the link...

NXT Clapper
Why go out and buy the twenty dollar version when you can turn your $250 NXT into a clapper?


Drawing a smile!
How to draw a smile using a robot similar to the old RIS artbot.


NXT-A-Sketch
Turn your $250 NXT robotics system into a cheap plastic Etch-A-Sketch!


Mmmmm Doughnuts...
Hey kid, touch my doughnut and die!


Thats all for now, if you have any more cool NXT videos feel free to leave a comment!

Wednesday, August 16, 2006

A Swarm of NXT's?

Imagine a beehive, all of the workers and soldiers working together to benefit the queen bee. Each insect has it's very own unique task to carry out and perform in order to keep the hive in excellent condition. Now Imagine this community concept being practiced by Lego Mindstorms NXT robots.

Over at Lugnet Jordan Bradford has brought up the idea of building a swarm of NXT robots to show off at brickfest. It seems as if the gauntlet has been thrown down and the challenge has begun. The Lugnet Robotics group has been buzzing with the excitement...

Here is what Jordan had to say over at the Lugnet Robotics Group:

I’m interested in trying some experiments in swarm robotics. The basic idea is that simple robots with simple programming can behave in complex ways, provided that there are 1.) a lot of them, and 2.) they can communicate locally in some fashion. You then end up with a swarm of robots acting collectively. The robots’ programming controls their individual behavior, but the behavior of the entire collective arises from the robots’ interactions with their environment and their neighbors’ actions...


This new concept of a mass amount robots working together to accomplish a common goal is called Swarm Robotics. The idea behind this project is simple: Use a group of Lego Mindstorms NXT's to accomplish a common goal. One NXT would be the master or "queen", whose commands would be followed by followed by an army of smaller NXT robots.

Upon further thought there is one problem with this project. In the NXT specifications it says that each NXT can only be the master of 3 other NXT's. Another complication is that the NXT can only serve as a master or slave, not both!

I've put together a little graphic to help you understand how this swarm would appear:

So it seems now that the challenge lies in overcoming the four NXT swarm problem. If you have any ideas don't hesitate to post a comment or join in the discussion over at the official Lego Mindstorm's Forums or Lugnet Robotics Group!

Tuesday, August 15, 2006

Two new MDP's and Lego Egg Plotters


The LEGO Mindstorms Website is now boasting two new MDP Lego Mindstorm's Developers Profiles. The two new developers are Michael "Mike" Brandl and Andreas Dreier.

These two new MDP's profiles boast an interesting challenge: building an egg plotter with the NXT system...

This egg plotter challenge was brought up three years ago Michael and Adreas had a chat and decided to build such a robot. Each man built his own invention using the Robotics Invention System. The result was a success! However, using the NXT system the challenge was much easier to accomplish.

To read more about the challenge and the robots, check out Andreas Dreier's MDP Page as well as Michael "Mike" Brandl's.

Monday, August 14, 2006

LabVIEW Toolkit for NXT Robotics

Last week LEGO Mindstorms along with National Instruments, creators of the NXT programming system, announced that they would be releasing the NI LabVIEW Kit for the Lego Mindstorms NXT Robotics System. The LabVIEW program opens the possibilities of creating VI's to use with the NXT system along with creating custom blocks of programming for these VI's.

The LEGO group's director of the Mindstorms division, Soren Lund, said, "The availability of the LabVIEW Toolkit for LEGO MINDSTORMS NXT is critical for encouraging the development of additional tools for the system..." Lund went on to say, "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."

Using the LabVIEW toolkit, users are able to interact directly with the NXT while a program is running. A LabVIEW control can be added to the program allowing data to be sent to the NXT to influence it's actions as the program is running. This concept also works in the opposite way allowing a LabVIEW indicator to send information back to the computer at a point in the program.

John Barnes, president of HiTechnic says,"The LabVIEW Toolkit for LEGO MINDSTORMS NXT makes customizing add-ons for the NXT extremely easy and encourages users to expand the MINDSTORMS experience. This type of customer-driven functionality will extend and enhance the experience of MINDSTORMS fans of all ages." HiTechnic was mentioned in the previous story Advanced NXT Sensors.

For more information check out the Lego Press Release.

Sunday, August 13, 2006

Advanced NXT Sensors

Along with releasing the schematics and software for the Mindstorms NXT Brick, the LEGO Corp has also decided to release the schematics and configuration specifications for all of the NXT sensors(found here). What this means to the everyday Lego Mindstorms NXT user is that the door has been opened to the possibilities of new advanced sensors.

So far two different groups, Hitechnic and Mindsensors, have utilized the information in the hardware manuals and have come up with some new and exciting sensor and motor configurations…

There are currently two new sensors available for the NXT system: a magnetic compass and a motor multiplexor.

The magnetic compass for the NXT, produced by Mindsensors, measures the deviation from the magnetic north pole of the earth. This sensor allows you to send your robot in a specific direction or heading. The compass is based on the orthogonal two-axis magnetic sensor from Honeywell (HMC1052). The sensor is compatible with the NXT-G, NBC, and Robot-C coding languages. It also has three different reading modes: Int/Byte/Float.

The second sensor, the motor multiplexor also produced by Mindsensors, allows up to four older RCX motors to be connected to the new NXT Brick. The multiplexor plugs directly into the NXT motor port, however because of the power draw limit for each port it must be powered from an external power supply.

While these two sensors are the only ones in production there are many amazing ideas being developed. A few of these include:
• 4 port/4 Motor Multiplexor, powered by battery or external supply.
• Temperature Sensor
• RCX/NXT communication bridge
• 3 Axis Angle Measurement
• Color Sensor

Be sure to check out these sensors and many more at Mindsensors and Hitechnic!

Monday, August 07, 2006

NXT Bluetooth and control

One of the most advanced features on the new Mindstorms NXT system is its ability to control and communicate via Bluetooth technology. Inside of the NXT Brick, controlling all Bluetooth communications, is a CSR Blue Core™ 4 chip. This one chip allows the NXT to be connected wirelessly to 3 different sources at the same time. This Bluetooth wireless technology opens the door for thousands of new possibilities. One of these is a PC based Bluetooth controller for the NXT. Check it out...

The Bluetooth system on the NXT is designed to run in a master/slave configuration. Each NXT brick can connect with up to three other NXT devices. However, the NXT can only communicate with one slave source at a time. For example if the Master NXT is communicating with NXT Slave 1 it must finish sending/receiving data before it can communicate with NXT Slave 3.

One drawback to this master/slave setup is that the LEGO programmers have designed the firmware in such a way that the NXT cannot serve as a master and a slave at the same time.

The communications between NXT's and other Bluetooth devices is done through one of four channels.

• Channel 0 - This channel is reserved for slave communication to the master. By default all slaves will send data to the master on channel 0.

• Channels 1, 2, 3 - The other three channels are used by the NXT master to send data or instructions to the slave on that channel.


Another aspect to the Bluetooth connectivity is the ability to control the NXT remotely from a PC, cell phone, laptop, and more. One of the newest programs for remote NXT control is called OnBrick.

OnBrick takes advantage of the NXT Bluetooth technology to create a 20 button programmable NXT remote controller. In all there are 36 different actions that the remote can perform including: motor control, sounds, sensor input, power settings, and many more!

Be sure to check the OnBrick Website for pictures, information, and more. Also you may want to download the official Lego Mindstorms NXT Bluetooth Developer Kit.

Sunday, August 06, 2006

Robot Spotlight: JohnNXT 5

JohnnyNXT 5 created by Daniele Benedettelli is a mock up of Johnny5 built entirely of the Lego Mindstorms NXT Robotics System.
Daniele Benedettelli, a member of LEGO's MDP (Mindstorms Developer Program), has designed and built an NXT version of Johnny5 from the 1986 movie Short Circuit. Check out more pictures and a link to his MDP page...

Danny is one of a few select builders that have been chosen to take part in a Mindstorms Developer Program. His MDP page can be found at http://mindstorms.lego.com/MeetMDP/DannyB.aspx. He also has a personal webpage featuring Johnny5 at http://unitutor.unisi.it/~danny/JohnNXT.htm.

JohnNXT 5 is based upon Danny's older RCX Johnny5. JohnNXT 5 features two NXT Intelligent Bricks interfacing via bluetooth technology. The first NXT unit is in charge of moving via a treaded system and raising and lowering the torso of JohnNXT. It also controls the sensor input from line following light sensor, a stereo system consisting of two sound sensors, and the ultrasonic sensor on his head.

The second NXT unit moves johnny's arms and laser, it also provides for head movement. An interesting note about JohnNXT's arms: When the motor turns one way his arms unfold, the hands open up, and the wrists turn. When the motor is put in reverse his wrists turn, hands close, and the arms fold back up.

JohnNXT 5 can perfrom a range of tasks such as following a line, wall, sounds, objects, and many more options! Now with the NXT it would even be possible to have JohnNXT 5 play sound clips from the original movie!JohnnyNXT built from the Lego Mindstorms NXT Robotics system.
Check out these pictures and more information at http://unitutor.unisi.it/~danny/JohnNXT.htm

Saturday, August 05, 2006

Next Byte Codes aka NBC

Are you a programmer looking for a more functional and structured code for the NXT? Well, look no longer because NBC (Next Byte Codes) is the language for you! The NBC code is based on the wildly popular NQC (Not Quite C) for the RCX. That means those who have coded before in NQC can now easily learn NBC...

Quoting the developers of NBC, "NBC (Next Byte Codes) is a programming language for the LEGO MINDSTORMS NXT product. NBC's syntax is based on assembler programming languages, so experienced assembler programmers (or just about any programmers) should find it very easy to get started with. Even if you aren't an experienced programmer, NBC is relatively easy to learn." Source

While NBC is run and compiled from the command line, it also can be interfaced with BricxCC Command Center to give it a graphical front end.

If you are interested in NBC you can find more information and download it from the BricxCC Sourceforge page. In addition you can also find sample programming on the website.

Just a quick note: NBC is also 100% absolutely free. It is released under a Mozilla Public License

Friday, August 04, 2006

Whats inside the NXT Brick: Part III

Today is part three of Whats inside the NXT Brick series. Today's article will focus on the sensor ports, how they work, and the three different types of sensors.

The NXT features four sensor ports. Thats one extra port compared to the RCX's three input ports. These ports are based on the same six pin/wire design as the motor ports. However, the use of the wires is a little different...

Sensor Port Layouts
The following drawing shows the layout of the input ports.
A Drawing of the Lego Mindstorms NXT Robotics System input ports
The first ANA pin is connected to the avr processor and the current generator. What this means is that the ports can generate the power needed to run the old RCX sensors from this wire. The second and third pins are simple ground wires. Nothing too special about them. The fourth pin, IPOWERA is the wire responsible for powering the NXT sensors. Pins five and six are responsible for doing the heavy duty work with the sensors. Both of these pins are connected to the ARM7 processor and are the ones responsible for taking the signals from the sensor and delivering them to the NXT for diagnosing.

Sensor TypesThere are three different types of sensors in the Mindstorms NXT Robotics set.

The first type is the active sensor. This type of sensor requires a constant supply of power to continouously measure the sensor's level. They also require a specific power to measurement timing. This special timing is achieved by powering the sensor for 3 milliseconds and then measuring the results for .1 milliseconds. This process is repeated constantly. There are only two types of sensors that are active sensors, both of which are found in the old RIS kit: the light sensor and rotation sensor.


Passive sensors on the other hand do not require any specific power/time measurement. The measurements that they take are refreshed every 3 milliseconds because the timing has to be the same as the active sensor setup. Passive sensors include: touch sensors for both the RIS and NXT, light sensor in the NXT, sound sensor, and the temperature sensor.

The digital sensor is the newest addition to the LEGO sensors. There is only one sensor that is in this catagory: the new ultrasonic sensor. The reason that they are called digital sensors is because on these new types an external chip on the sensor is used to process the data that is being sampled.

Thats all for tonight, check back tomorrow!

Thursday, August 03, 2006

Whats inside the NXT Brick: Part II

This is part two of Whats inside the NXT Brick series. Yesterday we took a look at the hardware specs and what makes the tick! In this article we will look at how the new motor ports and wiring system work...

The NXT Brick has three output motor ports on top of the brick for controlling the newly designed servo motors. To connect the servo to the NXT a 6-wire interface is used. This new six wire design allows the NXT to not only to control the servos but also for the servos to send information back to the NXT.

EMotor port output configuration on the Lego Mindstorms NXT Robotics Systemach of the six pins has a different task. The first two pins, MA0 and MA1, are output control signals that tell the servos how to act. The third pin, GND, is the ground for the power supply to servo configuration. Fourth, POWERMA, is the 4.3v power supply. Finally pins five and six, TACHOA0 and TACHOA1 are the input signals that contain Schmitt trigger functionality.

The MA0 and MA1 output signals are controlled by an internal motor driver that supplies a continuous stream of 700 mA to each motor port. This can peak at a 1A max. The signals can me switched back and forth between float and brake. This means either your robot will coast freely when set to float, or will come to an immediate halt when set to brake. Most importantly though, the motor driver that controls these signals has built in thermal protection! This means that if for some crazy reason the NXT is pulling too much power for the servo, they will automatically limit the output current! Woohoo! No more fried motors!

The POWERMA pin is connected to the power outputs and can draw a maximum 180 mA. Really what this means is that when split up, each port can draw up to 20 mA. Another smart feature that the boys at lego thought of: if the port is drawing more than the 20 mA limit, the NXT will automatically reduce it back to 20 mA! Another safety feature is short circuited to the ground wire the NXT will automatically reset!

Finally, TACHOA pins carry the important task of reporting information back to the NXT. These two pins are also fitted with Schmitt triggers mounted between the ports and the processor. When you first take your NXT out of the box and have the standard firmware, these two signals are preset to work as rotation sensors for the motors and to check which way the motors are running.

Another great feature of the new NXT six-wire interface is the backwards compatability. The NXT wires are designed in a way that they can be spliced in a way to connect to the old RIS RCX! Philo has done some great work on showing how this can be done in his Custom NXT Cables Tutorial.

That's all for this part, check out the next article for a look at the sensor input system!

P.S. Be sure to go check out LEGO's Hardware Developer Kit!

Wednesday, August 02, 2006

Subscribe to our feed!

Just a quick update, I've added a bunch of buttons to add our blog feed to your favorite rss aggregators. Hope this helps out in adding your feeds!

What's Inside the NXT Brick?

This is the first in a series of mini articles that will take a look at the internals of the new Lego Mindstorms NXT Intelligent brick. In these articles I will take a look inside the NXT Brick what it is, how it works, and what makes it run. Check out part one of this series about the hardware inside of the NXT Intelligent Brick.

The full hardware specs as released by LEGO are as follows:

  • Main processor: Atmel® 32-bit ARM® processor, AT91SAM7S256
    • - 256 KB FLASH
    • - 64 KB RAM
    • - 48 MHz
  • Co-processor: Atmel® 8-bit AVR processor, ATmega48
    • - 4 KB FLASH
    • - 512 Byte RAM
    • - 8 MHz
  • Bluetooth wireless communication CSR BlueCoreTM 4 v2.0 +EDR System
    • - Supporting the Serial Port Profile (SPP)
    • - Internal 47 KByte RAM
    • - External 8 MBit FLASH
    • - 26 MHz
  • USB 2.0 communication Full speed port (12 Mbit/s)
  • 4 input ports 6-wire interface supporting both digital and analog interface
    • - 1 high speed port, IEC 61158 Type 4/EN 50170 compliant
  • 3 output ports 6-wire interface supporting input from encoders
  • Display 100 x 64 pixel LCD black & white graphical display
    • - View area: 26 X 40.6 mm
  • Loudspeaker Sound output channel with 8-bit resolution
    • - Supporting a sample rate of 2-16 KHz
  • 4 button user-interface Rubber buttons
  • Power source 6 AA batteries
    • - Alkaline batteries are recommended
    • - Rechargeable Lithium-Ion battery 1400 mAH is available
  • Connector 6-wire industry-standard connector, RJ12 Right side adjustment
The basic schematic for how the NXT brick interacts looks something like this:


For full schematics and information download LEGO's NXT Hardware Developer Kit.

Be sure to check out the next article about the motor and sensor ports of the NXT brick.

Tuesday, August 01, 2006

A Closer Look at the NXT Motors

A closer look at the servo motors contained in the new Lego Mindstorms NXT Robotics SystemContained in the new Lego Mindstorms NXT kit are three newly designed servo motors. Compared to the old 9v square motors contained in the original Robotics Invention System the NXT motors are much slower, but make up for their speed in the amout of power they hold...


The servo under no load runs at 170 rpm compared to the old style motor which ran at 360 rpm. The difference however is in the amperage drawn by the motors. The servo draws 60 mA of power whereas the old motor drew 3.5 mA.

This increased power draw in turn provides more torque. The NXT servos stall out when put under a load of 50 N cm. At the stalling point the servo draws 2 A of current.

Slower speeds are the result of an internal gear train that provides the extra torque. A computer generated image provided by Lego Education shows the servo internals here:The internals of the Mindstorms NXT Servo
The actual internals of the motor can not be completely seen due to the construction of the servo. To view the inside of the servo the motor would have to be broken and would no longer work. You can check more internal pictures at Philo's NXT Motor Page



This article is only a glimpse into the internals and statistics of the new NXT servos. For more information you should check out Philo's NXT Motor Page where much of this information was found.