Reflashing RSMedia with original firmware.

57 posts / 0 new
Last post
Helibot
Helibot's picture
Reflashing RSMedia with original firmware.

Hi all,

   You may have noticed that Wowwee have released the original version of RSMeida firmware and a reflashing script. It has been uploaded to the Robocommunity download area. See here for details.

Reflashing the original firmware could fix any corruption in system files, default files and maybe personality files.

Actually this is fantastic news for two reasons:-

  1. It could allow some broken RSMedias to be revived. If you have a RSMedia that fails to finish booting this MAY help.
  2. It could allow further additions/extensions (hacks!!) to RSMedia.

BUT BE WARNED THAT REFLASHING WITH A MODIFIED VERSION WILL VOID ANY WARANTY YOU MAY HAVE ON YOUR RSMEDIA. 
(
Although I suspect that there are very few who have any warranty left on a RSMedia anyway!!)

ALSO BE WARNED THAT THIS HASNT BEEN TESTED MUCH YET - there is a risk that if something goes wrong then you may never be able to boot the robot again!!

ALSO BE WARNED THAT SO FAR WOWWEE HAVE ONLY RELEASED ORIGINAL FIRMWARE (IE RSM-without-USBNET). So DONT try this on a RSM-with-USBNET.

But having said that  I am very excited about the possibilities.....

But first I thought I should do some testing.....
The reflashing script is fairly complex and doing some things I dont yet understand. So I made a cut down version that will just reflash the NAND2 memory area (which is mapped to /mnt/default). This area holds data files that are used by the RSMedia robot programs, but not by linux. (So if this area gets corrupted the linux board should still boot but the robot functions may not work.) So I figured that if anything goes too wrong I could probably use linux serial console to fix it.

Heres a quick summary of what I tested tonight :-

  • I used the FirmwareDump scripts (from RSMDevkit) to make a backup of all the areas. (It should be possible to put some backed up areas back into the robot using the script- not tested yet)
  • I tested the script can successfully reflash the NAND2 area.
  • The original image files provided are .cramfs format (which is a compressed readonly file system format supported by linux)
  • Using linux tools I managed to uncompress the image to a linux machine, modify some files , recompress the image (using 'mkcramfs').
  • Then I successfully reflashed the image into the NAND2 area.  This is great news as it means that reason 2 above is probably going to be a reality!!

Something did go wrong a few times - my SDCard is fairly loose and it can sometimes stop working - it did this in the middle of a reflashing. But the script kept going, it detected that the reflash didnt work and exited gracefully. the robot rebooted Ok and it worked the next time around. (But I sure was worried for a few minutes....)

I have not yet tried to reflash the root file system area. This is a bit more dangerous so I wanted to understand how it all works first! (I will probably try it this weekend.)

Anyway thats it for tonight. Will update some more after more testing on the weekend.

If anyone else really wants to try this out - if you are game enough you can just try following the instructions given by Wowwee in the download. It will probably work Ok.

Lastly I would like to say a BIG THANKS to Wowwee and Randy getting these files released.

Cheers
   Helibot

 

Helibot
Helibot's picture

Hi all,

  Here is a progress update.  In short the script works well. It will successfully reflash two areas of RSMedia file systems.

Also I found that we can successfully use the script to restore extracted images made by the firmware_dump scripts.

Here is some more detail:-

Background and info on what I have learnt:
RSMedia has a singlle large Flash chip broken into five areas.These are shown in the bootup output (You can see it with ‘dmesg’ command from serial port or USB console)

nand0 : block 0x0000-0x003e : "Kernel" 1008 KB direct map
nand1 : block 0x003f-0x01fe : "RootDisk" 7168 KB random map
nand2 : block 0x01ff-0x047e : "DefaultDisk" 10240 KB random map
nand3 : block 0x047f-0x0f5a : "UserDisk" 44480 KB random map
nand4 : block 0x0f5b-0x0f7a : "WritableDisk" 512 KB random map

  • nand0 is for the linux kernel
  • nand1 is for linux root file system (everything you see when you type ‘ls /’)
  • nand2 is the RSMedia default files (they are mapped to /mnt/default) These files are used to supply some default resources if the selected personalities don’t supply their own. Also contains some other files for Java and others.
  • nand3 is the area where your downloaded personalities/photos/videos get stored if you DON’T use the SD card
  • nand4 is a small writeable filesystem (mapped to /lnk and used by some RSMedia applications I think)

 The supplied script reflashes nand1 and nand2 areas. So it will restore all the default linux files and the default ‘RSMedia’ personality data.
