Introduction: Automated LEGO BB-8!

About: I used to teach middle school science, but now I run my own online educational science website. I spend my days designing new projects for students and Makers to put together.

We absolutely LOVE the new LEGO Star Wars sets that have come out over the last couple of years. They're well designed, fun to build, and look great. What would make them even more fun is if they also moved on their own!

We took an off the shelf LEGO BB-8 set and automated it so the head spins around! Even better, we added sound effects and lighting effects! But if that isn't enough we also added a motion sensor so that it would activate when someone walks by. Overall this project isn't overly difficult to do, but does take awhile and requires a healthy amount of random Technic LEGO parts to built the gear box area.

Step 1: Parts Needed

For LEGO parts we used such websites as or These sites are really handy to use for random LEGO parts or supplies. When in doubt you can also just buy bulk LEGO parts off eBay and spend the afternoon organizing them all.


Worm Gear Drive Set

Large Technic Gear

Technic 1x4 Brick x 4 (or 8)

Technic 1x8 Brick x 4

2x8 Plates x 4


Crazy Circuits Robotic Board

Crazy Circuits CR2032 Holder

Crazy Circuits Blue LED

Nylon Conductive tape

9G Servo with LEGO Adaptor

YX5300 MP3 Player Module

HC-SR04 Ultrasonic Range Finder

Step 2: Video Guide

We made up a Step by Step video to show off what the BB-8 can do and how to make it.

Step 3: Build Your BB-8

Build your LEGO BB-8 as normal.

Seriously though, kudos to LEGO for putting together a really darn nice project. The rubber band head wobble, the little welding arm, and the attention to detail is just fantastic.

Step 4: Remove the Head Control

Using a pry tool, remove the side of BB-8 that controls the head.

Put inside half of the axel back in if it comes out.

Put that section to the side as you'll need it later.

Step 5: Construct the Base Adaptors

Using 1x4 and 1x8 Technic bricks, construct an adaptor to mount the BB-8 onto your large Base Plate.

Remove all the extra parts on the bottom of your BB-8. You want to leave the bottom white area completely flat.

Connect your white bricks UPSIDE DOWN to your black technic bricks.

We ended up using two of the 1x4 bricks per adaptor for extra strength, but it's probably not necessary.

Step 6: Connect Adaptors and Plates

Attach your adapters to your BB-8.

If possible, use some 2x8 plates to increase the footprint and connection area.

As mentioned before, we also added in a second 1x4 brick to be on the safe side.

Step 7: Attach to Base Plate

Connect everything to a large base plate.

Give yourself some space in the front and a lot of space in the back in order for the rest of your parts.

Make sure the empty "gear area" is pointed towards the BACK of your project. We need space for the gearing and electronics.

Step 8: Remove the Spinner

Remove the spinning section from your head control area.

Grab a long size 12 or better axle and attach it to the connector inside the BB-8.

Reattach the entire side.

Step 9: Add Spacers and a Large Gear

You'll need to attach a couple of different sized spacers before attaching your large Technic Gear.

We also added a small bushing to the end of our axle to hold everything tightly in place.

Step 10: Create Worm Drive Stand

Use a couple of standard LEGO 2x8 sized bricks along with 2 2x8 sized plates to create a platform for your worm drive.

Connect everything below your large technic Gear.

Adjust parts as needed to make sure everything connects and fits well. Give the axle a spin to make sure they work.

Step 11: Prepare the Servo & Horn

We're using a 9G sized Continuous Rotation Servo with metal gearing, connected to LEGO using our Crazy Circuits adaptors. (Laser cut and open source!)

Attach the laser cut Crazy Circuits adaptors to the 9G sized servo.

Connect the round Servo Horn (laser cut disc) to the Servo. Using a couple of technic pieces and a gear, build out an adaptor on the end.

This allows your servo to directly interface with the axle on the worm drive.

Step 12: Secure the Servo

We connected two 1x8 Technic bricks together and then attached the servo to those pieces.

Below them is a single 2x8 brick.

The main concern here is to keep everything secured and tightly together. The servo moves around a lot and the last thing you want is for your pieces to start popping off the large base plate.

Step 13: Build a Sensor Mount

