Use Web Bluetooth to control your Furby Connect! Tested with Chrome for Android.
Try it out or read our blog
- Connect to / disconnect from Furby
- Send basic commands (e.g. actions, set antenna colour)
- Send custom action numbers (see list of action sequences)
- Upload and activate DLC files
- Decode and display Furby state (antenna joystick, body sensors, orientation)
- Customisable action buttons
- UI for managing DLC slots
- Test if this works on iOS with WebBLE
- Visualise Furby orientation
Pull requests are welcome!
I wanted to build on the excellent bluefluff project and make something really easy to use - just visit the demo page with your Android phone and connect to your Furby.
Web Bluetooth is a Chrome-only thing at the moment. Mac is apparently supported, but I've not tested it. It should also work on most Chromebooks. See the Web Bluetooth implementation status page.
Take a look at the built-in action list. Look up the four numbers for a particular action and put them in the 'action sequences' section of FurBLE.
Try doing the "pull tail/push tongue" reset described below before uploading a new DLC file.
The batteries may be low, try replacing them. Furby eats through batteries fairly rapidly. If you're spending extended period with FurBLE connected to a Furby, turn off the eyes (using the button in the Debug section) to save battery.
Yes, though it's not straightforward currently. Make sure you read about the DLC format and take a look at the demo.py
script in our Furby Python tools repo for an example of how to do this.
Web Bluetooth in Chrome for Android can be a bit buggy occasionally. If the Furby doesn't show up in the list when you try to connect, try quitting Chrome, then disable and re-enable bluetooth on your phone.
Make sure the batteries in your Furby aren't running low. This can cause the Furby to misbehave in odds ways, including going to sleep unexpectedly.
If your Furby appears to be rejecting connections, try switching it off and on again. Do this by pushing the antenna down for ~5 seconds until the Furby goes to sleep, then waking it up again. Note that attaching the sleep mask seems to put the Furby into standby without actually restarting the CPU.
You can fully reset the Furby (and clear the DLC storage area) by following these steps:
- Wake Furby up
- Hold Furby upside down
- Hold down Furby's tongue
- Pull Furby's tail until the eyes go dark (~10 seconds)
- You should hear a couple of quiet pops from the speaker as it resets
I used the following setup to develop/debug this:
- Serve the repo from a local HTTP server (e.g. run python3 -m http.server 8000)
- Use Chrome's remote debugging feature to forward port 8000 to your Android phone
- Load localhost:8000 in Chrome on your phone
- Use the remote Javascript console in desktop Chrome to debug
Thanks to Jeija for his work documenting the Furby Bluetooth protocol, and to @L0C4RD for his help dissecting the DLC format. Also thanks to my work colleagues and to my wife whose patience has been pushed to the limit by noisy, farting Furbies that won't shut the *#$& up while I've been trying to debug my code.
- Reverse Engineering the Furby Connect: https://www.contextis.com/blog/dont-feed-them-after-midnight-reverse-engineering-the-furby-connect
- Furby DLC Python library: https://github.com/ctxis/Furby
- Bluefluff project: https://github.com/Jeija/bluefluff
- Furbhax project: https://github.com/swarley7/furbhax
- CloudPets Web Bluetooth: https://github.com/pdjstone/cloudpets-web-bluetooth