(Note that other personalities -Butler, ServiceBot,SpaceBot and Billy Joe are NOT part of the nand2 data. They are in nand3)

 The script will also delete and reformat the nand4 area.

 As the scripts runs successfully you will these messages printed to the LCD screen:-

UPDATING MEDIA
Then
CHECKING
CHECKSUM OK
Then
UPDATING
APPLICTIONS
Then
CHECKING
CHECKSUM OK
Then
FINISH UPDATIN
PLEASE RESTART
THE SYSTEM

What I tested:-

  • I ran the script as it was supplied by Wowee – it successfully reflashed both nand1 and nand2 areas and recreated nand4.
  • I ran the script with only one of the .cramfs files in the /rsupdate directory. The script ran OK and only updated one of the areas.
    • rfs_default.cramfs is used to flash nand1
    • rfs_system.cramfs is used to flash nand2

      So if you want to be safe and update one area at a time you can (I suggest doing default area first).

  • I copied the extracted 'nand2' file (made by firmware_dump scripts) over the top of sdcard /rsupdate/rfs_default.cramfs and ran the script. It successfully restored the extracted image. (see NOTE 1 below)
  • I copied the nand1 file made by firmware_dump scripts over the top of sdcard /rsupdate/rfs_system.cramfs and ran the script. It successfully restored the extracted image. (see NOTE 1 below)

 NOTE 1 – During this operation the checksum test may fail, but the reflashing still  worked OK. Its caused because the extracted image has a different checksum than the supplied one. (you can fix this by using program ‘winmd5’ (find it via google) to find the md5 checksum for the extracted file and paste it into the rfs_default.md5 or rfs_system.md5 files.

 Interesting Notes
   1) The script includes lines to reflash the kernel image as well. But the lines are c1)ommented out and Wowwee did not supply a kernel file.  But if you run the firmware_dump script it does generate a nand0 file (which should be the kernel image file). I will probably try to flash this tomorrow (I will have my fingers crossed and my toes during that one…. If it fails its probable that the robot wont boot to linux any more!)

   2) If you have the serial hack there is a boot menu that is shown during startup. If you press a key you can get options to reflash bootloader, nand kernel, nand root-disk and rsmedia sys image and more. Today I successfully used this method to also reflash the rsmedia sys area (nand2) with the rfs_default.md5. It seemed to work. More about this later.

Cheers
   Helibot

Helibot
Helibot's picture

