leJOS is a Java-based replacement firmware (OS) for LEGO Mindstorms programmable bricks, including RCX and NXT.
It supports threads, exceptions, synchronization, floating point arithmetic, strings, and so on, but there is no garbage collection yet. The project is also designed to be portable to other small devices.
Product's homepage
What's New in This Release: [ read full changelog ]
Andy Shaw has added:
· RS485 BitBus Support and restructure of communication classes to support it
· Support for LCP over RS485, including a restructured LCPResponder
· NXTConnectTest, NXTReceive and NXPLCPRespond samples
· Fix for fantom driver to avoid Windows blue screens and fix for USB on Linux
· Fix for private synchronized methods
· Increased reserved flash (and decreased user flash) as firmware has grown
· Improved way that number of reserved flash pages are handled to make this easier to change in future
· Improvements to I2C including standard and Lego modes and improved buffer handling
· Improved handling of communication with the AVR
· Fixed the problems with writing to flash memory that affected specific NXT bricks
· Improved firmware buffer handling and memory usage
· Fixed exception wrongly caught bug
· Improvements to sensor port handling and sensor and button polling
· Improved support for NaN in the firmware
· Firmware support for corrections to converting floats and doubles to bits
· Enhanced run time type checking
· Improved handling of interfaces and added clone support to the VM
· Added throw of exception for stack overflow
· Restructured and simplified jlibnxt
· Fixed bug with libnxt on MAC OSX
· Added locking to jfantom dll
· Support for RFID sensor
· Support for RCX Rotation Sensor
· Verification of uploaded firmware
· Faster start up of the menu (starts tune playing earlier)
· Other minor fixes and improvements
· Support for CompassPilot in restructured lejos.navigation
· Added FlashError class to report errors reading and writing flash memory
Sven Koehler has added:
· Improvements to Eclipse projects
· Improvements to ant build files and C makefiles
· Support for a much larger subset of the Java 1.6 version of java.lang
· Autoboxing support
· Support for generics, enum classes, and foreach loops
· Improved, redesigned and expanded java.io package
· Support for java 1.6 collection classes in java.util
· Improvements to java.lang.Math
· Support for annotations
· Support for assertions
· UTF16 support in java.lang.Character
· Performance improvements to ArrayList, StringBuilder, Math methods, etc.
· Added --bootclasspath parameter to linker to make setting user classpath easier
· Completely reworked Linux and Windows command line scripts they are now generated by an ant build file
· Added ant build file to build the snapshot
· Added an ant build file for building the snapshot
· Modernised various source by use of ArrayList not Vector, HashMap not Hashtable etc.
· Added use of generics to various source files
· Added a lejos.charset package that supplies a simple Charset API for encoding/decoding
· Added a lejos.io package to support the leJOS implementation of java.io
· Other minor fixes and improvements
Lawrie Griffiths has added:
· NXT class for NXT-specific system methods
· Improved lejos.localization classes including Localizer interface and TachoLocalizer class
· Added new NXTConnector class to pccomms and made all tools and samples use it
· Full support for NXTCommand and other iCommand-derived classes in lejos.nxt.remote
· Support for equivalent of iCommand in pccomms (other than the vision package)
· Common classes between classes.jar and pccomm.jar including nearly all of the sensor driving classes
· Fix for RCXMotor broken bug
· More functional Rectangle class for use with NXTCam
· Support for remote I2C writes and improvements to LCP support
· j2mecomms and j2mesamples projects (not in release)
· Added iCommand-like samples to pcsamples
· New NXJControl utility combining functions of NXTBrowser, NXTMonitor and console and data viewers
· Cache of NXT names and addresses for faster connection to the NXT over Bluetooth
· Added command line processors to the tools which did not have them
· Common code for different user interfaces for data viewer and console viewer
· Added new org.lejos.example project
· Changed jar file and source zip and tarball files to omit version numbers consistently
· Various minor additions to java.lang and java.io classes
Roger Glassey has added:
· More robust Arbitrator with change to contract between behaviors and Arbitrator
· Updated samples to implement new Arbitrator rules
· Improvements to Data Logger
Roger Glassey and Dirk Sturzebecher have added:
· Made Pilot an interface, added TachoPilot class, and renamed TachoNavigator as SimpleNavigator
· Added TachoNavigator class for backwards compatibility
· Implemented drift correction in TachoPilot
· Made pilots and navigators support a wider range of robots with different steering mechanisms#
· Changed Navigator and Pilot interfaces to support independent move and turn speeds and other generalisations
Dirk Sturzebecher has added:
· Added WaypointNavigator class
Brian Bagnall has added:
· Support for J2ME Location API
· Additions to Vector class
· Pairing of Bluetooth devices from the NXT start-up menu
· Support for more of the javax.bluetooth and javax.microedition.io packages
· Restructured and improved lejos.gps package
· Improvements to NXTCam
· Changed NXTSocket and NXTServerSocket to standard java.net versions
· Improved lejos.keyboard package
· Minor additions to java.lang, java.io etc.
· Degrees, Latitude and Longitude classes (for future GPSNavigator)
Juan Antonio Brenha Moral had added:
· Improvements to Mindsensors NXTServo and PFMate support
· PFMate sample
Matthias Paul Scholz had added:
· Additions to pccomms to support Eclipse plugin NXT browser
· Updated the Eclipse plugin for the 0.8 release
Alexander Vegh has contributed:
· The PFLink class which driver Power Functions Motors using the Mindsensors NrLink
Mike Smith has contributed:
· Support for Mindsensors PFMate and sample test program