Introduction: 3D Printed Robotic BB8

Hey everyone, this is my Intructables on how I build my remote controlled 3d printed bb8! By the end I really hope you can feel confident enough on tackling the project by yourself.

Step 1: Supplies Needed

So there are A LOT of stuff needed for this project to make it move, so I'll try to break it up into categories that can make sense. I'll also try and include links to all the items that I purchased

3D printed stuff- Body and Head

1) A 3d printer (this was made to be printed on a smaller buildplate 150x150x150)

2) About 3 kg of 1.75mm filament (odds are it will be around 2 but I'm adding on for screw ups + tests)

2.5) The STL files (given on the 3d printing step)

3) Lots and Lots of time and patience

4) Gorilla glue Gel - I used about 3 bottles for this project. (

5) a rotary tool (Dremel, wen, or anything really) for the friction welding

6) Spackle/Wood Filler

7) power sander + sandpaper (for sanding......)

8) Filler primer (

9) White, Orange, and Silver spray paint

10) Clear lacquer (

11) 2 part clear coat epoxy (Super important, not the little 2 part 5 minute epoxy, I mean glaze coat resin)(

12) painters tape (for getting clean lines)

13) A Compass

14) more time and patience

Electronics- for the body

1) Arduino Mega

2) 2x HC-05 Bluetooth module (

3) Pololu Dual VNH5019 Motor Driver Shield (or from aliexpress) (

4) 2x Pololu DC motors (or any dc motors but I'll link the ones I used) (

5)1x 300W 20A step down converter (slightly overkill)(

6) a much smaller classic step down converter (

7) 2x 7.2V NiMH batteries (

8) a series connector for the tamiya connector batteries (

9) 1x DFplayer mini (

10)1x 3W 4 ohm speaker

11) 1x modified MG995 servo

12) 1x 10A rated rocker switch (

13) Spade end crimp connectors (to connect to the rocker switch) (

Electronics- for the head

1) 1 white LED

2) 1 Red LED

3) 1 Blue LED

4) 2x 6v button/ coin cell battery holders

5) 4x button/coin cell batteries

6) 1x 330ohm resistor

Electronics for the remote control

1) 1x Arduino Uno

2) 1x Arduino Uno Joystick Shield (

3) 1x HC-05 Bluetooth Module

4) 1x 4AA battery holder w/ Barrel jack (

Other Very Important Things

1) 3/4 inch/ 19mm plywood (for the base inside the body)

2) 8x N42 countersunk neodymium magnets ( SUPER IMPORTANT) (

3)2x Pololu Scooter/Skate wheel 70mm (

4) 2x Pololu Scooter wheel adapter for 6mm shaft (

5) 2x Pololu motor brackets (

6) 1x 2.5 lb/ 1kg PANCAKE weight (needs to be as thing as possible)

7)1x 5lb/2 kg PANCAKE weight

8)2x 1 inch steel roller transfer bearings (

Miscellaneous (But still definitely needed)

1) 1-1/8"/ 28.5mm wooden dowel

2) 3/8" steel nut coupling (

3) 3/8" bolt + washers

4) 2.5 mm steel rod

5) 3/16" / 4.75mm steel rod

6) M2.5 threaded inserts (

7) M2.5 x6 screws

8) M3 screws

9) 1/4"/6mm threaded rod

10) 4x 1/4"/ 6mm nuts and washers

11) 1x 1/4" ID 5/8 OD bearing (

12) a whole bunch of regular wood screws (I just used whatever I had lying around)

13) drill bits

14) solder

15) 18 gauge wire (red and black)

16) 22 gauge wire (any colors)

17) header pins

18) electrical tape and heat shrink tubing


1) drill

2) jigsaw (for cutting the wooden base and the wooden dowel)

3) screwdrivers

4) Soldering iron

5) power sander

6)bolt cutters (for the metal rods, a Dremel with an offcut wheel works too)

7) Dremel

8) Patience

9) wire stripper and crimper

10) x-acto / box knife

Step 2: How Does It Work?

Before I get into the build I wanted to go over how I ended up designing it the way I did. The concept is pretty simple. I wanted to make the body roll and have the head balance on top so it gives the illusion that the head is "magically" staying up there. simple enough.

After doing some research I realized that the way they made it for the movies was waaaay to complicated for me, giving the head the ability to move up and down on its own, or look around corners was a little above my pay grade. Which is when I stumbled on the sphero toy. this looked much simpler, two wheels on the bottom which roll the body, as well as magnets on the top. simple

I likened it to a hamster inside a ball. This hamster also has a stick attached to its back with magnets at the end of it. As the hamster walks forward and "up" the ball the ball begins to move forward, and the stick will always remain relatively upright. This was the mindset I had going into the project. Making bb8 speak and have the head rotate were second thoughts to the "hamster in a ball" idea.

With that image in mind, I drew out a simple "schematic" on a piece of paper. (unfortunately I cant find it, but it looked horrible). The design was like this; I'll have a large ball which I can separate into two hemispheres quickly and easily with no tape involved, in case I needed to get access quickly. Inside will be a platform with 2 or 4 wheels (at that point I wasn't sure, I stuck with 2 in the end) which will roll up the ball causing it to move forward with the weight force being split into the x and y axis.

