Introduction: How to Make a Robot

About: The Creative Science Foundation (CSf) is a nonprofit organization, dedicated to the exploration and promotion of creative methods for supporting science, engineering, business and sociopolitical innovation thr…

NOTE: This instructable is depreciated, please refer to our new version of this instructable Creative Robotix - Educational Platform - Codee, Robee, Timee and Friends

Hey Everyone! Creative Robotix, now that's what we like! Have you ever wanted to imagine, create and make your very own humanoid robot with its very own personality? We have, so we did, and we would like to share with you what we have done.

Our Creative Robotix framework is a skinnable robotic platform that enables you to imagine and create your very own humanoid robot with its very own character. The platform is articulated with 5 low-cost servo motors, enabling differential drive with independent head and arm movements. A set of three bicolour LED’s and speaker allow for designs with colourful facial expressions and a voice to match. The platform also knows where things are, like lines on the floor and if there are obstacles in front in the path of travel. It is powered by an Arduino Nano and has Bluetooth connectivity, which allows you to program the platform to operate in a few different modes. In full autonomous mode the platform makes for a happy little robot independent and carefree, in interactive mode the robot can connect to your mobile phone and you can play with it, or in super smart mode, you can give your robot a 'Brain the Size of a Planet' (as Marvin, the Paranoid Android, a fictional character in The Hitchhiker’s Guide to the Galaxy series by Douglas Adams was said to have) and hook it into the cloud of things via your PC where it can access internet knowledge and talk to other cloud connected Creative Robotix robots out there and share experiences. The options are limitless.

Our design philosophy is based around the 21st Century Robot Project an open source, crowd sourced framework approach to building robots in the 21st Century where robot's are imagined, designed and built to be social, to each have a name, to be community driven, connected, evolving, growing, improving over time, with each contribution and each iteration.

To get you started we’ve included the open source skin, Timmy, which you can customize with your own artistic skills. Timmy, is cute humanoid robot with attitude, he likes reading, drinking coffee, watching ducks fly past while at the park, trying out for the local football team and enjoying a relaxing evening read at home after a busy day

We encourage you to customise Timmy, to give him his own personality, look and style, so why not print him out in white and let your artistic creativity go wild! Alternatively, why not dress him up, and take him out to see a show?

The Creative Robotix base frame is skinnable, so why not show us your design skills and create a new robot character of your own, and perhaps write a creative story about your characters antics using some Science Fiction Prototyping, for more head on over to the Creative Science Foundation. If you are technology minded, then why not try to find new ways to power our platform, perhaps with some of the latest advances in embedded technology, for example CHIP or Pi-Zero and why not try out some other neat sensors, maybe a camera, positioning or even give our platform a sense of smell, or try out adding some other off-the-shelf technology you prefer. By evolving our design, creating your own robots, we hope that you will enter into the spirit of free-sharing by offering your designs back to the community so our Creative Robotix project can fulfill its vision for creating an an open source, crowd sourced approach to building and exploring the future of robotics with Timmy and Friends.

Finally, we wish you, "Happy Imagining, Happy Creating & Happy Making!"

Project Essentials:

  • Estimated time to build (excluding 3D printing): 2 hours
  • Estimated cost
    • group build (excluding 3D printing): USD 18 - USD 30, group of 5
    • individual build (excluding 3D printing): USD 33 - USD 55
  • The project will teach:
    • Engineering
    • Computer programming
    • Logic
    • Algorithms
    • Problem solving
  • Fun for individuals of any age, especially for parents and teachers to engage their children and classes with leading edge design technology and ideas of the future. We recommend younger creatives be under adult supervision.
  • The project has been designed not to require soldering. However, 'super glue' is used to fit some of the parts together. Alternatives are suggested at the relevant steps and these options maybe more suitable for younger makers.

Step 1: What You Need, the 3D Parts

The design files are split into two, the CR Base set forms the Creative Robotix robot base which can be 'skinned' to take on different robot characters. The Timmy file set is a character 'skin' which can be applied to the base. Download the design files and print them. We have tested these files on an UP BOX, printing in PLA. If you don't have access to a 3D printer then you might like to try the following online service 3D Hubs.

