Introduction: DIY BB8 - Fully 3D Printed - 20cm Diameter First Prototype of Real Size

About: I'm content creator about DIY project. You can follow me on instructables and YouTube Channel ( ilge )

Hi everyone, this is my first project so I wanted to share my favorite project. In this project, we will make BB8 which is produced with a 20 cm diameter completely 3D printer. I'm going to build a robot that moves exactly the same as the real BB8. We will be able to control via bluetooth with smartphone. This robot will be the first experiment in real-life BB8 with artificial intelligence that I want to do later.



  • 2 x Micro Motor 12 V 120 RPM (link)
  • 2 x 60*11mm Wheels (link)
  • 2 x Motor Bracket (link)
  • 6 x Neodymium Magnet
  • 5 x Plastic Ball Caster (link)
  • 8 x M3*10mm Pan Screws (link)
  • 4 x M3*6mm Pan Screws (link)
  • 4 x M3*8mm Flat Head Screws (link)
  • 16 x M3 Threaded Knut Nuts
  • MANY 3D Printed Parts


  • 1 x Arduino Nano (link)
  • 1 x HC05 or HC06
  • 1 x 11.1V 3S 1350 mAh Li-Po Battery (link)
  • 3 x 5mm Led (link)
  • 1 x L298 Motor Driver (link)
  • 1 x PCB from PCBWay (link) or you can make it with protoboard
  • 2 x 15pin Female Header from 40pin Header
  • 2 x 3pin Male Header from 40pin Header
  • 1 x 90 degress 6pin Female Header from 40pin Header
  • 4 x 1N4007 Diode
  • 3 x 240 Ohm Resistors
  • 1 x 2.2 kOhm Resistor
  • 1 x 1 kOhm Resistor
  • 1 x 33 kOhm Resistor
  • 1 x 22 kOhm Resistor
  • 1 x 220uf 16V capacitor
  • 2 x 100nf 100V capacitors
  • 1 x Slide Switch
  • 2 x Screw Terminal
  • 1 x 30cm Electric Cable


  • 3D Printer which have 20cm diameter print size
  • 2 x 1kg White Filament for Body and Head
  • Screwdrivers
  • Hot Glue for Magnet

** All links will be updated

Step 1: Electronic, PCB Assembly

I have made the pcb design in the Eagle that will allow us to control the robot. This card includes Arduino Nano Socket, motor driver, power ports, bluetooth and other auxiliary components on it. This card was double-sided printing. You can produce by hand, but it can be a bit difficult. Circuit drawings can be found here.

First of all, we solder by moving from low-height components to high ones.

In the design files of the card you can see which components should be soldered and where. Click for design files.

İf you want produce I have attached circuit design file. Or you can use the generic L298 motor drive and bluetooth with Arduino board, i have shared.

Arduino Board --> L298 Generic Red Board

A1 - Input_1 (Left Motor)

A2 - Input_2 (Left Motor)

A3 - Input_3 (Right Motor)

A4 - Input_4 (Right Motor)

10 - EN_1 (Left Motor)

9 - EN_2 (Right Motor)

Arduino Board --> HC06 Bluetooth

4 - TX Pin

3 - RX Pin

If you want or if necessary you can connect some LED.

Step 2: 3D Design & Printing

Because it was produced on a 3D printer from BB8, it took a long time to print. Bottom outgoing Turkey parsing and I designed from scratch to be versatile. With the nuts embedded in the PLA, the interior is designed as a smooth surface.

The prints of the trunk round shell parts lasted 140 hours with the navigation. Support is required for the inner and outer parts of the body to be smooth.

I suggest using support again to print the head. The outer shells are finely pressed to make the head as light as possible. You don't need to do anything extra in a slicing program related to this design part. All parts were printed with a layer thickness of 0.16 mm. This is not essential, but you can print at this maximum layer thickness, especially for the outer body to be smooth.

And of course there are parts of the internal mechanism. This mechanism keeps the center of gravity downwards and allows the sphere to advance as it rotates within the sphere. Most parts of the mechanism should be close to the ground and be much heavier than the upper part.

You can access all design file from Fusion 360 public link. Or you can download direct STL file as attachment. All parts is printed %20 infill density except "balancer_full_density", it must be full filled.

Step 3: Mechanic Assembly

It is necessary to assemble each other after pressing these parts. The assembly was very simple, as all parts are compatible and we use a special nut that is heat-fed to the PLA. Now let's start assembling.

The first thing we need to do is to place special nuts in the required place. We will do the placement with the help of a soldering iron. After putting the nut on top of the hole we will press it lightly with hot soldering iron, it will be settled in seconds.

Now we are ready to assemble the parts and let's start by soldering the cables of the motors. Since the cables coming from the motor will go to our circuit board, 10 cm length will be enough. I recommend that you use multi-core cables.

We can fix the engines now. We will use the motor holder for fixing. In this way, we will fix the motors in a practical and robust way. Since we install special nuts from the rear to fix the motor holders, it is enough to tighten the screws from above.

After fixing the engine, we can plug in our circuit. There are special nuts inside the high parts to mount the circuit. Again, the assembly process will be very easy ından I did not have short screws in my hand, so I pushed the amplifier parts under the circuit board. When the circuit assembly is finished, we connect the motors to the required screw terminals

In order to move the head with the magnet according to the internal mechanism, we need to put the magnet mechanism up. We install the part that comes out from both sides and will hold the magnet above. This part also has wheels on the inside to prevent it from rubbing against the walls as the mechanism moves. We also assemble the wheels.

At the top we can now install the magnet mechanism. We put 6 magnets in this mechanism. These magnets can carry the head we produce as light as possible. We stick this mechanism with hot silicone in case we have to correct it.

And when it's finally attached to the wheels for the inner mechanism, it's ready.

3 wheels and 3 magnets will be used in the magnet mechanism that will carry the head part on the outside. These parts will be assembled on the 3d printer part that we have printed. We used fast glue for wheel assemblies and hot silicone for magnets. After passing the lower part of the head and check the gap between the body and paste.

Step 4: Painting

BB8 will use acrylic paint to eliminate the original image. It has orange black gray colors. We will make these colors by mixing them with other colors. I will paint the body with the help of brushes and photographs.

Step 5: Coding

In order for the robot to control it via smartphone, we need to code our arduino card. We can easily do the necessary coding on Arduino IDE and this code is simpler than you think  Click here to get to the code. To install this code to the arduino, make sure the correct card and port are selected and install it. I created ramped motion when I was checking the engines. Since the trunk moves with the center of gravity change, it should not make sudden movements.

Step 6: Test & Final

Now our robot is ready for the first move. With Arduino Bluettooth car app you can control from our phone. To pair the HC-06 bluetooth module with our phone, we select the hc-06 from the bluetooth settings. After entering the password as 34 1234 ”, it is enough to select the bluetooth module we use from the connect car option in the application. Then when the green light comes on, we can go now. I built this robot for my son. I hope it was useful to share the files and the project I shared. You can access all design file from my github page.

For much better projects, you can support by sharing and liking. I'm preparing "how to make video" of this project. I will constantly update this instructable. You will see BB8 in action on the days ahead. I wish you plenty of productive days.I will share BB8 Project video on my Youtube Chanel

Have a FUN!

Robotics Contest

Second Prize in the
Robotics Contest