Page 1 of 1

Upgrading NXT brick CPU to AT91SAM7S512

Posted: 20 Dec 2012, 17:04
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

Re: Upgrading NXT brick CPU to AT91SAM7S512

Posted: 20 Dec 2012, 18:31
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.

Re: Upgrading NXT brick CPU to AT91SAM7S512

Posted: 21 Dec 2012, 08:49
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

Re: Upgrading NXT brick CPU to AT91SAM7S512

Posted: 27 Dec 2012, 14:37
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

Re: Upgrading NXT brick CPU to AT91SAM7S512

Posted: 07 Jan 2013, 07:43
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