The head will have magnets inside of it, as well as there being magnets inside the body to pull it in, to give it that floating effect. and there will be some type of bearings/castors to allow the head to roll over the surface of the body. Simple.

Step 3: Designing!!

The outer design of bb8 was actually pretty simple and anyone with basic CAD knowledge can design a simple one for fun. BB8 has 6 orange circles "cut out" of his main sphere body. leaves 8 white "tri corner" pieces left over. This knowledge is what I used to design the main body, and in order to fit onto my printer I needed to slice those shapes down further. Each disc got sliced in half, and each "tri- corner" piece got sliced into thirds (which turned it into 3 pentagons)

Each piece on the main body needed a way to align with the other pieces. so using an old woodworking trick i used some "exposed" biscuits which help all the pieces attach to each other. these biscuits have the same curvature as the rest of the body so it wont add any bumps which the mechanism is rolling around inside. this along with the pieces glued edge to edge made it decently stiff, but not stiff enough but we'll get to that later

NOTE: Apparently this is exactly what James Bruton did to build his bb8. I didn't hear of James Bruton until a couple of months into this project. I HIGHLY recommend you check his channel out on YouTube, . He's a genius and I seriously hope that one day I can build something half as cool as he does.

The head was also pretty simple. Its basically a hemisphere with a small straight brim on the bottom that eventually tapers to 45 degrees for a bit. Which was super simple to design in Fusion360. (the shell tool was my very good friend for this process)

Designing the inner mechanisms were more of a trial and error process. I've only included the files that worked in the end. No need to sift through all of the designs that were "okay". I left you with all the best ones. and speaking of the files...

Step 4: The FILES

The Files!!! what everyone's been waiting for! These files are already in STL format so you should be able to just load them into your slicer


on Thingiverse, ONLY DOWNLOAD THE ZIP FILE!!! it'll help keep things organized

During the next couple of steps I'll name all the files you'll need for each step as well as how many you'll need to print.

Step 5: PRINTING!!!!

As you may have noticed there are A LOT of files to be printed. Unfortunately some of them need their own print settings in order to come out relatively okay. Ill be breaking down each section that is needed to be printed. We'll start with the body (2 separate steps for 2 separate hemispheres), the head, and then all of the internal prints.

Now would be a good time to get the 2kg of filament mentioned in the supplies list.

The filament can be any color because in the end you're going to spray filler primer on it, and then paint it, so don't worry if the color is a little bit random.

On to the body!

Step 6: PRINTING and Gluing!!! PART 1- Upper Hemisphere

To print the upper hemisphere you will need.

(all files can be found in the "BB8 outer body" folder)

Main pieces

please follow the photos for where each piece is supposed to go

7x Regular pentagon connector- DARK BLUE

4x Middle Pentagons-PINK

4x Middle top half circle-LIGHT BLUE

1x Hole for button- Pentagon- YELLOW

All of the main pieces were printed with these settings:

.28mm layer height

3 perimeters

10% infill

with raft for stability and to protect against elephants foot


13x Disc connector (In the "body connectors" folder inside the "BB8 outer body" folder)- BLACK

8x Half disc connectors (Also in the "body connections" folder)- ALSO BLACK

All connectors were printed with these settings:

.15mm layer height (to get the best curvature on the discs)

2 perimeters

20% infill


Once you have all the pieces printed out for the upper hemisphere you first need to do a bit of cleanup, sand away any of the leftover supports inside any of the holes for the connectors, it will make your life a lot easier going forward.

Now, all of the pieces get glue end to end in the configurations in the photos shown above.

It will be easiest if you follow this order:

Glue the two LIGHT BLUE half rounds together making the top circle. Using one full disc connector (BLACK) in the center like the real life photo of mine above. Then glue four more round disc connectors (BLACK) on the remaining holes of the circle. Then glue up 3 pentagons together, 2 regular pentagons (DARK BLUE) and one middle pentagon (PINK) to create the weird "tri corner shape"

IMPORTANT!!! when you glue the 3 pentagon piece to the LIGHT BLUE circle the middle pentagon (PINK) MUST be sticking up!!! there is a hole on the bottom of the "Middle pentagons" and that must be pointing towards the middle, so PLEASE do not get them mixed up!!

Now make 2 more of the "tri cornered pieces" by gluing up another 2 regular pentagons(DARK BLUE) and one "middle pentagon" (PINK) and glue them to the circle made up of LIGHT BLUE pieces. Just like in the photo shown above. Using the full disc connectors (BLACK) and half disc connectors (BLACK) when necessary.

For the last "tri corner piece you must use: 1 regular pentagon (DARK BLUE), 1 hole for button pentagon(YELLOW), and one middle pentagon (PINK) and once again, the middle pentagon (PINK) MUST MUST MUST be pointing up as shown in the photos above.

LASTLY glue in the remaining four "Middle top half circle" (GREEN) in the empty places to complete the top hemisphere!!! Don't forget to add the half circle connectors(BLACK) in the empty sockets near the rim.

