aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordavid.jc.anderson2007-04-22 05:01:32 +0000
committerdavid.jc.anderson2007-04-22 05:01:32 +0000
commit32ea1c6fbf715602cb68f4892f3c2787ea09a1f1 (patch)
tree8acfb2eb18c5d6e374d6d33a1084e00fa993fdaf
parent5e3042ef93216a98d423bf26ce1ccdff5b89a146 (diff)
Update the README for version 0.3.
-rw-r--r--README72
1 files changed, 46 insertions, 26 deletions
diff --git a/README b/README
index 6d82831..5b54bd3 100644
--- a/README
+++ b/README
@@ -1,26 +1,20 @@
LibNXT and FwFlash
- v0.2
+ v0.3
David Anderson
====================
What?
=====
-LibNXT is setting out to be a full NXT control library for a host
-computer to talk a Lego Mindstorms NXT intelligent brick. This
-includes:
+LibNXT is an utility library for talking to the LEGO Mindstorms NXT
+intelligent brick at a relatively low level. It currently does:
- - Handling USB communication and locating the NXT in the USB tree,
- - Interaction with the Atmel AT91SAM boot assistant; especially:
- - Flashing of a firmware image to the NXT
+ - Handling USB communication and locating the NXT in the USB tree.
+ - Interaction with the Atmel AT91SAM boot assistant.
+ - Flashing of a firmware image to the NXT.
+ - Execution of code directly in RAM.
-Currently planned features:
-
- - Interaction with the official firmware (called NxtOS here)
- - Language bindings to various higher-level languages (C++, Perl,
- Python, Java, Lua, ...)
-
-(If you have ideas of other stuff, please send it in!)
+(If you have ideas of other stuff it should do, please suggest!)
LibNXT is targetted at the platforms that the official Lego Minstorms
NXT software overlooks. Specifically, it will work on any
@@ -34,16 +28,25 @@ commandset, right up to just calling nxt_firmware_flash() and having
everything taken care of!
-FwFlash is the first utility program that uses LibNXT. As its name
+`fwflash` is the first utility program that uses LibNXT. As its name
hints, its purpose is to take a NXT firmware image file and flash it
to a connected NXT device.
+`fwexec` is another cool utility, originally written by the folks of
+the Lejos project (http://lejos.sourceforge.net/). It takes a
+specially compiled firmware image, uploads it to the NXT's RAM, and
+executes it directly from there. While this firmware will only last
+until the brick is powered down, it is a great tool for testing
+firmwares during development without wearing down the flash memory.
+
Who?
====
Uh, that would be me. David Anderson, linux/open source developer and
-enthusiast, and an MDP participant :-).
+enthusiast, and fan of embedded stuff in general. As mentionned above,
+the `fwexec` utility was originally written by Lawrie Griffiths, over
+at Lejos.
When?
=====
@@ -55,6 +58,17 @@ proof-of-concept application, I've been implementing this library to
abstract the horrors of low-level USB chatter into a nice, clean
library.
+ - Release 0.3 (22/04/2007) : more than a year later, there are a few
+ changes, and it can't hurt to push them out in an
+ actual release. This release includes a more
+ intelligent build system that handles a missing flash
+ driver elegantly, and the `fwexec` utility program.
+ Unless people have specific itches that need
+ scratching, or bugs that should be fixed, this will
+ probably be the final release of libnxt. My personal
+ itch is scratched, and I've moved on to using libnxt
+ to write firmware code :-).
+
- Release 0.2 (17/03/2006) : firmware flashing is now done entirely
with open source code. The flash driver routine has
been replaced with open source code implementing the
@@ -85,15 +99,15 @@ running:
./fwflash nxtos.bin
-nxtos.bin is the official Lego Mindstorms NXT firmware RC0, bundled in
-this package for convenience. You can take the one on your current
-installation of the Mindstorms software, they are the same file.
+nxtos.bin is the official Lego Mindstorms NXT firmware. You can find
+this on your current installation of the Mindstorms software, or on
+LEGO's website.
If all goes well, fwflash should inform you that it has found the NXT
on your USB device bus, and that flashing has started. After a few
seconds, it should announce successful flashing, and say that it has
booted the new firmware, which should be answered by the greeting
-sound of NxtOS as the brick starts up :-).
+sound of the LEGO firmware as the brick starts up :-).
If it doesn't, well it's either a problem with your USB device
permissions (if fwflash can't find the NXT), or it's a bug (if the brick
@@ -101,9 +115,15 @@ doesn't reboot properly, or if some weird error is reported by fwflash
and it bombs out.
The release tarball comes with a 'flash.bin'. This file is the
-compiled version of the open onboard flash driver. If you want to
-rebuild this file yourself, you'll need an ARM cross-compiling
-toolchain, such as the one provided by the excellent Scratchbox
-project (http://www.scratchbox.org/). Once you have it set up one way
-or another, cd to the flash_write directory and type 'make' to produce
-the flash driver binary.
+compiled version of the embedded flash driver, which is uploaded to
+the NXT's RAM and required to write data into flash memory.
+
+If you do not have a release tarball, or accidentally deleted your
+copy of flash.bin, there are several options. If you have an ARM7
+cross-compiler toolchain, you can simply type 'make' in the
+'flash_write' subdirectory to rebuild the flash driver.
+
+If you don't have a suitable cross-compiler, you can just run 'scons'
+as usual. The build system will see that the flash driver is missing,
+and offer to download a binary copy from the LibNXT website and use
+that.