Upgrading NXT brick CPU to AT91SAM7S512

Discussion specific to the intelligent brick, sensors, motors, and more.
Post Reply
manilow
Posts: 4
Joined: 20 Dec 2012, 16:43

Upgrading NXT brick CPU to AT91SAM7S512

Post by manilow »

Hello all,

in some projects I was running out of space on my brick, especially, when I tried to combine programs with interaction (sound and graphics). As the flash-memory is part of the Atmel-CPU I did some research and figured out, that there is a possible replacement for the AT91SAM7S256 available, the AT91SAM7S512 (http://www.atmel.com/devices/sam7s512.aspx)
The only difference between the two controllers is the size of the integrated flash, which is 512k instead 256k.
Has someone already upgraded the ARM-controller in the brick?

Soldering should be no problem, however I found no answer to the following questions:

- When I use The Enhanced NBC/NXC Firmware, do I need to recompile the firmware and change some configuration for the bigger Flash becoming active?

- How can I store the firmware to a new CPU, as I guess, that the original CPU has already some start code installed, which allows the upgrading.

It would be great, if somebody can give me directions or has some links to pages dealing with such kind of questions.

Regards

manilow
mattallen37
Posts: 1818
Joined: 02 Oct 2010, 02:19
Location: Michigan USA
Contact:

Re: Upgrading NXT brick CPU to AT91SAM7S512

Post by mattallen37 »

I assume you realize the difficulty of replacing an LQFP IC.

When the NXT doesn't have FW, it boots in SAMBA mode. From everything I've heard about SAMBA, it sounds like a universal USB boot-loader for loading FW onto ARM controllers through USB. I'm not sure if the AT91SAM7S512 comes with SAMBA pre-installed, but if not, you should be able to flash it using J-Tag (the J-Tag header is already broken out on the NXT PCB, but it's not populated).

The only thing I know is different between the 256 and the 512 versions, is the flash memory being a different size. I know that the FW takes up about 128k, but the remaining ~128k has so far always been plenty for me. It's true I have had to delete files so I could add new files, but I've never needed it all for one project (although I don't really use .rso or .ric files, I always use tones and vectors).

As far as the FW, I'll have to let John Hansen answer that.
Matt
http://mattallen37.wordpress.com/

I'm all for gun control... that's why I use both hands when shooting ;)
manilow
Posts: 4
Joined: 20 Dec 2012, 16:43

Re: Upgrading NXT brick CPU to AT91SAM7S512

Post by manilow »

Thanks for that fast answer,
yes, replacing the LQFP isn`t really a big problem. I will remove the previous one in an destructive way, by using a dremel, to cut the border of the LQFP package, so the legs remain on the PCB, where I am able to pick them up one by one with low heat.
I have done similar repairs to other devices already, so I am confident here.
However that means for me, that I have no way back: Once the dremel came into action, i need an replacement chip to continue. And I need to learn more about the way beyond this point, how to get the NXT back to life.

regards
manilow
mrblp
Posts: 82
Joined: 02 Oct 2010, 14:33

Re: Upgrading NXT brick CPU to AT91SAM7S512

Post by mrblp »

Hello manilow,
manilow wrote:Has someone already upgraded the ARM-controller in the brick?
Not known to me...
manilow wrote: - When I use The Enhanced NBC/NXC Firmware, do I need to recompile the firmware and change some configuration for the bigger Flash becoming active?
Yes. You have to check the following points:
- Does the free IAR-Toolchain support the 512-Version? Otherwise you need to use the demo which works 30 days only.
- Does the 512-Version use the same access blocks for self-flashing? Are the block-sizes the same? Are the flash timings the same?

And then you have to correct the filesystem parameters in Firmware such as block count, fat placement, fat size, start code - perhaps I forgot a lot...

You can do this if you are experienced with embedded systems and if you understand how the mindstorms firmware works - it's architecture.
- How can I store the firmware to a new CPU, as I guess, that the original CPU has already some start code installed, which allows the upgrading.


Take a look to the SAMBA-Application-Note of Atmel. Put in batteries, press the reset button at least 10 seconds and it should be in SAMBA-Update-Mode.

Well, take special care to the fuses of the controller. I hope they do not have to be set in a special way to get samba work...

Good luck - it would be very great when you write again with your result :-)
Bye Marvin
Bye Marvin

- "I think you ought to know I'm feeling very depressed." - (Android Marvin in "The Hitchhiker's Guide to the Galaxy" by Douglas Adams, 1978)
manilow
Posts: 4
Joined: 20 Dec 2012, 16:43

Re: Upgrading NXT brick CPU to AT91SAM7S512

Post by manilow »

Hello Marvin,

first a Happy New Year, to you and all members here in the forum.

Thanks for your very helpful and detailed hints. Looks like, that I have to do much more homework, before accidentally killing my NXT.

I think, that I will start with compiling/installing the unmodified firmware to the untouched NXT as a first step, to gain experience with that process and the samba mode of the controller.

Regards

manilow
Post Reply

Who is online

Users browsing this forum: Google [Bot] and 5 guests