Hi all,
Got some more good news and some really bad news.
Good news is that I found I could erase all the sections on the RSMedia flash device and reflash them all successfully (including kernal, root filesystem and default RSMedia files.
The kernal file can only be flashed via the bootloader menu (that is only seen with the serial console). The other files can be flashed from either the bootloader menu or an rsupdate script.

So we should be able to make a script that can restore the root filesystem, the RSMedia default files and the default RSMedia personalities. Ie basically set the bot back to exactly how it came from the production line.

Now the bad news.....its really bad....I would like to announce the death of a good friend of mine - my original RSMedia - he gave his life today for science - he knew the risk but made the ultimate sacrifice to help us all learn. I renamed him today as 'BEN' (after the robot in the kids movie 'Treausre planet' who had his memory removed). He is now nonbootable because I wiped his bootloader, so all he does now when turned on is show a white screen of death!
I decided to try a risky move and it didnt pan out :-(. RSMedia has a program called a bootloader, its a bit of software that is run first when RSMedia boots up and its main purpose is to load the linux kernal, it can also be used to reflash certain parts of the robot. One of the options is to reflash itself , ie load a new version of the bootloader. I tried to reload the bootloader and although it said it successfully flashed. On reboot it now doesnt do anything.....no output to serial console, no booting linux :-(
Without the bootloader running there is no way (at least that I know of) to reflash another bootlader......so BEN is now a very good looking doorstop :-(

You may wonder why I risked it? Well good question.....the answer is that I was hoping to reflash the bootloader from a RSM V2 (ie with USBNET) and then reload all the RSM-with-USBNET software. Effectively upgrading him to be USBNET capable! It guessed it had a fair chance of working. Its something I have been wanting to achieve for a long time now....it seemed worth the risk.

Fortunately I have another RSMedia (another V1 and without the serial hack), so my RSMedia adventures can continue;-)

I have learnt a lot from this exercise, I will do another post in a few days with detailed instructions on safely reflashing the sections that can be reflashed. Probably with a modified script that can also flash the default personalities back in.

Rest in peace BEN
Helibot.

TikaC
TikaC's picture

Sorry to hear about BEN. However, you MAY be able to reflash this chip using a hardware hack or something to connect it to a flash device. I don't know where to get one but there must be one somewhere that is a stand-alone device that can flash chips.

Wonder if you hooked the bot up via USB and tried to have it run an OS on the SD card would it boot from SD card if nothing is found on the chip? Sorta like if you don't have a hard drive on the PC it looks for CD or floppy to boot from. Then you might be able to reflash from there.

This would be worth looking into, to see if BEN can be saved and how, so that if it happens to someone, the bot can be rescued.

FreddyA
FreddyA's picture

Helibot, I truly admire your knowledge and courage. To risk your first is a huge leap of faith not many would take. I'd like to somehow assist in what you have set out to accomplish. If there is anything you can think might help from me I'll do. As you know, I have one RSM with a NON USBNET media board which has a blown capacitor. If I can get that working I'd like to donate the media board to the cause if you accept. Also, I have the firmware_dump for a USBNET enabled RSM if that would help any, although I'm pretty sure you already have one. Like TikaC said, don't give up on BEN, that unit has enabled so many advances for all RSMs and I truly believe has yet to offer more.

Freddy

Shai Alyt NEMO
Shai Alyt NEMO's picture

We all are sorry for what happened to your RSM.
We appreciate your risk and sacrifice.

I think it's not lost finally.
There IS a hope...

What exact type of flash chip is on RSM's MediaBoard?
Is the flash chip sitting in a sort or socket?
If not, maybe it can be carefully desoldered from the board?

Then it's theoretically possible to flash it with a bootloader (if you have a file with bootloader dump) on any compatible third party flash chips programmer device (maybe, such a device can be found in service centers, repairing motherboards or mobile phones/pocket computers).

Then it have to be inserted back to the socket or resoldered back.
It should revive your "BEN".

Yes, I understand, it's hard. But you really have not much to lose, anyway.
I recommend you to explore this possibility.

Vader
Vader's picture

I don't think Ben is dead just yet.
A couple of years ago, Nocturnal mentioned in a post that he had booted the new kernel by using a custom bootloader and putting RSM's CPU in bootstrap mode.
Looking at the user manual for the board, this is indeed possible. From what I could tell you need to do something with the BOOT0, BOOT1, BOOT2 and BOOT3 pins on the CPU. Their locations can be found on the datasheet.
So once you have Ben in bootstrap mode, you can download the bootloader over serial and hopefully boot him. The only problem with this is that the bootloader needs to be downloaded each time you start him up. Maybe you could use the bootstrap-mode bootloader to reflash the original bootloader and filesystem back on to Ben.

Good Luck

Helibot
Helibot's picture

Hi Vader,
Cool, Thanks for the tip Vader. I was going to read up if there was a bootstrap mode on the CPU.....but hadnt got round to it yet.
If I can bootstrap it via the serial, then it maybe possible to flash a new bootloader and recover. Maybe BEN shall live again!!!
Cheers
Helibot.

TikaC
TikaC's picture

This is a great idea. If it works, maybe you guys can post the exact steps and photos of what to modify or do in our dev kit Wiki. This way if anything goes wrong in someone's RSM, they can reflash it.

Vader - do you still have the article Nocturnal wrote on that or a link to it? I know his site has been down for a very long time so I don't know where to find the info again.

Vader
Vader's picture

Tika - From what I know, Nocturnal never wrote an article on it. This post is where I got the info from. Specifically these two comments:

Nocturnal said:  I hadn't noticed the hardware revision (both my RS Media's are old versions), I did know about estech though.
Could be that the versions with the newer firmware also have a different hardware revision. Don't think the newer firmware requires 32 meg, I've installed the newer firmware on my old 16meg one and it ran without issue. Though I didn't really test it all that rigerously.

Nocturnal said:  No it doesn't boot with the original, that would be why I wrote my own. Which is not complete, it can boot either kernel (from NAND or over USB). However, it only runs with the cpu in bootstrap mode atm, which requires you to transfer the bootloader over a serial link every time you start it up.
The only way to currently gain access to the newer firmware is to make friends with someone who has an RS Media with the new firmware.

The rest I found out from manuals and datasheets.

Helibot
Helibot's picture

Hi All,
Thanks for the good wishes and comments.
Special thanks to Freddy for his possible offer of a Media board - I may like to take you up on the offer... but I will give bootstrapping a go first. I think it is unlikely that I will recover completely- but will certainly give it a go....got nothing to lose (and will probably learn a lot on the trip anyway)!!

Using bootstrap mode is a possibilty. From what I can work out I need three steps.

1) Find the Boot0,Boot1,Boot2,Boot3 pads. (Since Nocturnal stated that he changed his boot mode, then I will assume that the pins are brought out to pads on the media board. Just have to find them. I have done some of this before (need to find the vias under the chip, then trace the tracks or buzz with a multimeter.) I could also try asking Wowwee!!

2) Find some software or script to send 'b-record' data via the serial port to the media board. - I have some leads on this - there is some software on Freescale website called 'FLASH_UTILITY_VER_1_1.zip' that can flash a binary image by bootstrap to a MC9328MX1ADS board (which is what the media board was based on.) Freescale website also has a file imx21ads_toolkit.zip which may have some useful tools (though technically not for the correct board).

3) I need some software to flash to into the RSMedia. Ideally I can flash the bootloader back in. But there are two problems here. 1) I am not sure where to flash it to? Does it go in the nand area? and 2) Which bootloader image to use. The image flashed yesterday (which caused the failure ) was the RSMV1 image as created by Nocturnals firmware_dump script. So maybe this image is not the full or correct image? I will start with this anyway.