Tips that worked for us:

  • Print the 'CR Base - lower' with a high density fill, this is because this part will take the line sensors which will be secured with self tapping screws. The higher density here will help the screws hold. The other parts can be printed with medium to low density.
  • We have tried printing the 'Timmy - front' in several orientations, the one that seems to work the best is printing upside-down upright. This will minimise support material and give a smoother finish.
  • Printing the 'Timmy - head' face up works well.

Step 2: What You Need, the Components...

The materials can be bought from local electronics shops or online. We have used eBay to source components at the cheapest possible retail prices and have found the quality of components to be both good and reliable. A few of the components need to be bought in bulk and so the individual cost is relatively high when compared to the base unit cost. However, this is good encouragement to gather a group of friends and or classmates to share a social build together. The EXCEL sheet will automatically adjust the quantity and order counts according to your group size. Also if you find a cheaper source and component combination, please let us know.


  • The bill of materials excludes glue, insulation tape and blu-tack as both are assumed to be common items.
  • There are three models available. Model A requires no soldering, but is the most costly as it uses dedicated 360 degree servos. Model B replaces the dedicated motors with low cost 180 degree servos, but two of these require a simple modification, which requires soldering. Model C is the lowest cost option and replaces the head and arm servos with three 'dummy' 3D-printed servos, these can be upgraded later.

Step 3: What You Need, Basic Tools, No Soldering Required.

A set of basic tools, the pair of long nosed pliers will come in handy when assembling the head and the Bluetooth module.

Step 4: Assemble the Lower Body and Line Sensors...

The line sensor modules should snap snugly into place, held by the lower sensor indents. Use five 6mm washer head screws to secure them to the base, they are self tapping, a firm press down on the screw driver will see them sink into the plastic. Hold the screws carefully to see them home.

Step 5: Fix the Battery Cover to the Upper Body...

Open the battery case and separate the battery cover. Using a small screw driver, make a 'pilot hole' in the center of the battery cover. Be slow, be gentle. Placing a small square of insulating tape over the center will prevent the cover from shattering. The battery cover should fit snugly against the bottom of the battery bay on the body, secure the rest of the way with a 6mm self-tapping screw.

Step 6: Attach the Lower Body to the Upper Body...

Press fit the 'body-lower' and the 'body-upper' parts together. We have found the parts to fit quite tightly together, so press firm, so far we haven't broken any parts at the step.

Step 7: Mount the Drive Servos and Wheels...

Fit the 360 servos in position. They should press fit and hold in place. Use two 8mm self tapping screws to fix the wheels in place.

Tips that worked for us:

  • After the build is complete you may want to put a spot of glue to permanently secure the motors in place. However, this is best left until your build is complete and you are happy with the way it is working.
  • Instead of using the special 360 servos you may hack the cheaper Tower Pro SG90's servos for continuous rotation. By far the most reliable method is to hack a voltage divider in place of the potentiometer as ably described here.

Step 8: Attach the Castor Bar...

Put a few spots of glue at the tip of the castor and push fit into the body, the top of the castor should appear flush with the front body. Add a few more spots of glue at the meeting point to secure.

Tips that worked for us:

  • You may find the castor is quite a tight fit, if this is the case then you may not need the glue. Or you may insert a small fragment of paper to narrow any gap, again removing the need for glue at this step.

Step 9: Tidy the Driver Wires...

Fix the wires from the drive servos in place with a plastic cable tie.

Step 10: Plug the Battery Wires...

Strip back the positive and negative wires to bare about 2-3mm of core. Place the positive wire in one of the female connector terminals so that the PVC is just under the top most 'wings' of the connector. Gently, but firmly, crimp the 'wings' to securely hold the PVC wire in place. Wrap the core tightly around the lower part of the connector under the wings. Repeat for the negative wire. Insert the wires into the 3-pin header blank. Note that pin 1 is denoted by an 'arrow', the negative connector is placed here, the positive in the middle.

Tips that worked for us:

  • While this does not require soldering, and we do not solder ours, you may wish to do so.

Step 11: Fix the Battery Mount to the Battery Casing...

