Robotics news, projects and stuff
  • How did I brick Pleo and returned it back to life.

    You’ve probably heard about Pleo – the greenest and coolest dinosaur available on today’s market. My daughter got one for her birthday recently from her loving parents. She enjoyed it for a few days and then just got bored because it was the same moo, mrrr and urf and not much walking at all. Well, two more days of interest were raised with additional downloadable personalities, but that was it.
    I tweaked the dino into something more interesting and made it wireless, so you can issue commands to it remotely (via bluetooth). Ok, one more day of fun. Then I wrote something a bit more usable then Dinomite and other tools available from Ugobe website. The development was going well until one day Pleo didn’t wake up …

    Hopefully the symptoms of his paralysis were pretty encouraging. It was still accessible from both USB and com ports and when I was turning it off it was clicking slightly. So after checking all parameters I found two visible problems:

    1. It ran out of disk space. It appeared that either my program or Dinomite was saving images to Pleo’s internal flash and filled it completely. If you plan to play with Pleo’s “advanced” features never ever write anything to its internal memory. Create all files on flash card only!!! Otherwise you will kill your pet just like I did and probably even worse.
    2. Two servos were reporting wrong parameters like this:

      mu: sensor: 0 0 91 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 28 0 28 0 0 0 0 0 28 1 0 0 1 0 26 0 0 16 0 285 0 
      mu: joint: -2 0 -2 0 -2 -2 4 0 1 0 -1 0 0 -5 ERROR: low: MC_GetMotorStatus Failed: joint 14 pos -10000
      1 ERROR: low: MC_GetMotorStatus Failed: joint 15 pos -10000

    The second problem seemed to be gone after cleaning up the disk space (see below) and “joint neutral” command. I’m not quite sure that was the actual problem, because servos 14 and 15 are marked as “NONE” anyway, so possibly this is the way everything should work.
    The other problem was more tricky. I’d be happy to remove the extra files with photos and sounds, but didn’t find the command in Pleo’s help. Dino-mite appeared to have “Remove File” button but it was disabled. I enabled the button clicked it and after warning dino-mite tried to issue “rm ” command that failed. It looks like in 1.0.2 LifeOS supported removing files and in 1.1 Ugobe just removed it.
    After thinking for awhile I found file named result.txt of size a bit less then 1K, so I just did “copy result.txt ” for every file I created. That didn’t erase the files but at least freed up some space.
    After that operation I was able to play alternative personalities from flash card, but not the one supplied with LifeOS (Pleopm). I even put the default personality to SD and tried to play it but it failed with Adler32 checksum error.
    Then I tried to reflash the firmware, but updater (both USB and SD) checked the current version of LifeOS and refused to upgrade it demanding the previous version of OS (1.0.2). I googled for the old firmware but it looked like it was carefully removed from all websites. So if you got into this situation you have to write to Ugobe customer support and as multiple people reported they will provide you with the updater so you can downgrade the OS to 1.0.2. I used some different approach, but that doesn’t matter – here you and me are with non-responsive pleo and 1.0.2. The rest is no-tricky: just reflash Pleo with 1.0.2 (it doesn’t check the current OS version), then reflash it with 1.1 again and you will get your fresh newborn Pleo, unfortunately with lost personality, but quite alive. Good luck!

    Leave a Reply

    You must be logged in to post a comment.