How to control Pleo wirelessly via bluetooth

Bluetooth Pleo HeadPleo is a wonderful dinosaur, way more charming then roboraptor and other sapiences. It is the most advanced toy robot currently available on the market in the <$700 price range (Pleo price is around $330 shipped). It has a huge potential which is limited by the fact it is completely standalone. I tried to fix this by adding bluetooth interface to it. This mod allows issuing commands to Pleo from virtually any bluetooth-enabled device, including many cell phones, communicators and generic computers. It also allows retrieving information from Pleo on-the-fly, like sounds it hears, pictures it sees etc. Before you continue reading this post please acknowledge that this mod is not approved by Ugobe and most probably will void the warranty. Also there is always a chance that something will go wrong and you might damage your robopet. If you're going to implement this mod you are the only one responsible for damaging this very expensive toy. I'm providing the information below only as a personal experience for educational purposes. And here is how to make it:

Step 0. First of all let’s order the parts.

  1. 1x bluetooth module, for instance this one (FireFly): http://www.sparkfun.com/commerce/product_info.php?products_id=8550
  2. At least one (and I recommend two in case you spoil the first one) 538-51021-0700 Molex 1.25mm Connect RECEPTACLE 7 POS: http://www.mouser.com/Search/ProductDetail.aspx?qs=hSmm4fxMIuNmj4UzNb1XZA%3d%3d
  3. At least 4 (but I’d take 20) of those: 538-50058-8100 Molex 1.25mm Connect SOCKET 28-32 BULK: http://www.mouser.com/Search/ProductDetail.aspx?qs=TEDqGy%252b%2f3mEfDxUH2CbEAw%3d%3d
  4. Bunch of wires, preferrably of different color, 2-3″ long
  5. 2x 2-pin fem headers (optional). Or you can brake them from this: http://www.sparkfun.com/commerce/product_info.php?products_id=115

You will also need

  1. Basic soldering iron
  2. SD card of decent size (128Mb is enough, but 512 is better)
  3. Cardboard cutter, pliers

It’ll take about 7 days and $80 to get all the stuff to appear on your desk. Now let’s proceed:

Step1. Open the serial interface

Pleo serial port coverPleo’s serial interface is a part of 7-pin connector hidden under a plastic cover next to the power switch. Taking out this cover is the most difficult operation in the entire process since the cover is very well glued to the surroundings. It took me about 15 minutes of intensive operations with knife to take it out. You can use Dremel or something similar to do this operation faster, but then you will loose the cover. If you accurately cut it out with a knife or cardboard cutter you can always glue it back so Pleo will be as new.

Step 2. Assemble the 7-pin connector

Pleo serial port connectorThe connector opened under the cover has 7 pins but you need just 4 of them. If you have a crimping tool you can use it, otherwise just solder the wires to the terminals and insert into the housing at positions 1, 3, 4 and 5 as shown on the picture.

Step 3. Connect wires to the module.

Pleo bluetooth adapter completeUse headers #5 from the list or just solder directly to the bluetooth module the wires from the connector as following:
#1 on adapter goes to GND pin on the module
#3 on adapter goes to RX pin on the module
#4 on adapter goes to TX pin on the module
#5 on adapter goes to 3.3V pin on the module
Pleo bluetooth adapter wrappedOptionally you can also lower the module profile by bending its pins by 90 degrees as shown on the picture. Use your own perception of beautiful to decorate the adapter and make it look like a tag. Alternatively you can put it inside Pleo next to the battery compartment, but this will require some more surgical work on pleo and may make it look messy.

Step 4. Connect the FireFly adapter to Pleo and control it remotely via bluetooth