The holes in the pink pieces point9ng upwards is extremely important for the connection of the hemispheres, eventually there will be alignment pins there and you don't want to try and build this without it.

Step 7: PRINTING and Gluing!!! PART 2- Bottom Hemisphere

The bottom hemisphere is basically the same as the top, with a few key changes.

First off you will need: (all files can be found in the "BB8 outer body" folder)

Main pieces
please follow the photos for where each piece is supposed to go

8x Regular pentagons (DARK BLUE)

4x Middle pentagons (PINK)

4x Bottom middle half circle (RED)

2x top and bottom half disc (LIGHT BLUE)

All of the main pieces were printed with these settings:
.28mm layer height

3 perimeters

10% infill

with raft for stability and to protect against elephants foot


13x Disc connector (In the "body connectors" folder inside the "BB8 outer body" folder)- BLACK

8x Half disc connectors (Also in the "body connections" folder)- ALSO BLACK

4x Screw connector v6 (YELLOW)

All connectors were printed with these settings:
.15mm layer height (to get the best curvature on the discs)

2 perimeters

20% infill

with raft to protects against elephants foot

Once you have all the pieces printed out for the bottom hemisphere you first need to do a bit of cleanup. Sand away any of the leftover supports inside any of the holes for the connectors It will make your life a lot easier going forward. Now, all of the pieces get glue end to end in the configurations in the photos shown above.

Unlike the upper hemisphere by this one you MUST put a "Screw connector v6" (YELLOW) in the center hole within the Bottom middle half circle (RED). This will eventually allow you to screw the 2 halves of the body together.

The steps are the same as the upper hemisphere, except for one small detail, but... DO NOT FORET THAT THE PINK PIECES MUST ALWAYS BE IN THE CORRECT ORIENTATION.


Now that you'll have the two hemispheres build you'll probably have some noticeable seam lines. its fine. there's no way for it all to be glued up perfectly. In order to fill them in/ help strengthen the joints you'll need to do something called friction welding.

You will Need

1) Dremel or other rotary tool

2) snippets of filament

Unfortunately I don't have any photos or videos showing how I did it, but The fantastic channel the 3D Printing Nerd has a fantastic video explaining what it as and how to do it it. Linked here

I friction welded all of the seams together with the same white filament I printed with, this definitely helped with the strength of the overall sphere.


It is best to print out some practice pieces to try this on first and get the speed and pressure dialed in before you try it on your brand new hemisphere. If you do end up making a hole in your hemisphere, don't worry!! well fill it in with spackle/ wood filler later. just take your time and be careful


Now, in order for the two hemispheres to fit together we need to add a little hardware,

1) 12- 32x 2.5 mm steel rods

2) 4- M2.5 threaded inserts

3) 4- m2.5 screws

First step is to cut 12- 32mm pieces of 2.5mm diameter rod. These will get glued into the upper hemisphere in all of the holes that you should have by keeping the PINK pieces in the right orientation (See? I told you they were important) I used a bolt cutter to cut mine, then filed them down so they weren't so sharp. You could also use the cutoff wheel attachment for you rotary tool. All of the pin should correspond to the opposite holes on the bottom hemisphere. so you can check to make sure they fit.

Next is to look for the :screw connector v6"(YELLOW) which you glued into your bottom hemisphere. and as the photo above shows the threaded insert goes into the hole in the top.

In order to get it into the hole you need to use your soldering iron, and once the tip gets hot you press the metal insert into the hole. as shown here

This will allow you to use 4 M2.5x6 screws to help screw the halves together


You should have a ball. That's about it. The two hemispheres should fit together to create a pretty seamless ball.

However it is important to check that as a sphere it rolls fairly straight. Start rolling it around a little and see if it can roll in a straight line, if it does, you're good to go! If it doesn't that means your hemispheres aren't perfectly aligned causing it to oval, or be heavier on one side, which will affect the performance later on.

Step 11: PRINTING THE HEAD (outer Shell)

The head needs to be as light as possible in order for the bb8 floating head effect to work properly, which is why the head is actually extremely thin just about 2mm. Which is why you'll need to be extremely careful gluing it together.

You'll need these files: (bb8 head -> outer shell-> main shell. folder)

1) 7x head thin

2) 1x head thin holes for light (really weird name, I know)

3) 1x head cap part 1

The head is really straight forward all of the thin pieces (besides the cap) get glued end to end creating a dome. then you glue the cap over all of those (see the photo above).

All of these get glued end to end with no friction welding. glue was enough for me here, I just tried to squeeze as much as possible on the inside and the outside of the seams.


Things you'll need for this step:

1) Spackle/woodfiller

2) power sander

3) sandpaper

4) filler primer

5) white spray paint

This step is pretty straight forward. We need to make the body as smooth as possible, and to try and get rid of most of the layer lines. The way I did it was to first cover the entire thing with spackle, both the body and the head. Once that dried I sanded down the entire thing with a palm sander from 80 to 220 grit. NOTE: do not keep the sander in one place for an extended period of time, it may melt the filament. Once I felt it was smooth enough I sprayed the entire thing down in filler primer, which further helps fill in any pores that I may have missed with the spackle. Once that dried I sanded it down with 330 grit, and gave it a second coat of filler primer. Once again sanded it with 330 grit when it dried. It was then ready for 2 coats of white paint. Which left me with a very smooth finish.

