Introduction: BB8

This project was for 'Creative Electronics', a Beng Electronics Engineering module at University of Málaga, School of Telecommunications (

We are three students who wanted to develop a project that would motivate and captivate us. We were looking for projects and one in particular caught our attention, so we thought we could reproduce it. After discussing several ideas, we decided to create a BB8.

The instructable which our project was based on is:

Step 1: Materials

  • Arduino UNO
  • DC Motors and wheels - Link
  • Motor Drive Shield L293D - Link
  • Bluetooth model HM-10 - Link
  • Neodymium Magnets (8mm x 3mm)
  • Magnets 20mm x 3mm
  • Styrofoam Ball
  • 4 AA Battery
  • Battery holder for 4 AA Battery
  • Sharpies
  • 100g fishing rod
  • Plastic for 3D printer
  • Button cell
  • Battery holder for button cell
  • Red LED
  • A pair of wires
  • Some clamps to hold the motors
  • White and orange paint
  • 3 Screws to hold the Arduino board
  • Adhesive tape
  • Wood filler
  • White and orange paint

You will also need the following tools:

  • Screwdriver
  • Hot melt gun
  • Tin soldering iron
  • Brush

Step 2: Let's Make It! - Internal Structure

Once we have all the materials, the first thing we have to do is print the inner piece.

While the piece is being printed, we will change the male pins 0 and 1 of the motors' controller for female-male pins. To do this, with the help of a soldering iron, we will remove the existing male pins and place the new ones. Also, we will weld some female pins where it indicates Vcc and Gnd to be able to connect there the power supply of the bluetooth module.

Once this is finished, we will make the connections of the engines: we will connect them to the inputs M1 and M2 of the board, as it is indicated in the pictures.

Once we have the internal structure printed, we can move on to install all the components as follows:

The motors will be placed in the indicated positions and fastened with flanges.

The arduino will be held vertically with the screws as seen in the picture and the controller of the motors will be placed on top.

Finally, we will place the bluetooth module in the dedicated compartment.

On the other hand, we precede to place the magnets in the holes of the upper part, trying that all are with the same polarity (we can verify it approaching another magnet).

Note: the pieces for 3D printing can be obtained from the link at the beginning of the intrusctable and they correspond to the project mentioned above.

Step 3: Bluetooth Module and Program Load

Following the base project, our bluetooth module is the HM-10 with six pins (of which, we had four of them, the most important ones, Vcc, Gnn, Rx and Tx).

The connection of the pins is already specified in the previous section and the communication between this module and the arduino is very simple since the arduino communicates with it as a serial terminal.

In our project, we wanted to change the name of the module to "BB8". Normally, this is done through AT commands of which there is a lot of information on the web but, the module that we acquired (and of which we have left a link in the list of materials), is from the manufacturer DSD TECH and needs a program that the manufacturer provides on its website to modify the settings of the module. Link of the program: dsdtech-global

As we have commented before, the communication is done as a serial terminal and it is very easy to check, with a mobile app and a basic arduino program its operation.

Once we have all the parts placed (previous section) and the bluetooth module configured, we can load the arduino with the software we attached in step 8. To do this, first we must disconnect the Tx and Rx pins (0 and 1 respectively) as otherwise we will have problems. Then, we connect the arduino to the PC, open the official Arduino application, select the model of board connected (Arduino UNO) as well as the port to which it is connected and proceed to upload the program.

Step 4: Android Aplication

There are many IOS and ANDROID applications compatible with Arduino and our bluetooth module, so it was difficult for us to choose one... Finally we chose an Android application called Bluetooth Electronics. This application allows you to customize the screen, place all kinds of items, from buttons to joysticks and connect in different ways such as bluetooth, BLE and USB.

In our interface, we have placed the name of the robot, a button pad and a terminal to see what we send from the application. We have configured the pad to send 'P'+number+'F' in every transmission. The 'P' starts the transmission, the number corresponds to a number associated with each arrow on the pad and the 'F' ends the transmission.

Once we have customized and configured our interface, we connect our device and hit the RUN button. Now we can test our robot and our program without any problem.

Application link: arduinobluetooth

Step 5: Body

This is one of the main pieces of our project. In the original project the plastic is grey and the ball has to be painted white. In our case, we prefer to print it white to save us some time later when painting it.

Once finished, we can introduce the interior structure and test that everything works through the application we mentioned in the previous section.

Step 6: Head

To do this, first the base of the head is printed.

Secondly, we put a battery holder inside and through the hole that remains we pass the cables to put a led (correctly polarized) on top and with a 330 resistance in one of its terminals soldering it as shown in the photograph.

Then, we cut the porexpan ball in half and glue it with hot silicone on the top of the base of the head.

Finally, we had to place the magnets on the inside for which we used hot silicone.

Step 7: Decorate

For the ball, first, with a compass we make two circles. Then, in each diagonal of the circles we make 1 rectangle.

Once the 6 pencil drawings have been made, we take some masking tape to cover everything we didn't want to paint and proceed to apply 1 coat of spray (taking the necessary precautions).

When it is dry, we remove the tape and outline all the drawings with a pencil as we like. In our case, we look at the design of the original BB8.

It is important to make sure that the drawings are perfectly distributed and that there are not too many drawings in the joints, as the cut will be noticed when we proceed to close the ball.

Finally, to close the ball we choose to use adhesive tape and conclude the ball as we see in the last section.

Step 8: Software

In the following link to the GitHub platform, you will find the code that you will have to implement in the arduino UNO board to develop this instructable. You will have to download and upload it as explained in step 3.

Remember to have the Tx and Rx pins of the Arduino UNO board disconnected. Otherwise, the loading will not be possible and will give you problems.

Link: GitHub

Step 9: Conclusion

Now that you know how to build the BB8, we will show you a series of tips and tricks from our experience that will help you, when you replicate this project, to work properly and have no problems.

As you may remember, in step 6 the magnets are installed and our initial idea was to place three neodymium magnets in the internal structure and another three in the head, but when we acquired and tested them, the magnets exerted such a force that the internal structure was lifted and did not work properly.

Therefore, we tested less powerful magnets for the head (hence these are not neodymium) as well as compensations with weights so that the ball didn't have many oscillations and recovered its initial position quickly. This helped to ensure that, when interspersed with turns and walking forward, the direction of the ball would not be distorted.

What happened is that, in previous tests, the ball turned in circles and if you accelerated, the trajectory wasn't perfect, something that we corrected with the 100-gram weight located at the back of the internal structure and that can be seen in the attached image.

On the other hand, in order to reduce friction and to make the turning of the head more natural and slippery, we placed strips of body tape on the magnets.