Introduction: Samus Morphball (Arduino)

This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (

Before you start: This project will cost approximately $80-$100 to replicate from scratch(Not including tools).

Bill of Materials:

2x Continuous rotation servos: $24

1x Arduino uno: ~5.00 - 20.00

1x Arduino Nano: ~3.00

1x 1kg PLA Plastic spool: ~13.00 - 22.00

1x 1kg PETG Plastic spool: ~17.00-25.00

1x 22 AWG wire: ~6.00

1x perf board: ~1.99

2x nrf radio: ~1.99

16x RGB led: ~1.50

orange spray paint: $13

clear spray paint finish: $12

InstaMorph moldable plastic: $10-20

Solar USB charger: ~$4-15

Step 1: Print the Models

Each of the prints were made using Repetier-Host with the attached settings. If you have working settings for a current printer, i would say to use those over mine, but if you are new, here is a place to start.

The outer shell pieces were printed in PLA with a brim at a quality of .2mm layer height, no supports, a medium speed and an 80% infill. These were originally made by this talented maker, but were modified to work in this project. (Highly recommended to use a much lower infill to no infill if possible). Total time of ~32hrs

The inner shells were printed in PETG, quality of .2mm layer height, brim, no supports, low speed, and 80% infill. (Experiment with the nozzle size and layer height, as many of the articles i have read say that PETG becomes more transparent as the layer height increases). Total time ~26 hrs

All other pieces were printed in PLA, 60% infill, medium speed and other settings remained constant.

Step 2: Remote

1) Wire up the arduino nano as the schematic depicts (attach on perf board and solder connections making sure to use as little space as possible and not wiring over sides).

1.5)(Optional but recommended) Solder a wire to the end of the antenna on the nrf radio for extra range.

2) Trim board to dimensions ~26mm x 55mm or smaller.

3) Attach 9v battery clip power to Vin pin and Ground to Gnd (not shown on image).

4) If your joystick module top is not flexible, insert it first then slide the circuit board in followed by the joystick module.

Additional Steps) A thin piece of plastic or popsicle stick can be placed in between the circuit board and the joystick if it bobs up and down. A small piece of foam inside the front of the remote can hold the joystick in place if it has forward/backward movement.

Step 3: Robotic Insides

Double check that the circuit works as intended before and after soldering everything together

1) Feed rods (5.25mm diameter ~50mm long) through spheres (20mm diameter).

2) Bend rods (6.5mm diameter ~20cm long) in small circle at end to fit smaller rods and hot glue/weld into place.

3) Bend larger rods from the front in at 20mm at ~80 degree angle, out 15mm further from last, through the holes on the (body2.0) print and hot glue. 66mm past the back of the print should be bent out by 30 degrees and in 30 degrees 17mm after that. Secure the second spherical wheel to the back with hot glue.

4) Place the motors in the (body2.0) print horizontally and feed wires out the rectangular holes. Fasten in place with screws (holes fit 6mm diameter screws).

4.5) Tape is optional for keeping together, but my print kept breaking, so that is why it is there.

5) Glue the (btr) print to the top of the (body2.0) print and insert lithium battery.

6) Stick arduino on top of the battery with double sided tape or hot glue.

7) Bend LED pins as pictures depict and solder like pins together. Surround pins with an insulator such as electrical tape to prevent any shorting.

8) Solder components onto perf board and attach to pins on arduino. Attach red wire from USB to 5v and black wire to Gnd(Not shown in pic).

9) Compact wires together and secure with twist ties or wires to base.

10) Bend back rod to an arc.

11) The wheels that come with the motors were surrounded with a hose that came out of a washing machine, however wide rubber bands will also suffice, as long as the wheels have a lot of friction.

12) A hole was drilled through the bottom (~17mm from the front) and a screw holds a chunk of metal as a weight.

Step 4: Shell

1) After print is finished, a heat gun can be used to smooth out the outer shell (don't stay on a focused point too long or the plastic can deform around the 3 main parts. spend very little time around the small pieces or those can separate).

2) Sand with a medium grit sandpaper and increase until satisfied with quality (Repeat heat treatment and sanding to make smoother and shinier).

3) Go to a ventilated area and spray the first coat of orange spray paint, let dry and sand with a high grit sandpaper. Spray second colored coat and allow it to dry.

4) Top it off with a clear coat or two to protect it from scratches and chipping.

5) The inner shells can be sanded and heat treated, but tend to warp with high temperatures. I found that a clear resin coat will resolve a little bit of the clarity issues.

6) Place the outer shell onto the inner shell and make small marks where it needs to lie horizontally with the surface. Remove the shells and use epoxy or hot glue to secure them together.

Step 5: Finishing Touches

The InstaMorph may be something you notice hasn't been touched. That is for holding it all together.

Get a generous amount of the beads and either use a heat gun to melt them or throw them in some hot water until they turn clear.

Stretch into a long cylinder and wrap around PETG center of the ball.

Begin to spread out the cylinder until the entire surface is covered. Let the InstaMorph cool and turn white again.

To open the cylinder for the first time, use a small screwdriver or the such and peel back the InstaMorph from the PETG on ONE of the sides.

Any time you need to open the Morphball, grab the edge of each outer shell and pry apart. PETG is highly durable and should be able to withstand bending. Occasionally, it can be difficult to assemble, so it is useful to carry a small screwdriver to bend back the InstaMorph and then fit it together.

Step 6: Troubleshooting

1) Arduino isn't turning on: Battery could be wired in incorrectly or needs to be charged via a micro USB cable.

2) Radio isn't sending/receiving messages: Make sure that they are hooked up correctly. Different boards may require slightly different wiring. Check out this tutorial. An antenna connected to the radio(s) can increase range and increase performance.

3) Ball isn't spinning in any direction but forward and backward: More weight on the bottom of the robot or wheels with more friction tend to increase successful spinning. Model may also have an ellipsoid shape rather than spherical due to printer problems, heat treatment warping, sanding, etc.

4) One or both motors turn without joystick input when remote is on: If it is a slow turn, either modify or comment out lines 22,23 in the remote portion of the code. A fast turn may indicate the potentiometer on the motors isn't calibrated or the motor values are different. Full speed CCW for the motors I use is 0, while no movement is 90, and 180 is full speed CW.

5) The ball is extremely difficult to control: Yes, it is.