LEGO NXT Programming

How to play with Bluetooth under Linux
A starter for Bluetooth under Linux.
Some Pictures of NXT Production Hardware
[NXT Hardware top view]

Here are some pictures of the hardware of a production NXT from the US. The JTAG pull-up resistors are still mounted, like in the prototype version (thanks, LEGO!).

Some Pictures of my JTAG Setup
[Segger JLink connected to NXT]

Here are some pictures of my JTAG setup for the NXT. The wiring is described in the NXT hardware document.

I still need to figure out how to use it for in-circuit debugging, especially under Linux (any help is appreciated). At the moment I can only use it under MS-Windows with the JLink utility that came with the Segger interface. I used it to read and write to I/O-ports to verify that the correspondence of I/O-pins to ports in my hardware documentation is correct.

Building a GNU toolchain for ARM

To program the main AT91SAM7S256 controller of the LEGO NXT Brick, you need a toolchain with compiler, linker, etc. for ARM. At least under Debian this is not available as a precompiled binary, so you need to build your own. Fortunately this is not difficult, this tutorial shows how.

The architecture for the AT91SAM7S256 is armv4t.

NXT Hardware Information

Here is the information about the NXT hardware that I found out independently of any LEGO documentation, so after May 1 2006 I am free to post it here. Still missing is information about how to use buttons, motors, legacy sensor inputs and the LCD. LEGO has announced that it will publish the remaining bits in August 2006, together with the NXT firmware (nxt-hardware.ps.gz).

To view this file in compressed Postscript format you can use GV under Linux or GSView under MS-Windows.

I'm still looking for a better way to do schematics, via SVG would be nice for integration into the web site.

Segger SAM-ICE USB Commands

Some first steps at describing the USB protocol of the Segger SAM-ICE, in order to use it with GDB under Linux.

Links

I added a page with links.

A General Note

If you find mistakes or have suggestions, please tell me.