Java on the NXT: leJOS NXJ is here!

I know many people have been awaiting this big step forwards from iCommand. (Which runs a Java program on your PC to remotely control the NXT.)
Details from the leJOS home page:
leJOS NXJ is ready for download. leJOS NXJ is a full firmware replacement and works for Windows and Linux. This is a technology preview of things to come. At the moment there is no Bluetooth, I2C (Ultrasonic sensor), or sound support and we do not have a basic menu system. You can write Java programs and upload them to the NXT brick via USB. (see readme for more information)
Congratulations to Brian Bagnall and everyone who has been working on this, and thanks for letting us know about the release.
Please leave a comment if you try it. (I have not installed it yet, and I probably will not have the time before the weekend.)
- Tony N
Comments
Do you know if they are using the Bluetooth protocol internally to accomplish this or was there an attempt to reverse engineer the NXT similar to the work of
Keloa Proudfoot ?
You can't just use the BT protocol internally. That does not make sense.
The NXT low-level firmware was written from the ground up using the schematics and documentation as reference. When the Lego fw source became available, I looked at that once or twice for clarification of some missing info in the documents.
The firmware development was done using gcc for ARM and jtag debugging etc. See http://users.actrix.co.nz/manningc/lejos_nxt.jpg
There's still quite a bit to go to get a full system, but various people have been using pre-release Lejos NXJ for a few weeks now.
This effort was similar in ways to Proudfoot's work. This effort did not require as much hardware reverse engineering because Lego released the schematics. On the flip side though, the NXT is far more complex and there are a lot more complex issues to sort out. For example, the link between the ARM and the AVR was a lot more complex to debug.
You need java and you need to build USB loader which is built on libusb. If you want to rebuild the VM from scratch you will need gcc etc for ARM too. So long as libusb supports OSX (which a quick Google search suggests is good), then I can't see any problems with using NXJ on OSX.
Of course you could then post on the Lejos mailing list any special steps you needed to take :-)
You need:
Developer Tools (obviously)
libUSB ( configure / make / make install)
I haven't build the VM cause i did want to build a GCC tool chain for ARM for a simple quick look on a alpha release.
- Spirou