4

I am looking for the source code to latest NXT firmware (v1.31). I found the binary image is on LEGO site: https://www.lego.com/en-us/themes/mindstorms/downloads, but no links to firmware source code that I could find (just the EV3, not the NXT).

Meanwhile, I found copies of LEGO NXT firmware v1.29 and v1.05 at: https://github.com/dlech/nxt-firmware/releases

I thought it might be based on (or included in): http://mindboards.svn.sourceforge.net/svnroot/mindboards/lms_nbcnxc/branches/version_131/, but that link is apparently offline now, and I didn't see equivalent on mindboards' github: https://github.com/mindboards

Finally, I also found a copy of modified firmware at: http://nxt-firmware.ni.fr.eu.org/, but I was hoping for LEGO's stock firmware (v1.31) to evaluate as a baseline.

Bonus: does anyone have EWARM-LEGO (the free "LEGO Edition" of IAR's ARM compiler) archived?

Here's an archived view of the product: https://web.archive.org/web/20110815231532/http://www.iar.com/website1/1.0.1.0/1483/1/

And a press release: https://www.embedded.com/news-iar-systems-announces-free-development-environment-for-lego-mindstorms/

apparently this is no longer available or supported from the IAR site.

Thank you!

3
  • Wdym "binary image"? Can you send the specific link to that, or are you unable to embed it (which means that we have to find it ourselves)? May 16, 2020 at 16:24
  • 1
    Sorry, I didn't copy the direct firmware link: lego.com/cdn/cs/set/assets/blt3502cca1438605b8/… ... as I was afraid LEGO might change the link (it is at the "downloads" page above, labeled "NXT Firmware Download"). The "binary image" meaning the ZIP download only has LEGO MINDSTORMS NXT Firmware V1.31.rfw and no source code like LEGO has for EV3.
    – bitbob
    May 17, 2020 at 15:31
  • @mindstormsboi "Binary Image" or often just "Binary" is a fairly common term to refer the compiled output of a computer program (i.e. the .lib, .dll or .exe files), as opposed to the source code, which is typically text based. Oct 14, 2020 at 0:39

3 Answers 3

5

I have been looking around a bit for the same files. I plan to contact Lego/IAR myself to try to find the official source code and development software, and will update this answer when I do. However, I did find some stuff that might help out.

Between these two, it might be possible to figure out what changes were made in Firmware 1.31.

As for compiling, IAR workbench for ARM has an evaulation tier now that is free, but with a code size restriction of 32kB. There are other options out there though. Segger's Embedded Studio is free without size restrictions as long as you do not use it commercially. Additionally, it appears that the NXTGCC project is a system that allows compiling firmware for the NXT using GCC instead of IAR.

EDIT1: If you are more of a fan of Git than Subversion, I have ported the MindBoards SVN project to GitHub. You can find it here: https://github.com/Marsfan/NXT-Enhanced.

I have a second repository with the 1.07 code, but that will likely go away as I work to merge that in as a separate branch to the above linked repository.

EDIT2:

So I realized that I never updated this after contacting IAR. I got a response saying that the Lego Mindstorms NXT IAR tool set was a combination of their other products

  1. IAR EWARM (Embedded Workbench for ARM)
  2. IAR EWAVR (Embedded Workbench for AVR)
  3. IAR EWVS (Visual State)

When I contacted them, they provided me with a link to download VisualState, and they said that the free tiers of Embedded Workbench should work for development. The free tier's main limitation is on code size, so I don't know if it is possible to compile the full set of software.

1
  • Have you been able to get the NXT source for 1.31? I wrote Lego but they refuse to give the source code because the product was discontinued many years ago. I'm really unsure at that point if I just wasn't able to overcome the first level support or if they really lost the code or didn't want to publish it
    – Andy
    Mar 18 at 16:27
3

What you are asking for doesn't exist at this time. The links you provide to github are not official LEGO products, but the work of an open source project as described on their home page that has chosen to correspond to the versions released by LEGO itself:

This is NXT Improved Firmware, an open source community driven work based on the original LEGO Mindstorms NXT firmware.

Online resources are accessible on the NXT Improved Firmware web page, including documentation, building guides, and more:

http://nxt-firmware.ni.fr.eu.org/

NXT Improved Firmware combines code covered by the LEGO Open Source License with code covered by various other open source licenses. Any file not covered by the LEGO Open Source License includes a notice in its header. All other source files are covered by the LEGO Open Source License. Please see the enclosed "LEGO Open Source License" file for more precision on this license conditions.

You could file an issue on github and request that they update their project to track the upstream release, but there's no reason to assume they currently have the time and resources to do so. You could offer to help, or look into what it would take to make the update you're asking for yourself. Some github projects appreciate new contributions more than others, so I'd definitely open an issue to discuss it before doing a pull request or coding much myself.

1
  • Hi -- thank you for the reply. My hope is that the v1.31 firmware used to be available, and someone has a copy or knows of another open source project that archived the original as part of their modded project (like the nxt-firmware github site apparently archived v1.29 and 1.05 separately).
    – bitbob
    May 17, 2020 at 15:34
3

For people looking for older versions of the LEGO MINDSTORMS NXT Firmware Open Source you might be interested to know that IAR Systems, suppliers of the IAR Embedded Workbench used by LEGO, hosted a link to v1.04* from 2009 onwards:

The IAR Systems FTP service isn't operating any more, but as of today you can still change the method from ftp:// to http:// so to download the 1.6MiB .zip file.

* based on #define FIRMWAREVERSION 0x0104 //1.04 in the c_loader.iom file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.