Ensure the top of the battery mount (with the posts spaced furthest apart) is mounted flush to the top of the battery compartment that holds the batteries and is centred. You may need to press firmly to for a few seconds to ensure a firm and even hold.

Tips that worked for us:

  • Instead of glue, you may optionally use 4mm self tapping washer head screws to secure the mount from the underside. Double sided tape also can work well if care is taken when handling the assembled form.

Step 12: Upload the Test Script to the Arduino Nano...

If you haven't done so already download and install the Arduino IDE and base. Connect the Arduino Nano to your computer and open Timmy's Creative Robotics TestScript in the Arduino IDE. Select 'Tools' and then set the options 'Board' to 'Arduino Nano' and the 'Processor' to 'ATMega328'. The test script makes use of the New Ping library, to install the library, select 'Sketch', then 'Include Library' and 'Manage Libraries'. Search for 'New Ping' and install. New Ping will conflict with the Tone functions, so you will need to edit the NewPing.h file and set the TIMMER_ENABLED setting to 'false'. You will find the '.h' file under the 'Arduino/libraries/NewPing' folder, usually in your 'Documents' folder.

Step 13: Fix the IO Breakout and Arduino Nano...

Use a small screwdriver to create pilot holes in each of the four battery mount posts. Secure the IO breakout with four 6mm screws, and fit the Arduino Nano. Attach the main battery compartment to the main body.

Step 14: Wire-up the Line Sensors...

Strip 5 pairs of 3 wires from the main set of patch cables. Feed through the 5 pairs first, then connect the line sensors and tidily pull through. Facing front, the line sensors are numbered from 1 to 5, left to right. This will be important when connecting the other end of the cables to the Arduino breakout.

Tips that worked for us:

  • The 5 pairs of 3 wires should naturally be different color combinations for easy identification of sensor number.
  • Take a picture of the front, so you can reference the picture when wiring the sensors to the Arduino.

Step 15: Mount the Arm and Head Servos...

Feed the head servo cable through the fittings as shown. The servos should fit snugly into place.

Tips that worked for us:

  • After the build is complete and tested and you are happy with the way everything is working place some double sided sticky tape to the servos to hold firmly. If you want a permanent fix then use a few spots of super glue.

Step 16: Feed Through Ultrasound Wiring, Connect Up the I/O and Tidy Up...

Strip off a group of four wires from the main patch cable set and feed the group of wires through the same opening at the line sensors, this maybe a tight fit, be gentle, but a firm push and some dexterity maybe needed here. Turn the base over and connect the motors and sensors according to the pin mapping PDF. To tidy the wiring, remove the screws securing the I/O breakout the the battery mount. Tidy the line sensor, battery and servo wires into the space made by the battery mount, between the main battery holder and the bottom of the I/O breakout. Fit back the I/O breakout. Secure wires each side of the battery mount using cable ties.

Tips that worked for us:

  • While securing wires with the cable ties, ensure there is just enough slack to allow you to remove the battery cover to fit and remove the batteries.

Step 17: Mount the Ultrasound Sensor and Front Body...

  • There are a few types of Ultrasound Sensor board, with different mounting hole sizes. If you find that the 6mm washer head screws do not fit, then use four spots of super glue at each corner and secure in place. Here we have used super glue. Alternatively, source a fitting set of screws.
  • Connect the sensor wiring according to the pin mapping in the previous step
  • Press fit the front onto the main body. The fit should be very snug, so press firmly until the front clicks into place.

Step 18: Assemble the Arms...

Thumbs Up! Using two of the long servo arm mounts from the Tower Pro secure them to the upper arms with two 6mm self-tapping screws, trim, then assemble arms as shown with two further 6mm self-tapping screws at the elbows.

Step 19: Assemble the Head Mount Bracket...

Mount the remaining long servo arm to the head mount bracket using two of the small 4mm servo screws.

Step 20: Fix the Eyes and Mouth...

Using the long nosed pliers, fit the 5mm LED plastic mounts into each eye socket and mouth, they should push through so that the rear clasps protrude through into the rear of the head cavity as shown. Wrap the leg of one 220 ohm resistor around the middle leg of each LED. Fitting the LED's is best accomplished by using the long nosed pliers again, this time to hold the plastic mounts in place while pushing through the LED from the rear, you should notice a firm solid 'click through' when they are correctly mounted. Ensure that both LED's are fitted with the same vertical orientation to their legs. Here the short outer legs were top most.