Thats all I worked out so far. I guess I have to go back to step 1 first and find the bootstrap pads.

Cheers
Helibot

Vader
Vader's picture

Hey Helibot,
I can just remember seeing a web page saying the MX1 can be programmed over USB, where the NAND appears as a removable drive. Have you tried plugging him in to a USB port? I also wonder whether the dump script made a perfect image. Even a single byte missing can cause trouble.

What are the possibilites of a custom bootloader made with the source provided in the BSP the can boot any kernel you want?

Helibot
Helibot's picture

Hi Vader,
   You remember correctly, the normal bootloader uses USB to downlaod any file to flash. Its quite good actually.
It works like this:-
1)Power up RSMedia with serial port attached.
2)Press a key and it will show you a menu like this
MXL Bootloader for RSmedia (2006-09-12)

Manufacture ID:00C2

Device ID:22BA
Press any key for alternate boot-up options ... 01

    0. Program bootloader
    1. Program kernel (8MB norflash only)
    2. Program root-disk image (8MB norflash only)
    3. Init nand flash
    4. Program nand kernel image
    5. Program nand rootdisk image
    6. Program rsmedia system image

   Please enter selection ->

4) If you choose 0,2,3,4,5,6 then it shows

     Initialize USB drive.
     USB drive ready for transfer.

5) Plug the USB into the computer and a new Mass storage drive is created
6) Copy the image file into the drive
7) Use windows exploerer to edject teh drive
8) The bootloader finds the new files and flashes this into the selected area.

(BTW I used option 0 to try and reflash (and destroyYell) the bootloader.)

>I also wonder whether the dump script made a perfect image. Even a single byte missing can cause trouble.
Yeah a single byte wrong, missing or programmed to the wrong location will almost always break it.

>What are the possibilites of a custom bootloader made with the source provided in the BSP the can boot any kernel you want?
Yeah I have thought of that too, there is source for the bootloader and I even need to recompile and relocate it so it runs in ram, then I maybe I can use the ram version to flash a correct version to flash?