Once I was done with the outside of the body I opened it up and spackled the inside of the body. and once again, when it dried I sanded it down until I felt everything was smooth. Then I used filler primer on the inside of the body and sanded that too. All trying it make it as smooth and as spherical as possible. I did not sand anything inside the head. since its not getting painted you only need to sand and paint the outside.


Eventually you're going to add the platform with all the electronics into the ball. the issue is that when I tried it, the ball started to deform with the weight of the platform and stress from the wheels. Since it was pretty late into the project I only had one option: Fiberglass. the problem is that I REALLY didn't want to try and use fiberglass on a concave surface. so I thought about using just plain epoxy resin. I had some leftover from a cutting board project that I did a while ago. I felt that when it cured it would be hard enough for the robot to run smoothly. AND IT DID.

For this step you'll need some epoxy resin. I used Homedepot's Glaze Coat resin linked earlier. The trick was to make sure you do very thin coats so it doesn't pool anywhere. I ended up doing two coats of epoxy resin on the inside of both of the hemispheres. just make sure that you keep the resin on the inside of the hemispheres. You can tape up the hole in the top hemisphere for now. Remember very thin coats, and make sure it doesn't pool up, or else you'll have a very big problem on your hands.

If you can find a better way to stiffen it up and still have it keep its spherical shape, by all means you can do it. This one worked for me so I'm standing by it.


When I was building the bb8 I wanted there to be an easy way to turn it off and on without having to open up the bb8 every time. this is why as you noticed on the previous step, there was one pentagon that had a large hole in it. this was done by design. I have also designed 2 other parts that will fill in this hole but will twist open with a key that we'll discuss later. The blue piece twists open to give access for a finger to stick in push the button to turn bb8 off.

The Files You'll Need (located in outer body->inside access)

1)1x "new bb8 button cap with twist" (RED)

2) 1x "twist cap (DARK BLUE)


For the button cap:(RED)

.22mm layer height

2 perimeters

15% infill

For the twist cap:(DARK BLUE)

.2 mm layer height

100% infill (it needs to be as strong as possible)

it might take a little bit of filing and sanding but the twist cap is supposed to twist into the button cap, and keep the curvature of the sphere on the inside and out. video demonstration below

you should first sand and file the twist cap and make sure it can move easily but isn't too lose. only then should you glue the button cap(RED) into the pentagon with the hole(YELLOW) in it. then twist the twist cap(DAEK BLUE) into place


Time to make BB8 look like BB8!!

You Will Need

1) orange and silver spray paint

2) painters tape

3) pencil

4) box knife/ xacto

5) compass

6) steady hand

7) more tape

I used online bb8 pattern templates to draw all of bb8 designs. For the orange circles I used a compass to get the circles as close to circular as I could. The orange trapezoids were done by hand. Once you draw it out you cover everything else in tape so you'll only color what you want as orange. all of the silver details were drawn by hand and then everything else was taped over so I would only paint those buts silver. This part it totally up to you. you can draw any design that you want, or paint it whatever color. Have fun with it!


Once its painted we can now add the main eye, the holo projector, and the two antennae. All of these are either printed in white or black, and they aren't painted or sanded. The natural color of the filament will do.

FILES YOU'LL NEED (bb8 head->outer shell-> holo, main antenna, main eye, small antenna

1) in the "holo" folder

a) bb8 eye ring

b)bb8 holo bottom (YELLOW)

c)bb8 holo top (LIGHT BLUE)

2) in the "main antenna" folder

a) bb8 antenna bottom (GREEN)

b) Large antenna white (LIGHT BLUE)

c) antenna pin+screw (GREY)

3) in the "main eye" folder

a) bb8 eye bottom (BLACK)

b) bb8 eye top (BLUE)

4) in the "small antenna" folder

a) bottom of small antenna (BROWN)

b) top of small antenna (WHITE)

All of these needed to be split into 2 or 3 pieces for ease of printing. because both sides do not have flat surfaces. So you just need to glue the pieces back to back/ flat side to flat side. Except for the main antenna. The top piece of the main antenna IS THE KEY for the twist cap.(I'm really proud of that by the way) so make sure to NOT glue it into the rest of the antenna.

Once printed and glue together its time to glue them onto the head. Be aware of the one panel on the head the lights are supposed to go which has those 2 holes in it. just don't put the eyes on that one. other than that just glue it wherever you feel looks right. its what I did.

Step 17: TIME TO MAKE IT ROLL- Head Chassis Part 1

Things you'll need for this step:

1) 3/16 inch steel dowel

2) BB8 head files

3) glue

4) 1/4 inch threaded rod

