INTRODUCTION

So a while ago I purchased a BB-8 by Sphero with the intent to start developing and testing out my own apps with the robot. Sphero, for those of you who don’t know, is a relatively advanced toy has a fantastic open platform for their community (SPRK, Macrolab) that teaches higher level robotics at a small affordable form factor. Throw in the iconic Star Wars charm and you’re looking at someone who rush ordered one the night it was released.



However, I soon realized the robot was limited to only using the official Sphero Star Wars App (which severely limits the robot’s functions to only allowing the most basic drive features and some autonomous movement). Additionally, unlike their other robots, the official Sphero SDK for BB-8 was not open. I reached out to the company about when this might change and this is what their response was.



Needless to say, I was VERY disappointed- it looked like I was limited to only using a watered down version of their product. Nonetheless, I had seen the BB-8 dissection videos and knew the product ran on the same chip that Sphero 2.0 operated on and was unperturbed.

Below is my very extensive tutorial.

ABOUT BB-8 Firmware

Since the robot is enclosed and I don’t want to take him apart, there’s no way I can physically diagnose the programming restrictions on the robot’s firmware.



CONNECTING TO BB-8

After receiving my droid (THANK YOU THINKGEEK!) I immediately set to work this weekend figuring out what how to connect to him. In the Star Wars BB-8 app, the app connects via Bluetooth LE automatically. The official Sphero App was a bust in this case, since the program doesn’t recognize BB as a Sphero 2.0. That means unfortunately things like Sphero SPRK won’t run either. I also tried to manually connect it via Bluetooth on my Android and iPod 5th gen, which also turned out to be a bust (apparently Sphero locks the devices).

It looks like BB-8 requires the app to do all the connecting for it then. My next goal was to find compatible apps that work with him.





COMPATIBLE APPS

I downloaded about a handful or so Sphero apps from the Google Play Store and Apple Store to try and get them to work. Out of these, only two managed to work on my device: Draw&Drive and Sphero Macrolab.

Draw&Drive [iTunes & Google Play Store]

In D&D allows the user to draw a digital line on their smart device that the holonomic robot executes. Think “line following robot” but digitally.

To make this work on BB-8, first close your Sphero BB-8 App on your phone (if you have it running).

Next place your phone next to BB-8 and open the D&D App. Your BB-8 should start glowing. If you get a readout that says “Sphero Not Detected”, either try placing your phone closer to your BB-8 or try closing the app and restarting.





Now that your BB-8 is glowing, the app should run normally with your robot. Try experimenting by using the rainbow slider switch at the bottom left corner to change color or by drawing out a small path for BB-8 to follow.





Overall this program gives much needed functionality to the drive ability of BB-8. Instead of merely bumping into objects and reacting, a la Patrol Mode, D&D allows for full colored movement of the droid.

MacroLab [iTunes and Android]

Macrolab is where my main interest as a robot programmer lies. Similar to SPRK, this is an open platform that allows the customization of the Sphero bot in executing an organized set of drag and drop commands. You get the most functionality out of your droid this way and it’s great for learning to program.

Similar to D&D, download the App from the app store/ play store and run it on your phone. Start by placing your device next to your BB-8 Droid.

For some reason, the device won’t say Sphero connected but instead will recognize BB-8 as an Ollie Droid. THIS IS OKAY. The same default programs will still run on you BB robot.

After the device is connected you can try operating the droid from the program. The two buttons in the middle are Center (which you use for align your droid) and Control (which operates as a standard joystick).





BB-8 should be now fully operational from the program. I suggest running the Rainbow script for fun light programs.





CLOSING REMARKS

This is just the start of making BB-8 fully compatible and an open platform. I sincerely hope that in posting this tutorial, the Sphero developers and Lucasfilm/Disney execs look at this not as reason to keep a closed device, but perhaps as interest for a greater interest in allowing more third party apps to support BB-8