Helibot

 

TikaC
TikaC's picture

Vader - Thanks for the useful info. My memory isn't as good as a computer's unfortunately. :)

Helibot - So in other words, a completely erased RSM will need a serial port hack to restore it, or some type of hardware hack, if I'm understanding right? Maybe that is why they left the serial port on the board, just in case?

Helibot
Helibot's picture

Hi again,
   Some more progress tonight
Step 1:- On the media board I found that a solder link labelled J15 seems to be connected to BOOT0. I have soldered this link(which connects it to ground) and when I boot now I seem to get into the bootloader!!

Step 2& 3:
In the MX1ADS BSP source files there is bootloader source and binary and 'b-record' version and instructions on how to load it. The version of the bootloader is different to RSMedias original one, but its very similar. It does have an option to download a kernal and boot from it. I guess this is the bootloader the Noctural used?)

The instructions say
  " 1) Set boot[0:3] as all on.
    2) Power on ADS board.
    3) Type 'a', MX1/L will autodetect the baud rate.
    If the board does not respond with ':', please lower the baudrate and try again.
    4) Select "Transfer/Send Text File" and send BSP/Bootloader/bin/programBoot_b.txt.
    5) Programming will automatically start. You will see such message in console:
     Erasing flash...
  Blank checking...
  Programming...
  Verifying flash....
  Programming finished
 6) Set boot[0:3] as "on off on on".
"

I can follow these steps until part 5. The file seems to transfer OK (at 9600bps)  but the output in step6 is never seen. (I guess the bootloader code is wrong or being put in the wrong place? or not being started correctly).

Thats all I have time for today....will have another go tomorrow.

There's a slim chance BEN will live again!! Yeah

Cheers
   Helibot

Helibot
Helibot's picture

Hi Tika,
Yes your understaning is correct, to reload the bootloader or kernel or reinitialise the Nand chip you need to use the bootloader and access it via the serial port.
I think Wowwee would have left teh serial port there for a few reasons - console output, gdb debugging and bootloader access being the most important I guess.
Helibot

TikaC
TikaC's picture

Great job on the progress! You seem to be staying up late (your time) tonight with this! :)

On Step 6, did you try to reboot the bot or reflash anyway? Maybe not all messages will appear even if something works? Just a thought, though I might be way off.

Nocturnal
Nocturnal's picture

Helibot said: I wiped his bootloader, so all he does now when turned on is show a white screen of death! I decided to try a risky move and it didnt pan out :-(

Been there, done that. Except in my case I was testing out writing to the eeprom with my own faulty code

Helibot said:In the MX1ADS BSP source files there is bootloader source and binary and 'b-record' version and instructions on how to load it. The version of the bootloader is different to RSMedias original one, but its very similar. It does have an option to download a kernal and boot from it. I guess this is the bootloader the Noctural used?)

Don't bother. The bootloader doesn't set the memory up correctly, and even if it did, it doesn't know how to talk to the eeprom or the nand chips. It's not what I used, but I did learn from it, and stole most of the USB code from it for my bootloader.  Also, the last bit of bcode, thats probably not included in that file, is the instruction to execute the uploaded code.

Helibot said:I can follow these steps until part 5. The file seems to transfer OK (at 9600bps)

Something is wrong, check your solder connections are good, and that your cabling isn't to long. Also don't be afraid to hit 'a' more than once. You should be able to get a baud rate of at least 115200. Otherwise its going to be a long SLOW process transfering in suitable bootloader.

TikaC
TikaC's picture

@Nocturnal - Hey! THERE you are! :) I just emailed you not too long ago and wondered where you went. :) Hope between you and Helibot that BEN can get going again.

Nocturnal
Nocturnal's picture

:-) I know. I read my email, I just don't always find time to respond. I've emailed Helibot with what should be all he needs to get BEN back up and running... though its been a while... and files tend to accumulate... so I can't really be certain just what the files I sent him do...

TikaC
TikaC's picture

I am the same way with email sometimes. Not to worry.

As for BEN, I think whatever you send to Helibot should help some. It'll be nice to have a method to resurrect a RSM from disaster. :)

Helibot
Helibot's picture