5) 2.5mm steel rod (for the wheel axles, but that's really the next step)

The first step to making it roll is to build the head chassis. The magnets in the head need to be elevated in order that they don't rub against the outer surface ruining your beautiful paint job( see photo above). The head also has to be able to roll smoothly and be able to spin via the remote control. Because of all of these necessities the head chassis design is a little weird, but bear with me.

The first step is to go into the BB8 STL folder and go to BB8 head-->Head chassis---> Chassis and print out everything there. the colors will respond as such

Green- Head chassis part 1 of 3 (print three of these)

Yellow- Head chassis blockx3

Hidden- head chassis pin (hidden, these will help connect the "head chassis part 1 of 3" pieces x6)

Blue- Head chassis triangle bracket

Red- BB8 head holder

All files were printed with .28mm layer height and 10-15% infill

The first parts to put together are the three Green pieces which make of the larger part of the chassis Then print the Yellow head chassis blocks. You can glue them into place by sticking the 3/16 inch steel rod through the holes and lining up the yellow pieces on top of the green (see attached photos for a better idea)

Once you have the three yellow pieces glued on, the blue "triangle" piece should snap in with a pretty snug fit. NOTE: the snug fit isn't that important, being that the magnets will pull it down anyway. DO NOT GLUE THE BLUE PIECE IN PLACE

Step 18: Time to Make It Roll- Head Chassis Pt 2

Now that you've got all the main parts printed out its time to make the wheels for the head. These wheels serve to important functions, to not let the magnets touch the outer surface, and to allow the body to roll smoothly. there are a couple of ways to go about making the wheels, I've tried 2 ways and both worked. i have yet to try TPU tires.

the things you'll need for this step:

1) Stl files- BB8 head--> head chassis--->wheels

2) 3/16 inch steel dowel rod

3) 2.5mm steel dowel

4) glue (always)

5) nylon washers of various sizes

Now you'll need t print these files

Castor holder v3- 3x

castor wheel total round- 3x printed at 100% infill

wheel pin cap v2- 3x

To start I cut the 3/16 steel dowel into 3- 57mm long pieces. and the 2.5mm steel dowel into 3- 30mm long pieces

one end of the 3/16 inch steel dowel gets pressed into one of the Castor holder v3. it should be flush with the surface on the INSIDE of the holder. (see photos for details). then take one of the 2.5mm steel dowel rods and one of the "castor wheel total round" and fit them into the holes at the top of the castor wheel holder. I used about 2-3 nylon washers on each side to keep the wheel from wandering. (see photos for details)

In order to gain some extra grip you can either A) reprint these wheels in TPU , or put some heat shrink tubing around the wheels to give some added grip.

Then put some super glue on the tips of the 2.5mm dowel rod to keep them in place. the wheel should roll relatively smoothly.

Do this 2 more times so you'll have all three castor wheels that correspond to the black wheels in the first photo

Now place each one of the wheels into the main base you made before with some nylon washers as spacers, as show in the photos above. YOU MUST place the wheels so they are tilted towards the center, i.e. don't place them when the main chassis is upside down! PLEASE PLEASE PLEASE see the photos above to not make this mistake.

once you have the three wheels in. WITH THE CORRECT ORIENTATION!. you can glue the 3 wheel pin caps onto the tops of the 3/16 dowel rods. see photos for more clarity.

Now you should have some sort of chassis that should roll smoothly across the outer surface of the bb8 body. like the video above!


Step 19: Time to Make It Roll- Head Chassis Pt 3

Time to add the parts that will allow it to attach to the head and connect to the body. this includes the threaded rod, the bearing, the magnet holders and the head connector

things you'll need for this step:

1) 1/4 ID 5/8 OD bearing

2)1/4 threaded rod (cut to length at your discretion)

3) 4- 1/4 nuts and washers

4) glue (obviously)

5) BB8 head STL's

the prints you'll need are:

bb8 head-->head chassis-->magnet holder--> head magnet holder

and the red piece you printed out from head chassis part one

The first thing you want to do is to cut your threaded rod. I cut mine to about 90-92mm. you want to be careful that it doesn't extend too far and end up scraping the outer surface of the bb8 body.

next, you'll want to screw the red bb8 head connector onto the top of the threaded rod. I used copious amounts of glue to make it stay.

next you want to thread two nuts up to the bb8 head connector, as shown in the photo. these nuts are there to allow to to raise and lower the magnets to get them in just the right spot.

the threaded rod is then put trough the blue triangle connector piece, which if you noticed has a whole on the bottom for the earing. this is just to allow the threaded rod to spin without spinning the entire chassis. because when you rotate the magnets you only want to rotate the head shell, not the entire chassis.

Then thread another nut under the blue triangle and sandwich the head magnet holder (white- in the fusion diagram) with another nut, and make this as tight as possible. you do not want the magnet holder to come loose during operation

See Photos above for a better idea of how the layout is supposed to go

Now you should be able to fit the triangle piece into the main chassis which will give you a completed roller! we wont put in the magnets just yet, but try raising and lowering the magnets by tightening the two nuts on the top near the head connector.

Now when you place it into the head you should be able to replicate what I have in the video on this step.

Step 20: FINALLY... the Innards!!! Part 1- the Base Plate

The first step in making the bb8 move and talk is to make the base. I used a piece of 3/4 inch plywood for this and I wouldn't recommend going any thinner considering there's going to be a decent amount of weight on this thing.

you need to cut the piece of plywood into a 11.5 inch diameter circle. be sure to mark the center and draw the lines out in the + and x fashion is the photos above. it will help align the motors and the transfer bearings later.