This step is straightforward and doesn’t require any further explanation. Just a few hints:

  1. For some reason in a few cases Windows was unable to find SPP service available on the FireFly bluetooth module we just connected to Pleo. When I tried to connect to it using one bluetooth adapter embedded into my laptop it didn’t find the SPP and USB adapter I plugged to the same laptop via USB found it just perfectly. So if this hack doesn’t work with one bluetooth try another. I think the problem was that FireFly returns its service class as 0 by default. You can fix this by connecting to the adapter (via working bluetooth adapter for instance) and issuing the following commands:
    • $$$
    • SC,1101
    • R,1
      1. When you connect to Pleo use 115200 8N1 port settings
      2. FireFly’s default pin code is 1234
      3. I use external bluetooth adapter that provides 300ft range. If you need more you may consider using XBee adapters as it is described in this great work: http://www.grip-online.com/en/pleo_hack/xbee/2.
      4. When you connect the adapter to Pleo it will keep minimal moving. It will accept your commands, but still will perform its program. If you want to keep it motionless you need to copy appropriate .urf file to the SD card and insert it into Pleo before powering it on. If you don’t know how to create such file you can always get one from DinoMite distribution.

      You can control Pleo via almost any terminal program that supports serial connections. For instance putty and SecureCRT will work just fine. Also there is DinoMite and possibly other tools that can work with Pleo via USB cable. All of them will work with it wirelessly too. DinoMite actually has one glitch: it allows to select port only in 1-16 range, while windows may assign port number above 16 to the bluetooth SPP.

I wanted to let me kids to play with wireless Pleo, so none of the tools from pleoworld worked for me (they are not very user friendly) and I wrote my own.
PleoExplorer Joints PleoExplorer motions

9 thoughts on “How to control Pleo wirelessly via bluetooth

  1. From: Christoph Erni
    Comment:
    How did you managed it to retrieve audio and pictures via Serial Connection? I tried this too, but didn’t work.

    Christoph,

    Somehow your commend dissapeared from the DB, so I’m republishing it.
    You can output audio to serial console. Capture that output and decode it. The sound quality I’m getting from Pleo is horrible, but I beleive this is some bug in my code. Anyway, I can recognize when someone is speaking and the delay is less then 0.5 sec.
    I don’t think it is possible to transmit video from Pleo in realtime because of some architectural decisions made about Pleo. They only way you can use it is by recording the video/photo to flash card (recording to internal memory might make Pleo nonfunctional) and then offloading the file after the recording is complete. In fact you can start reading the file while recording is in progress, but the delay will be significant.

    Andrey

  2. hey chris, love what you did, I now have a bluetooth enabled pleo too. As a software developer i wanted to ask you if you can mail me about the serial communicatio / commands for the pleo. Dino-Mite and pleo site are down. Ugobe is bankrupt.
    You can also send me a piece of your source if yu want.

    Anyway keep up the good work

    Wian

  3. Andrey,
    Great work on the program! It is really sad that Ugobe is no longer around. Do you have a beta copy of your program ready yet? DinoMite is no longer available and the site is down for good.
    There are a lot of folks looking for all the Pleo resource software they can, (While they are still available…)
    I implore you, release your program now or else I fear it may never be released.
    That one act of kindness on the Pleo Dev community would be invaluable. : )
    Thank you so much in advance Andrey, you are a genius.

    Very Best Regards,
    Joshua
    (taoworm23 on youtube)

  4. Joshua, Wian,

    I found a great source of old Pleo programs published by Bob the Pleo. Here it is:
    http://bobthepleo.com/forums/index.php?board=2.0. Dynomite, LifeOS and other stuff is still there.

    Unfortunately I’m very busy with other projects and do not have time to finish the program shown in the video, but I still plan to release it sometime later. I really can’t release it now because of its poor reliability. Also the function of “audio spying” doesn’t produce good enough sound, so I need to improve it.

    As about the serial interface you can access it using the serial interface too. Just use a regular USB cable and connect Pleo to any computer. This will create a virtual serial port. Connect to that port @115200 8N1 and you will have full access to Pleo’s internals. type in “help” command and it will display available commands. 1 hour of playing with that will give you full understanding of how it’s working. The serial interface hidden under the cover (the one I used for connecting the bluetooth adapter) provides the same capabilities.

    BTW, this webpage actually got moved to another website. Here is my robotics blog containing new stuff including new Pleo project like http://robostuff.com/diy-projects/pleo-hacking/how-to-control-pleo-wirelessly-using-wii-nunchuck.

    Andrey.

  5. I have a Hub-around chair that was tossed to the curb after the toggle control went south, but the motors and drive train are still very strong. YUP!!! this thing is screaming for a wifi mod. any ideas ??? Do ya have some thing i might buy or trade my wrt router for???

Leave a Reply