Hi All,
   Great news - BEN lives again!!  He is back with the original Wowwee bootloader installed.
   I managed to load the bootloader (supplied by Nocturnal) into the bot by bootstrap (over the serial port). This bootloader is run in RAM memory but you can then flash the original Wowee bootloader into eeprom (where it usually resides). 
   I found that the bootloader image (made by the firmware dump script) had extra information at the start, so by stripping this out , I could flash it back into the eeprom and RSMedia was back to having the normal boot loader and normal boot sequence. 

  SmileLaughingTongue outFANTASTIC Tongue outLaughingSmile
  Thankyou very much Nocturnal, you have saved the day again!.

By the way I have also soldered two wires onto J15 and brought them out to a small jumper header, this way I can switch to bootstrap mode at any time. (So hopefully I can continue with trying the RSMV2 bootloader)

Cheers

   Helibot

 
  

Nocturnal
Nocturnal's picture

Glad to hear BEN is back in action. I did a similar mod to one of mine, though slightly more extensive. I wired a block of dip switches to the jumpers, a jumper to whats hopefully a reset for the brain, a header for my serial dongle, a reset for the body and a power switch for my bluetooth module.

Helibot
Helibot's picture

Hi Nocturnal,
Very professional looking mods !!. I thought about a set of dipswitches, but couldnt think of enough 'other things' to switch at the time.

I have another problem with BEN now. He is now not powering up correctly.ARGhhhhh!! When I turn him on he powers up for a bout 5 seconds then powers down again. I guess the lowvoltage detector is cutting in? (He is running off bench power supply though). He has a fairly sick motor board (a transistor sinks to much current if used).
When I was working I the media board I only had the power connector plugged in. (So Head ribbon cables were disconnected and LCD was not connected at all.)When fixing the boot loader problem the robot speaker and limbs were making some strage noises and slight movements.....so I'm think that something else maybe wrong now with the mainboard. I have checked for loose connectors/wires etc , but all looks good. I guess another possibiliti is I damaged/shorted something when soldering my extra wires on? (All looks OK though)
I notice that even with the media board completely disconnected the bot will start up then shutdown after 5 secs.
Does anyone know if the robot board should start up and stay up if the media board is completly removed?
(If it should then this indicates that the issue is defintley nothing todo with the media board.

One final question (I think nocturnal can answer this one since I think he has done this as well.)
Can you run the media board standalone (ie outside of RSMedia?) Which pins are the powersupply?

Cheers
Helibot

Nocturnal
Nocturnal's picture

Double check all the connections, make sure you haven't reversed the ribbon cables for the head (can result it weird behaviour). You can also try disconnecting the motors from the motor board.

Memory suggests that with the media board disconnected, he should power up, and after 30 seconds or so, do his startup dance.

You can power the media board by injecting 3.3v onto the appropriate pad on the media board.

Helibot
Helibot's picture

Hi all,
I have checked all the obvious things, but still cant get the robot board to boot :-).
Nocturnal, thanks for the confirmation on him moving without the media board. I am pretty sure I have seen him do that as well. While I was doing bootstraping loadr stuff he was certainly trying todo the default startup dance (but often he would just do a bit then stop?). So I am assuming that the robot board or connections are faulty somewhere....and I am not motivated to fix that at the moment!!.
But since I have the media board out (and easily set to boot strap mode) I have decied to run it standalone and try some more things. I already had 3.3V and GND coming out to the connector for my serial port, so I have just wired my bench power supply to my 3.3V serial level connector and powered it up . Works like a charm, starts up every time and boots to linux or to the bootstrap (if I have J15 closed). BTW I also tried connecting the LCD - it works but the backlight/LCD is flickering a lot (may there is not enough voltage to drive teh backlight correctly?).

So what to try next?
I found I could successfully reprogram the bootloader from the normal RSMV1 bootloader menu (ie I do not have to goto bootstrap mode to reload the bootloader).
I successfully flashed the RSMV2 bootloader again (after trimming the leading junk from it). But it still doesnt run. This surprises me, I guessed the HW would be the same (or similar enough) to allow the RSMV2 bootloader to run OK.
Maybe the RSMV2 boot image I have is corrupted.
Nocturnal did you try the RSMV2 bootloader in the RSMV1?
Any idea why it would not work?