then cut out two notches on opposite sides of the circle. this is to allow the wheels to have some sort of clearance while maximizing the size of the base plate.

Step 21: The Innards- Part 2- the 3D Printed Parts.

There are a whole bunch of 3d printed parts that are needed to hold down the electronics, the bearings, the batteries, the weight plate holder.. you get the point.

Ill try and show what everything is used for in the photos above

Go to BB8 stl--> inner body--> mechanics stuff and print out

1) motor protector x2

2) new middle body holder x1

3) on wooden disk bearing holder 2x

4) taller weight holder x1

also go to BB8 STL--> inner body---> electronics holder and print out

5) battery holder x4

6) body magnet holder x1

7) buck converter holder x1

8) inside body servo holder x1

9) inside body servo magnet holder x1

10) smaller buck converter holder x1

11) speaker holder x1

12) Uno holder (I use an Arduino mega but they have the holes in the same place)

13) wire holder x8 (good to have extras)

So get printing!

Step 22: The Innards!- Part 3 the Electronics. Inside the Body and the Controller (this Is a Long Step)

Inside the Body

So now is where the fun begins. The electronics of this bb8 is surprisingly simple. there are 2 7.2V batteries in series. that makes 14V. My motors run on 12V so I use the large totally overkill buck converter to bring it down to 12. that 12 Volts goes straight to the motor controller to power the motors. there's another 14V line that goes to the smaller buck converter and that gets converted to 5V. these five volts power everything else. the Mega, the speaker, the Bluetooth module, and the servo. I have the handy Fritzig Diagram (the Dfplayer wirings on the Fritzig diagram aren't 10% accurate. see correct pinouts for bb8 below) that I made to hopefully help you out with the wiring

BEAR IN MIND- this honestly might not be the best way to wire this up. the only thing i can tell you is that I've done it without anything blowing up yet and its been almost 8 months.

Please pay attention to the diagram above. Ill also include a video of how everything is wire up on the bb8

And sorry for the bad audio, had COVID when I was recording.


I ran multiple test runs before I took the plunge and screwed everything down inside the bb8

The diagrams for the modules will be in the photos

Now, for some connections.
Bluetooth Rx - Pin 0

Bluetooth Tx- Pin 1

DFPlayermini Rx- Pin 5 (change it to Rx using Software serial library- see code)

DFPlayermini Tx- Pin 3 (Change it to Tx using software serial library- see code)

Servo - Pin 53

all connections to power and ground from the buck converter as shown in the Fritzig diagram.

the motors need to run in opposite direction in order to move. I didn't flip the connections on the motor controller. rather i just put it into the code. in the end, if the motors aren't working together you can either flip the polarity of a motor, or change it in the code

Outside the Body-Controller

The controller is really simple. I used an Arduino Uno, the Joystick shield, the other HC-05, and a AA barrel jack holder. I plan on making a more official controller soon, but for now I have this. (see photo above)

Once again, before you go straight to putting it into the bb8 please please please test it.

Onto the Code!

Step 23: Importing the Audio Files

Please follow this tutorial to get the mp3 files onto your DFPlayer Mini. Ill have the audio files to download below

Step 24: Modifying the Servo

In order for bb8's head to spin around continuously i modified a Mg995 servo.

A servo works by spinning a motor until it reaches a pin attached to one of the gears in the top of the servo. There is also a potentiometer that relays the position 0-180. the way to hack this is to first open up your servo. locate the pin in one of the gears on the top and pull it out. Then, spin the potentiometer until it reaches 90. you can do this by running a simple code to set your servo to 90. If you've taken the pin out, the servo will spin continuously until it reaches "90" so twiddle with the potentiometer until it does so. I then cut off the top f the potentiometer and put in some super glue to hold it in its 90 position.

Now in the code, if you tell it to go to 180 it will continuously spin clockwise, and if you tell it to reach 0 it will continuously spin counter clockwise.

Now I know I did a terrible job of explaining it so here's a video from YouTube on how to modify a servo

Step 25: The Code!!!

The first step in making the code work is to connect your two Bluetooth modules. one needs to be the "Master" module that essentially sends information to the "Slave" module which tells the slave module what to do. Hes a video that I used to set up the modules.

Once you have them paired make sure you know which ones are the master and slave. the worst thing would be if you get them confused and then are super confused/frustrated why nothing is working.

The master HC-05 goes onto the joystick, and the slave connects to the "Inside bb8 electronics"

Ill also try and link the code files if you cant copy and paste everything

The Master Code

int Xpin=A1;
int Ypin=A0;

int Bpin=8;

int Uppin=2;

int Downpin=3;

int Leftpin=4;

int Rightpin=5;

int Xval;

int Yval;

int Bval;

int Upval;

int Downval;

int Leftval;

int Rightval;

int delaytime=170;

#define Upbutton 2

#define Downbutton 3

#define Leftbutton 4

#define Rightbutton 5

#define Bpin 8