Tips that worked for us:

  • If the LED clasps are a little tight, or do not allow the LED eyes to be easily pushed through, then you may widen the eyes at the rear by gently removing some of the plastic with the Philips head screw driver which is larger then the rear eye holes.

Step 21: Connect the Common Cathode LED Pins Together...

Twist the other ends of the three 220 ohm resister legs together. Trim the excess back, enough for one female jumper cable to be fitted.

Step 22: Wire-up the Facial Features...

Strip off a a group of 7 patch wires from the main patch cable set. Take two and cut in half, bare the core at the ends and twist together. Take a further two wires, and remove the female connectors right at the very end. Bare the core and connect one to each of the twisted pair. Use the isolation tape to secure the connections. Connect the wires, one pair to form common green, one pair to form common red, and one wire to the combined resistors to form common ground.

Tips that worked for us:

  • If you find the female connectors are not tight and easily 'fall-off' then use the long nosed pliers to pitch the tip of the LED legs into an angle, this should held secure the connectors. The cable tie in the next step will also help.

Step 23: Fix the Head Mounting Bracket...

Use the cable tie to secure the eye and mouth LED wires, ensure maximum and equal length as possible.

Step 24: Wire-up the Speaker...

The speaker we illustrate here required soldering. Some speakers will have 'ear tags' or 'tags with holes', if either is the case then simply wrap the bare wire core securely around the tags. Alternatively, you can buy speakers with wires already attached.

Step 25: Fit the Speaker Resistor and Connector...

The speaker is 8 ohms. If we connect this directly to the Arduino, it will draw too much current and risk damaging the output pin. We need to place a current limiting resistor in series with the speaker, using a 220 ohm resistor. Strip back the negative wire to bare about 2-3mm of core. Place the negative wire in one of the female connector terminals so that the PVC is just under the top most 'wings' of the connector. Gently, but firmly, crimp the 'wings' to securely hold the PVC wire in place. Wrap the core tightly around the lower part of the connector under the wings. Repeat the same procedure for the resistor, instead of wrapping the resistor lead around the lower part of the connector, simply trim it back, ensuring the upper wings are tightly holding the resistor securely. You may also crimp down the lower set of wings. Push the negative connector into the 'arrow' indicated outer position of the 3-pin header blank, leave the middle one empty, and push the resistor connector into the other outer position. Strip back the positive lead to bare the core to the top of the resistor, then wrap the core around the resistor lead, then wrap the resistor lead around the two PVC core to secure. Use a small piece of the electrical insulation tape to finish.

Tips that worked for us:

  • While this does not require soldering, we have not soldered ours, you may feel more opt to do so if you wish.
  • The volume maybe low. Place two 220 ohm resistors in parallel with each other when completing this step, the series resistance will then be 110 ohms, doubling the volume, while keeping the current draw within limits.

Step 26: Fix the Speaker to the Right Side of the Head...

Use a small piece of blu-tack, or double sides pads here. We used blu-tack which works well. Fix the speaker wires with a cable tie.

Step 27: Assemble the Bluetooth Module...

The Bluetooth module we are using operates on 3.3 volt signalling, the Arduino board we are using operates on 5 volt signaling. The 3.3 volt transmissions from the Bluetooth module to the Arduino are fine, in 5 volt logic a logic 1 is seen as a voltage greater than 2 volts, so we're all good. However, the 5 volt transmissions from the Arduino to the Bluetooth module may cause very bad things to happen to the RX input, over driving the input potentially causing damage, so we need to regulate these transmission voltages down to an acceptable level. This can easily be achieved with a 'voltage divider'. In this case we need to bring 5 volts down to 3.3 volts, so we need a 20K resistor across the modules RX input to ground and a 10K resistor from RX the input. The RX input will connect to the the TX output on the Arduino Nano.


  • How to 'read resistor values'
  • The 20K resistor will be banded red, black, orange
  • The 10K resistor will be banded brown, black, orange

