This project uses the GCC toolchain to program Lego Mindstorms NXT. It provides a good foundation for those who are interested in the combination of open source software, embedded systems, and Lego Mindstorms: the NXTreme approach!. The NXTGGC firmware kit consists of three things: a tool to convert from IAR1 sources to GCC compatible sources, an ARM GCC toolchain, and an IDE for programming in assembler and C.
- Online documentation (you are reading it right now): http://nxtgcc.sourceforge.net
- NXTGCC Sourceforge navigation panel: http://sourceforge.net/projects/nxtgcc
NXT Technical Forum
- Please see the nxtasy forums.
- The PDF file for the Atmel ARM7 processor in NXT can be downloaded here: AT91SAM7S Series Preliminary
- The technical reference manual here: ARM7TDMI Technical Reference Manual
- ARM documentation at Wikipedia: ARM and specifically the ARM7
- ARM7 documentation from ARM itself and an ARM7TDMI overview
- A high-quality GCC compiler is supported by ARM and is released by Codesourcery
- ARM has a University program
- A nice hardcover book on the ARM processor is ARM System Developer's Guide
- If you are in doubt: ARM is a very widespread micro processor according to Frederick P. Brooks, Jr. It is one of the 25 chips that shook the world according to IEEE Spectrum.
- One should download the latest NXTGCCECLIPSE.0.0.x.zip file and unzip.
- Then there is a ReadMe.rtf file in the root of the NXTGCCECLIPSE directory.
- Please start by selecting the NXTGCC folder and press F5 for a refresh of the workspace.
LEGO Mindstorms NXT
- There is fine coverage of NXT at Wikipedia: NXT Programming
- Some informative blogs on Mindstorms include: nxtasy.org, and The NXT STEP
- Forums that concentrate on NXT inlcude: Lego NXT forum and NXT Firmware Hacking (if you want a relevant link placed next to the latter forum, pls. contact me).
- It has been used for a masters thesis in 2007
- A (work-in-progress) TinyOS implementation (see http://nxtmote.sf.net)
- NXTGCC was used in DTU Robocup 2009
- KDubiq Ph.D. summer school
- Google IO (cool pic. of Google in LEGO)
- ESWEEK 2009 LEGO MINDSTORMS Tutorial
- Olimex is a good place for PCBs and NXTGCC is listed there
NXT (Host-based) Communication Kits
- For a start consider looking the GDB debugger code (experimental) that comes with the NXTGCC project: It uses C programming to interface to NXT with USB and the Fantom.DLL
- There is libnxt
- The NXTGCC project is maintained by Rasmus Ulslev Pedersen.
1You may also want to try the IAR compiler (the one that LEGO uses): a free version is http://www.iar.com/mindstorms available, but this project focuses on GCC. The IAR linker reference is useful when you start comparing GCC and IAR compiler output (map files).