void setup() { // put your setup code here, to run once:















void loop() {








//Serial.print(Xval); these are to test the joystick amount





Serial.print('1'); }

else if(Xval<50){

Serial.print('2'); }

else if(Yval<50){

Serial.print('3'); }

else if (Yval>600){

Serial.print('4'); }

else if (Bval==LOW){

Serial.print('5'); }

else if (Upval==LOW){

Serial.print('9'); }

else if (Downval==LOW){

Serial.print('8'); }

else if (Leftval==LOW){



else if (Rightval==LOW){



else{ Serial.print('0');




The Slave Code

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

#include "DualVNH5019MotorShield.h"

#include "Servo.h"

DualVNH5019MotorShield md;

int state=0;

int velocity=350;

static const uint8_t PIN_MP3_TX = 3; // Connects to module's RX

static const uint8_t PIN_MP3_RX = 5; // Connects to module's TX

SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);

DFRobotDFPlayerMini player;

Servo myservo;

void setup() {

// put your setup code here, to run once:






if (player.begin(softwareSerial)) {


player.volume(30); // Set volume to maximum (0 to 30); // Play the first MP3 file on the SD card


else { Serial.println("Connecting to DFPlayer Mini failed!"); }

}// end of setup

void loop() { // put your main code here, to run repeatedly:

if(Serial.available()>0){; //reads data from master bluetooth module


























}// end of loop

These codes are pretty simple. For the joystick, it has the module send a number over for every direction on the joystick and the buttons. the slave module then receives those numbers and has instructions on what to do every time it receives a number

Step 26: Testing Testing Testing

try and lay everything out before putting it into the bb8. The Bluetooth should connect, the motors should run, the servo should spin, and the DFPlayer should play something.

These are my videos as I was trying to get all the electronics to work, along with testing out their codes

Step 27: Time to Put Everything Inside the BB8- LOOOOOONG Step

So now you know everything works, you have all the 3d printed parts. time to put everything on the base.

you're going to need

1) all the 3d printed parts from step 21

2) The Mega, Motor Controller, Buck Converter, Smaller Buck converter, 10A Rocker Switch, HC-05 (slave), DFPlayer Mini, Speaker

3) Batteries

4) Motors, the motor brackets, motor hubs, wheels

5) Transfer bearings (screw them into the "transfer bearing holders"

6) screws (I used 3/4 inch drywall screws for most of the work here)

7) a drill, for drilling holes in the base to pass wires through

8) the 1" wooden dowel (will be cut down to size later)

9) wire

10) solder

11) heat shrink tubing

12) The Tamiya Series Battery Connector


Place the "new middle body holder" in the exact center (as close as you can get) of the wooden base you made in step 20. and screw it down. This is now the top of your base. See photos for details.


Then flip the entire base over and screw down the "taller weight holder" to the exact center of the bottom. see photo for details


screw on the motor brackets so the 90 degree edge lines up with the notches you made in the base. use as many screws as you can to screw down both brackets. MAKE SURE TO LINE THEM UP PROPERLY. you want to make sure that the motors as as perfectly opposite each other as possible! Then attach the motors to the brackets.


attach the "transfer bearing holders" with the transfer bearings to the bottom 90 degrees from the motors. SEE PHOTOS. you'll probably need to adjust these later on but in the photo above I'll try to show how far out the bearings should be sticking out.


As per the picture above, place the 2 batteries on the underside with the battery brackets. the 3d printed brackets can and should flex a little when putting them over the batteries. this is to ensure that they will never fall out during operation


Connect the 2 batteries with the series connector and decide where you want to drill the holes for the wires to pass through to the top. I did it relatively close to the edge so I can have the ON/OFF button on the edge of my wooden platform. that way, using the "outside access" panel you put in in step 14. You can push the button from the outside. SEE PHOTO ABOVE, for where the button should be placed. bear in mind that the button and the rest of the electronics will be going on the top


Drill holes for the battery wires, and the motor wires to pass through to the top of the platform. Make sure the motor wires don't have to travel too far to reach the motor driver.


using the electronics holders you printed out start screwing down the 2 Buck converters, the mega, the button, and the speakers.


Now place the wooden dowel into the "new middle body holder" and screw it down. (there should be one or 2 holes in the 3d printed part specifically for a screw). Then screw the "inside body servo holder" to the top of the dowel and place the servo inside of it using heat inserts and M2.5 screws. then screw the "inside body servo magnet holder onto the servo, and then attach the magnet holder on top of that with heat inserts and M2.5 screws. (see photo above!!!)

NOTE: I have not given you an exact size to cut the dowel because you want to cut it so that the magnets JUST miss the inside of the body when the body is fully closed. this will end up being trial and error and is totally up to the placement of your motor. so cut them to size once you get to test that out


Add the wheel hubs and the wheel to the motors. make sure they are on tight


wire everything accordingly. you should know how to do it from testing, but if not refer back to step 22


test everything again and check the the motors still run, the servo will turn, and the speaker will play something.

these videos are before i attached the weight holder, the servos or the speaker. I was just happy with getting wheels to spin

Step 29: Place the Driving Mechanism Into the Body.

