Skip to content
tcwan edited this page Apr 16, 2012 · 2 revisions

What is NxOS?

NxOS is an open source operating system that runs on the Lego Mindstorms NXT platform. It aims at providing a comprehensive base system that provides easy-to-use APIs to the NXT's hardware, including sensors, display and motors.

It also contains some libraries that developers of /application kernels/ may find of some interest, such as a file system or a GUI builder.

NxOS is written in C, and must be cross-compiled to the ARM platform.

Requirements

The goal for NxOS is to have a cross-platform hosting (development) environment. A basic setup would include:

  • Integrated Development Environment (Eclipse)
  • ARM Cross-Compiler Toolchain (GNU GCC)
  • Host-based GDB Server (Python-based) and Client (GDB for ARM)
  • Enhanced NXT Firmware by John Hansen from brixcc.sourceforge.net
  • Firmware Downloading Tool (NeXT Tool [GUI] or NeXTTool [CLI] from brixcc.sourceforge.net)

Building and testing NxOS requires a few software packages and libraries. Since most of the external utilities are written in Python, you will need a working installation of Python (www.python.org). Python 2.6.x or 2.7 (not 3.x) is recommended, especially for the Mac OSX platform if remote debugging using GDB is desired.

On Mac OSX (and Windows?), the following packages are needed:

  • LEGO Mindstorms Fantom Drivers
  • Python >= 2.6 (not 3.x)
  • scons
  • Python Imaging Library (PIL)
  • pyfantom
  • nxt-python >= 2.1.0

For MacOS X (>= 10.5.x) users, don't forget to install the Lego driver Leopard update from the Lego software updates page, or you won't be able to communicate with the brick via USB.

On Linux platforms, the following packages are needed:

  • Python >= 2.4 (not 3.x)
  • scons
  • Python Imaging Library (PIL)
  • libusb
  • python-pyusb
  • PyBluez (if you want to upload/boot from the enhanced fw using bluetooth)
  • nxt-python >= 2.1.0

Directory Structure:

  • nxos: NxOS Project Main Directory (see nxos/README for more details)
  • nxt_python: NXT_Python code, obsoleted by NXT-Python (http://code.google.com/p/nxt-python/)
  • pynxt: Firmware Downloading code, unmaintained
  • remote_gdb_reference: Various GDB Stub reference source code materials
  • scripts: Miscellaneous cross-compiler toolchain utilities
  • usb_console: Low Level USB Console, unmaintained