Step 28: Prepare the Transistor...

We need to create a 'bus' line for the serial TX output on the Bluetooth module, this will allow us to have the Bluetooth module and the USB serial device connected together at the same time, although we may only use one at any given time i.e. the USB serial device is used to upload new programs to the device, and when running, the serial Bluetooth module is used for communication. To implement this 'one line bus' we need to use a transistor. Here we use one PNP, 2N222A transistor and a 10K base input resistor.

Step 29: Attach the Transistor to the Module and Wire-up...

Using the long nosed pliers connect the transistors Emitter to the Bluetooth module. Ensure there are not short circuits. Strip of a group of 5 wires from the main patch cable set and connect the to the Bluetooth module. Loop back and secure the cable with a cable tie. The unconnected transistor leg connects to the RX input on the Arduino Nano and the base resistor on the transistor connects to the RX enable line on the Arduino Nano.

Step 30: Install the Bluetooth Module...

Connect the Bluetooth module cables using the pin map guide in the previous steps. Remove the Arduino Nano and run the Bluetooth cable along the cavity, replace the Arduino to secure the cable in place.

Step 31: Attach the Head and Wire Up the Eyes, Mouth and Speaker...

Ensure that the servo motor spindle is centred before attaching the head, follow the pin map to connect the speaker and LED's.

Tips that worked for us:

  • We used a spare servo arm to place on the spindle, gently turning to each extreme to gauge and set the center point. It doesn't need to be precise as you can set of offset in the driver software to tune the center position.

Step 32: Attach the Arms...

Role the servo spindle backwards until it reaches its end-stop, then attach the arms using two 4mm screws. A magnetic screwdriver head will make it easier to guide the screws down the arm spindle.

Tips that worked for us:

  • We generally fix the arms so they are raised vertically upwards in the 'up' extreme.

Step 33: Build Done! Let's Test the Basic Functions...

Ensure the power switch is in the 'off' position. Insert 4 AA batteries into Timmy, any AA batteries will do, however we recommend to go green and use rechargeable ones. Place Timmy on a flat surface, or low pile carpet, then flip the power switch to 'on'. If all has gone well, then Timmy should spring to life and run through the test script loaded earlier.

If nothing happens, or things don't work out as they should, don't worry, just flip the power switch to the 'off' position. You will now need to 'debug' Timmy to help to work properly. He's probably just got a few of his wires crossed, so carefully check through the connections, a VCC (+5 volts) or a signal wire may have connected to a GND (0 volts) point, or visa versa. If you can see nothing wrong, then remove all wires from the Arduino Breakout I/O board, and then add them back, one sensor at a time, until you have them all connected and working.

Debugging, or problem solving, may take time, but it is a very useful skill to acquire.

Step 34: Setup and Test the Bluetooth Connection...

Open your computers Bluetooth and scan for the HC-06 Bluetooth module, there the connection PIN should be four zero's. You may choose to name your connection. View your Bluetooth devices and select properties, then select 'Hardware' in the properties window. Note down the COM port number for the Bluetooth module, in this case it's on COM32. For the purposes of the test, remove the USB cable from Timmy. And flip the power switch to 'on', wait for Timmy to go through his little forward and back 'dance' routine. Then open the Arduino IDE, select tools, the correct 'Port' number, then 'Serial Monitor'. When the Serial Monitor opens, select a 'baud' rate of 9600 and change 'no line ending' to 'Both NL & CR'. You should now see the screen scroll with sensor information Timmy is feeding back you you, play around with the sensors to see the screen output change. You can also send messages to Timmy, try typing a message to Timmy in the top window and press return to send.

Step 35: Congratulations! Your Creative Journey Has Just Begun!

You now have your very own Timmy humanoid robot to play with, to program, to customize, to use at home, to use in class, or for your university project. Let us know what you do with yours!

We will be uploading some standalone sample applications and driver software for different platforms, including Python, C/C++, ROS and Android.

Lastly, we wish you,

"Happy Learning. Happy Playing & Happy Experimenting!"

Design Now: 3D Design Contest 2016

Participated in the
Design Now: 3D Design Contest 2016