Does anyone else have a RSMV2 bootloader.img file? (made from the firmware_dump script) If so please email me a copy. (PM me if you need my email address.)

Nocturnal, did you figure enough out about the Nand chip and CPU to be able to reconfig it to different partition sizes?
Next I guess I will have a read up on the Nand chip and the available bootloader example code.

Cheers
Helibot

Nocturnal
Nocturnal's picture

Didn't I mention the wierd lcd behaviour? I meant to. I think normally, it gets a slightly higher voltage that comes down the ribbon cable from the head.

The V2 bootloader should work fine in either model, that is to say, it works fine in both my V1's. I upgrade both of mine with the newer firmware. I'd say the reason its not working is because the image your trying to use is bad. Try the one I just sent you, I'm pretty certain its the right version. I got several of them, unfortunately I didn't label them properly.

I believe the partition sizes in the NAND chips are hard coded into the bootloader and the kernel.

 

 

Helibot
Helibot's picture

Hi all,
   I have BIG news regarding running RSM V2 software on a RSMV1 - we have done it!! My bot is now running RSMV2 software on the RSM V1 media board. I haven't fully tested that all robot functions work, but its looking pretty good!!.

With some advice from Nocturnal, we worked out there is two versions of RSMV2 firmware out there. A version that uses 16Mb Ram and a version using 32MB ram.  To successfully upgrade a RSMV1 with V2 software we must use the bootloader and kernel from RSMV2-16M.
  The software I tried first was 32Mb so it failed, but with nocturnals help I tried the 16Mb version and had success.
  So what is the process needed? Below is an outline of the steps I took. I should probably do an article or html file with more detailed instructions - this is something that should be well documented if others want to try it...it is somewhat risky. Also there maybe some safer ways todo some things, but I need to try a few things first.
 Unfortunately I think my time over the next week or so will be very limited , so I am not sure how long it will take to create :-(

Overview

  • Boot the robot with serial hack. Immediately after power on press a key and bring up the bootloader menu.
  • Use Menu 0 to reflash the bootloader (this involves plugging the USB cable b/n PC and robot, and copying the RSMV1 16MB bootloader image to the removable drive created on the PC, 'eject' the new drive ,the robot will then reflash the bootloader image.
  • Reboot the robot and the new bootloader will run. It MUST say "16MB (2007-02-09)" in the startup text.
  • Now use bootloder menu 3 to "init nand flash". This erases all the nand and repartitions it to the correct sizes for the RSMV2 firmware images.
  • Reboot the bot and use menu 4 to reflash the RSMV2 kernel image (nand 0)
  • Reboot the bot and use menu 5 to reflash the RSMV2 rootdisk image (nand 1)
  • Reboot the bot and use menu 6 to reflash the RSMV2 default image (nand 2)
  • Reboot the bot and you should have a RSMV2 robot mostly working!!!!
  • Extra step (I havent done this yet) Use the SDCard to run a script to recreate and fix a few other small things (The script will likley reuse some parts of the Wowwee RSMV1 supplied flash update rsupdate script)
  • Robot should now be identical to a RSMedia V2 (16Mb version) robot!!

Note that I have only updated the Media board so far I havent actually run the whole robot yet (since my bot has a startup problem :-(  ), but I am very confident that it will all work OK.

Cheers
  Helibot

Nocturnal
Nocturnal's picture

The first step should always be backup your existing firmware.

Helibot
Helibot's picture

Hi Nocturnal,
In the longer instructions backing up is already the first step!!. Recommendation will be to run the firmware_dump script (included in the RSMDDevkit).
Note that now Wowwee have released the original firmware it should be possible to return a busted bot back to factory default even without any backup (assuming the bootloader is still intact). I (or someone) can make a modified set of instructions how to reflash a RSMV1 back to RSMV1 factory default as well. Probably a useful thing to have available.
Cheers
Helibot

FreddyA
FreddyA's picture

Congratulations on a successful upgrade Helibot! It was said it was impossible to do, but I never lost faith haha. I have 2 non usbnet RSMs that I will upgrade as soon as the devikit is updated. Super job on sticking with it and thanks sharing your success.
Freddy

Pages