ok everyone, its the moment of truth. you should place the drive mechanism into one of the hemispheres you made a long time ago. you may need to adjust the tire and transfer bearing placement. a perfect scenario should be that the wheels are touching the inside of the hemisphere and the transfer bearings are SLIGHTLY away from the wall. meaning you should be able to rock the platform ever so slightly before the transfer bearings engage with the inside of the hemisphere.

Once you have that you can power it on and try to drive it in that one hemisphere. it should start driving up the side. if its going to fast you can definitely slow it down by changing the code slightly. just make sure that the wheels are engaging but the bearing aren't. you don't want that added friction.

Once that works its time to put on the top hemisphere

Step 30: Getting the Ball Rolling

See what I did there?


Its time to completely enclose the drive mechanism. to do this to need to cut the dowel down to size. just start trimming it until the ball can close without rubbing against the magnet holder. its extremely important that the magnets be as close as possible to the outside. (and yes i know there aren't any magnets in yet. saving the best for last).

Once you have the dowel cut to the right size, turn on the platform and close the ball. line everything up, and screw it closed.

Moment of truth.

It didn't work for me the first time because I had the transfer bearings toughing the inside and the wheels were not. but if you lined up everything correctly it should roll like I have in the video.

If it rolls-CONGRATS.

if it doesn't-BOOO

if it doesn't roll there could be a couple of issues. If the wheels are turning (you hear them) but the ball isn't rolling then its the issue I mention above. if the wheels aren't spinning then its an issue with the wiring and you should recheck that.

Step 31: Adding the Magnets and Weight

now, the magnets and weight can be added to the body.

you need the weight to help balance the robot, the magnets are more than strong enough to lift the entire platform up. so you MUST add weight. I specifically used pancake weights because those have the lowest profile and wont scratch anything inside the body.

first, screw the "motor protectors" over each of the motors. this helps the weights not make contact with any of the motors or wires that are on the base.

then place the 2 weight plates (a 2.5 and a 5) onto the taller weight holder" (first the 2.5 then the 5, you want the heaviest weight as close to the bottom of bb8 as possible) you screwed to the bottom of the base. place the washers and blot over it and screw them down tightly.

now its time to add the magnets. please bear in mind (please have an adult do this part!!!!)


you need to place the 4 magnets into each of the holders as shown above, they are then screwed down with either 1) nylon nuts and bots (recommended) 2) 3d printed nuts and bolts (not recommended)


I had the inside body magnets "north" face facing up to connect with the "south" face of the head magnets. if you do not do this correctly the head will obviously not stay on.

Step 32: Attaching the Head and Testing

Now its time to see if the head will attach. i only used the head mechanism for my tests, because the head is pretty fragile.

Enclose the body drive mechanism inside of the bb8 nd not try attaching the head mechanism to the outside of bb8. if you did everything right it should snap into place.

By "snap" I mean it literally. it will pull down with a lot of force, but the wheels in the head mechanism should keep the magnets in the head from touching the outside surface of bb8 (as shown in the photos above)

If the magnets are touching you should try to raise the magnets in the head mechanism. This took a little adjustment for me. once you have them properly adjusted tighten the nuts down as hard as you can to make sure they wont move

Then is time to try making the bb8 move. if everything is lined up right, and nothing is dragging across the OUTSIDE OR INSIDE you can try driving it. if everything is lined up it should work perfectly.

You can also try spinning the servo. you'll be able to see the black 3d printed part at the top of the mechanism spinning.

Step 33: Attaching the Head

All you have to do now is place the head on top of the mechanism. Line up the 3 protrusions with the 3 holes inside of the head. it should fit on snugly. You can now try to drive it, but be careful of the head falling of. If it dies that means the magnets aren't close enough together. Try adjusting the head mechanism, or even getting a longer dowel for the inside mechanism. I had to make 2 heads because the first onw broke. please be careful so you don't have to do this again. Once everything is aligned it should drive perfectly! congrats! you now have a working bb8!

Step 34: Adding Lights to the Head- Optional

I used 3 LED's connected in series for bb8's head. I used a red, blue and white led (see photos above) to get the hole in the eye cap and the Holo projector I just used a soldering iron to melt and punch a hole through the 3d printed material. I used 2- 6v coin cell battery holders connected in series that are crudely taped to the inside of the head. each one has a switch on it so to turn the lights on and off I only use one of them.

I wouldn't recommend putting anything else in the head because the head has to be as light as possible. this step is totally optional, but I don't understand why someone wouldn't do it


And that's it! it should drive without the head falling off, the head should spin, it should talk... everything should work! you now have your very own 3/5th scale working BB8!

To everyone who made it this far. Thanks for taking the time, I hope you enjoyed this project as much as I did!

Also want to thank 3 of my friends Danny, Yidi and Eli for dealing with me constantly bouncing ideas of them and bothering them for suggestions/sympathy when something didn't work out the way I wanted it to.

Step 36: Possible Add-ons

A really good ide would be to add an IMU for some PID control which would help with the wobble once you come to a sudden stop. I did get an IMU I just have no idea how to use it / what code to write. So if anybody reading this wants to help me out with that id greatly appreciate it!

Thank you so much for taking the time and making it to the end of this really long 36 step instructable!

Anything Goes Contest 2021

Runner Up in the
Anything Goes Contest 2021