Subject:
|
Re: NXT Firmware source code
|
Newsgroups:
|
lugnet.robotics.nxt
|
Date:
|
Tue, 12 Dec 2006 13:05:25 GMT
|
Viewed:
|
13729 times
|
| |
| |
In lugnet.robotics.nxt, Jason J Railton wrote:
> In lugnet.robotics.nxt, John Hansen wrote:
> > LEGO has posted the standard NXT firmware source code today. You can get it on
> > the NXT'reme page:
> >
> > http://mindstorms.lego.com/Overview/NXTreme.aspx
> >
> > The direct link to a EULA is here:
> >
> > http://mindstorms.lego.com/Overview/OpenSource.aspx
> >
> > John Hansen
>
> This is very good news. Thanks for the update. I've been waiting for this for
> a long time, particularly to have a look at the rather weak graphics
> capabilities. I've had an expanded font (and a much smaller one) kicking around
> for a while now.
>
> Is it viable to repeatedly download test versions to the NXT firmware though?
> Wasn't there an issue with the number of times you could download?
>
> Does anyone have any plans to develop a system whereby machine code applications
> can be run on the operating system? That would give more scope to develop more
> advanced applications, as then one could develop libraries to do new things
> rather than firmware hacks.
>
> Is there a forum I'm not aware of where this can be progressed? I suppose I'm
> getting ahead of myself if no-one's done a successful build and download yet
> though...
Flash memories all have a limited number of write cycles before they become
unreliable. Usually, the on-chip write controller will "load-balance" the
writes so that different memory locations all get used the same number of times,
automatically re-mapping physical addresses into the logical address space. I
have read that the flash used in the NXT is rated for 10,000 writes before
problems may occur. (Some modern flash memories are rated for over 1,000,000
write cycles.)
I have also read that there is one section of the flash which is used for a
Table Of Contents, and which therefore must be updated any time a file is loaded
onto the NXT. This area would be re-written any time you add or delete a file
from the NXT, even a simple data-logging application. The article that I saw
did not mention whether the TOC is always in the same physical memory location;
it is more likely that this logical section is re-mapped into a new physical
address during each write operation.
Still, writing any type of file onto the NXT will eventually wear out the flash
memory and lead to failure. If you were to download 30 programs onto your NXT
every day, it would start to have problems after about a year, assuming that
these specs are correct. Running a data-logging application continuously on
your NXT could burn it out even faster.
If you were testing new firmware, you would probably not be writing the flash
any more frequently than someone who was testing an application written using
the standard MindStorms programming environment, (in fact, you would probably be
writing less frequently between test iterations) but this could eventually
become an issue for some people. If you are worried about this, you might
consider writing an emulator for your development machine so that you don't
perform too many writes. This could be a good idea anyway, because you could
run the risk of "bricking" your NXT by downloading buggy firmware. I do not
know whether the firmware download routines are stored in a ROM external to the
flash firmware, but this would be a wise design. The NXT does have a reset
button hidden in the recess of the Technic pin hole beneath the USB connector,
but whether this would simply reboot the buggy firmware I do not know.
I am planning to dig into the firmware source code to see how it ticks. I
personally don't have any immediate plans to customize it yet, since I am still
learning what the NXT can do without my meddling. It would be cool to be able
to compile and run standard C++ apps (brickOS port, anyone?) and I suppose that
there will be many replacement firmware versions available soon enough. But
just like using dremel tools and glue, use of replacement firmware should only
be a last resort, IMHO.
The answers to all of these questions can probably be found in the firmware
source code and in the NXT hardware documentation, which can all be downloaded
from the LEGO web site at the links that John provided. Another great place to
ask these questions is http://www.nxtasy.org. (I see that somebody has already
patched GCC to be able to rebuild the LEGO firmware!) But please do post
questions, answers, and NXT-related announcements here on lugnet.robotics.nxt as
well, since many people still come here as their primary source of information.
Hope this helps!
|
|
Message has 1 Reply: | | Re: NXT Firmware source code
|
| (...) If this limitation had applied to the rcx, I'd have suggested this. Because you can control the outputs and read the inputs direct from a pc you could run an emulation of the rcx firmware running your program on the pc. The rcx would then (...) (18 years ago, 15-Dec-06, to lugnet.robotics.nxt)
|
Message is in Reply To:
| | Re: NXT Firmware source code
|
| (...) This is very good news. Thanks for the update. I've been waiting for this for a long time, particularly to have a look at the rather weak graphics capabilities. I've had an expanded font (and a much smaller one) kicking around for a while now. (...) (18 years ago, 12-Dec-06, to lugnet.robotics.nxt)
|
16 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
Active threads in NXT programmable brick
|
|
|
|