Sphero BB8 robot toy — The Missing Manual

So I happened to get given a Sphero BB8 robot for Christmas and in hunting around discovered there was a lot of confusion about how it operates. I read a pile of stuff so I thought I’d try and put some of it together in one place so that anyone else getting it for Christmas (or considering getting one) can hopefully find the information they need.

First up, disclaimer: I’m not associated with Orbotix, the makers of this unit, so anything I say here has just been picked up from the internet or my own playing.

What is it?

The toy is actually a newer version of the original Sphero — a robot ball (no head) that was apparently designed mostly for education, allowing children to learn to program it to do things. The underlying control system is different from the original (more advanced and based on the Ollie robot instead it seems) but the fundamental design follows the Sphero. In particular this is clear in the engineering — it’s very resilient, the ball containing all the robotics is entirely sealed and the plastic is surprisingly thick and very tough. Reports on Amazon reviews of the ball going down a flight of hardwood stairs without breaking do not surprise me (I don’t advise trying it, but you don’t have to panic if it’s in kids hands).

The unit requires no batteries — it charges inductively from a supplied base which runs off USB (only for power, no data). The head is essentially decorative, it holds in position via magnets and travels across the surface of the ball on little plastic wheels. It falls off sometimes (rarely) but that doesn’t have any impact on the robot operation. Indeed, it performs better without the head in tricky situations like carpet.

The BB8 communicates via Bluetooth LE (Low Energy) and normally talks to a phone or tablet app. The app software is solid as well, with a good feel to it and no weird crashes etc. The robot can also be programmed to a reasonable degree using a variety of tools — pretty much anything that can control an Ollie.

What should I consider before purchase?

There are a few things you should definitely take into consideration:

  1. Only some smartphones and tablets support the App, and Bluetooth LE. If you have an old device I would be very careful to double check before purchase, Amazon reviews are a good source of individual experiences.
  2. If you have deep carpet, you might want to give it a miss. Because of the way the sphere drives itself (from inside) it doesn’t have a lot of starting power. If it’s in deep carpet, or in a small dip or crack, it won’t be able to move. Once it has a bit of a run-up it can deal with most surfaces however. Deep carpet people may want to consider the Ollie instead.
  3. There’s a limit to how much interest you’re going to get out of the app. In the end if you’re just using the app it’s little more than a fancy remote-controlled car with a couple of tricks — fine if that’s what you’re after but pretty expensive. The robot is most valuable to people who are going to eventually consider trying to program it.
  4. Some claims on the packaging have misled some customers. The robot itself cannot make any sound, nor can it project or record holograms or video. Sound and messaging is done using the app using the smartphone or tablet. The app sound is very good though. 
    It’s not clear that the BB8 does anything in the way of adapting to you, nor what it would do if it did so, so might pay to treat that claim with a pinch of salt too.
  5. Buy it in-store or possibly from Amazon. Reports suggest that Sphero themselves are overloaded and aren’t answering support calls or fulfilling orders as of writing. Keep all packaging and receipts so you can easily get a return from the store if something is wrong.
  6. If the “star wars” theme isn’t important, you might want to consider the Sphero SPRK+ instead, it has a clear shell so you can see what’s going on inside.
  7. For all the globe models including the BB8, you can purchase a simple cover that protects the shell a bit, but more importantly gives it a little more grip on shiny floors or outdoors. These come in various colors — there are some really great covers, have a look around. Note that the head of the BB8 cannot be used while the covers are in place and they’re certainly not a necessary purchase.

I’ve got it, what should I know?

I recommend watching this video: https://www.youtube.com/watch?v=5FHtcR78GA0 in it they take a BB8 apart and replace the shell with a transparent one so you can see how it works internally. This reveals a number of important things:

  1. The shell is really quick thick and solid. The unit should be pretty resilient.
  2. The actual robot piece is inside the ball, effectively running on wheels. At the top is the magnets that hold the head in place, and at the bottom is the induction coil to charge. This is important because when you’re charging you want to make sure the induction coil is directly downwards. You can achieve this by making sure the head is right at the top (not on an angle).
  3. The head is entirely decorative. For more performance, take it off and put it somewhere safe.
  4. It is not the same as the original Sphero. Instructions that apply to the original Sphero robot regarding pairing with Bluetooth etc do not apply to the BB8.
  5. When the BB8 is in the charging pod, make sure it is upright. When the blue light is blinking, it is charging. When it is solid, it is charged. Some users report the app and the pod disagree on whether charge is complete.
  6. BB8 (and the other Sphero units that are globes) are entirely waterproof. There’s plenty of Youtube videos of them spinning happily in a pool. They can’t “swim” in the sense that the spinning doesn’t really move the robot, but unless the casing is badly damaged they are safe in water.

The rule given by the company is 3 hours charge for 1 hours play. We’re used to being pretty skeptical of company operation times but to be honest I’ve yet to run it around long enough to run out of charge. I am not certain whether you reduce the effectiveness of the battery by running it around on partial charge but so far I haven’t had any issues — I ran it around straight out of the box and it didn’t seem to mind.

What are some problems I might encounter?

  1. If the head movement seems a bit janky all of a sudden, the wheels / bottom of the head may need a bit of a clean — for some reason the surface picks up dust and dirt quite well. Just take the head off and use something thin to pull out any thread or pet hair that may have got stuck in the wheels, then brush off the wheels. Given the plastic I don’t recommend anything harsher than water for the clean. The ball itself you can just wipe down it seems.
  2. From the looks of it, the antenna on the head might break off given time. They’re purely decorative so it won’t impact on performance. Update: after more than a year of use both antennae are perfectly fine.
  3. On very smooth floors — hardwood, flat tiles — the BB8 can have difficulty effectively restoring itself to vertical. You can tell this is happening because it seems to wobble a lot, and if you go into a corner fast enough it starts spinning wildly. To recover just wait it out, it’ll get to something approaching balanced soon enough, however for most “BB8” like behaviour a surface with a bit more grip like thin carpet seems to work best.

Ok, I’ve driven it around, scared the cats, now I want to code

There are quite a few different ways to interact with the unit. The key difference is that in some cases you’re writing code that executes on the robot and in others you’re executing the code on a device (laptop, tablet) and it’s sending control commands to the robot. Both work fine and have different strengths and weaknesses.

For people after a simple way to start playing with programming a robot, Orbotix offer SPRK Lightning Lab as an app. Check to see if your device supports it. It supports the BB8 and has a nice easy visual way of building command sets etc. Other apps that are reported to work with it are:

Of these, Lightning Lab and Tickle are probably the most interesting from a cursory glance.

For people with a reasonable knowledge of Javascript and a desire to hack around a bit more, I found the fastest way to get some control was to make use of the Cylon NPM packages. There’s an outline of what you need to do here https://gist.github.com/jakswa/6d607ceb130ace7f3d0c . Keep in mind that the device you’re running this on must be able to do Bluetooth LE, and don’t forget to turn bluetooth on (If you keep getting ‘Scan stopped’ from cylon-ble-scan this is probably your problem. Ask me how I know).

Once you’ve got that up and running you can use any of the normal javascript tricks to start controlling the bot.

Where do I get more information / share my creation

  • Sphero SDK documentation — note that they’re out of date in some cases, in other cases links are broken. In particular you do not need to pair the BB8.
  • /r/sphero — low traffic but at least one of the original Sphero developers hangs out in there so it can occasionally have some interesting information.
  • Ollie support for Cylon — support for Ollie (and thus BB8) via Cylon JS lib.
  • Sphero developer center — I’m not certain because I haven’t signed up, but some of this information seems old.

Good luck, hope the information I’ve provided helps!