We went all fancy and included an Ultrasonic Motion Sensor. To make it look nice we build a small LEGO based holder for it to hang out in. We can't take credit for this design, we randomly found it in a google image search.

Start with a 2x8 plate, attach some 1x2 bricks onto the side, two L shaped plates on the top edge, and a 1x8 across the top. Use a couple of 1x1 plated on the bottom (blue in our design).

Step 14: Build the Robotics Board Platform

Use two 1x6 or 1x8 plates to create a small platform for the Robotics Board to sit on.

You can also plug the Servo into the D3 Row Header Set at this time.

Step 15: Connect the Range Finder

Due to all the wires going into our Robotics Board we put together a small diagram to show how things hook up. (It's the same diagram we used in our LEGO X-Wing build.)

Connect VCC to a 5V Pin.

Connect Trig to A4.

Connect Echo to A5.

Connect GND to a GND Pin.

Step 16: Connect the MP3 Player

Use the diagram again to help you out.

Connect GND to a GND Pin.

Connect VCC to a 5V Pin.

Connect TX to 5.

Connect RX to 6.

Online documentation for this board is weird. Trust us, this is the correct wiring.

Step 17: Find a Sound Clip

We grabbed our sound clip via a YouTube Video. You can use any sound file as long as it's a .WAV or .MP3. (We can't give you a sound clip for Copyright reasons.)

You'll want to use just one sound clip for our code. Once you find one put it on a micro SD card formatted in FAT.

Put the Micro SD Card into the MP3 Player.

Make sure you take note as to how long your clip is, as it will be quite helpful when modifying the code.

BB-8 sounds are great as well as some classic Star Wars music.

Step 18: Modify Your Code

If you've never used our Robotics Board before you'll need to read the user guide and install the right software and drivers.

You'll also need to grab and install the NewPing library as well.

Open up your Arduino software and copy our code into a new project window.

Lines 30 & 31 control how long the Servo will move when opening and closing the wings. We find that 20000 ms is about right. You can change the time by changing those values.

Line 91 controls how long the Servo pauses to wait for your audio clip. Since we want the head to spin constantly we just made this a big fat zero.

Step 19: Test Things Out

At this point it doesn't hurt to just test everything out to make sure things are working properly.

Attach some headphone or some small speakers to the MP3 player. If you have small desktop (computer) speakers that are wall powered, use them. They work best with this module.

Plug your system into a USB power source (computer or wall) and see if everything works. Wave your hand in front of the distance sensor to start everything off.

Step 20: Prepare the Head

To give our BB-8 a bit of "flair" we added a blue LED to his head. This was rather easy as there is plenty of room inside for a small battery.

Using a prying tool, remove the top of his head.

Clear out the couple of spacer bricks on the inside, giving you plenty of room to work with.

Step 21: Make a LED Holder

Remove the blue "holographic" emitter.

Use a small axle and attach it to a 2x2 round plate.

We chose to use a blue "novelty brick" Crazy Circuits LED, but a 10mm or SMT LED will work just fine.

Step 22: Run Tape Inside

Run two lines of Nylon Conductive Tape from the outside to the inside of the head.

Press them down onto two studs.

This is a very annoying part of the build. Remove more parts of the head if your fingers are having issues.

Step 23: Attach Battery

Put a battery into the Crazy Circuits CR2032 Holder.

Place the holder inside the head, on top of the studs.

Make sure that one line of tape goes to the White (Negative) side of the battery holder and the other goes to the Orange (Positive) side.

Step 24: Connect LED

Push your LED holder (2x2 Round Plate) into place.

Trim your lines of tape and attach them to the studs.

Connect your LED. (If it doesn't turn on, rotate it. You probably have it put on backwards compared to you battery holder.)

Rebuild the head. Attach it to the body.

To easily turn your LED On and Off, just remove it.

When putting the head back on go very slowly. The connecting axle will push up through the head and disconnect your battery. Stop pushing when you feel a slight resistance.

Step 25: Enjoy!

Your BB-8 is now complete! Maybe this IS the droid you're looking for!

Apply this build to other LEGO projects. We more or less did the same build with our X-Wing and Clone ARC Fighter.

If you like our Crazy Circuits system check out all our other parts and projects at!