The concept of the SphereBot (or Egg-Bot) is really neat and innovative. For those of you who do not know, the SphereBot is a device that uses ordinary pens (sharpies, Rose Art markers, etc.) to draw on round objects. These can be anything, from ping pong balls, to golf balls, and even eggs. Vector Drawings are made in the free, open-source drawing program Inkscape, and are sent to an Arduino over serial using an easy-to-install extension as g-code. The Arduino receives these instructions and controls two stepper motors via the two A4988 stepper motor controllers. The object is rotated by one stepper motor while the pen is controlled by the other, the up-and-down motion of which is facilitated by a servo motor. Despite being relatively simple, the SphereBot is a really cool device, and is really fun to build.
Ever since I first came across the original Egg-Bot by Evil Mad Scientist, I wanted my own. I considered buying their kit, however after seeing the exorbitant price they were charging for it, I realized that it may be best if I were to attempt to build my own. In doing so, I looked to several online sources: the Egg-Bot site itself, Pleasant Software's blog, this Instructable, this 3D-printed one, and this laser cut one. While each of these tutorials provide some information, alone they are each only a part of the puzzle, and one would not be able to go solely on one of those sources alone. It took me quite a while to piece these all together, and it was not an easy thing to do. Because I would never wish that experience upon anyone else, I decided to create this tutorial, so that those who wish to build their own SphereBot can do so easily without the need to either spend excess money on the kit or go through the pain of piecing multiple different tutorials together.
- the motor that rotates the sphere will be known as the sphere motor
- the motor that controls the pen will be known as the pen motor
- the short end piece that houses the sphere motor will be known as the headstock
- the short piece opposite the headstock will be known as the rearstock
- The long horizontal piece that houses the pen motor will be known as the rear slat
- the long horizontal piece opposite the back slat will be known as the front slat
Step 1: Materials
The electronics required are as follows:
- 2x 12-volt-200-step stepper motors (like this)
- 2x A4988 stepper motor controller (like these)
- 1x Arduino Uno (with matching USB cable and 12 volt wall adapter of at least 1.5 amps)
- 1x Arduino Protoshield
- 1x micro servo
- 1x servo wire extension
- 3/16" heat-shrink tubing (color is arbitrary)
- jumper wires
- 2x sets of 4-pin-long male and female header pins
- a 3-pin-long male header
- a 1-pin-long male header
- 1x 10 uf capacitor
The required hardware is as follows:
- 9x sets of #6-32 1/2" long bolts with matching nuts and washers
- 9x sets of #6-32 1/2" long bolts with matching nuts (no washers)
- 1x longer #6-32 bolt (around 1" in length) with matching nut
- 4x short M3 bolts (8 are recommended)
- 8x small wood screws
- 4x 1/2" x 1/2" x 2 and 1/2" metal brackets
- some thin sheet metal
- 2x suction cups from Nerf suction cup darts (pictured twice)
- ~20 cm of 5/16" brass rod
- 1x 8 mm bearing (like this)
- a 32 cm x 26 cm piece of .2" thick plywood (this is the absolute minimum size - larger is recommended)
- a 6 cm x 3 cm piece of 1/8" plywood [(this is the absolute minimum size - larger is recommended) not pictured]
- some thin plastic (I got mine from a mixed nuts container)
Step 2: Tools
The tools required for this project are fairly basic, and are as follows:
- wire stripper
- wire cutters
- heat gun (a lighter or the tip of a soldering iron will also suffice)
- small alum wrench (must fit the set screw of the bearing)
- one larger and one smaller screwdriver
- CA glue
- soldering iron (and solder)
- drill press (not pictured)
- laser cutter (obviously - not pictured)
Step 3: Optional Materials and Tools
If you wish to go overkill, as I did, then you can implement a cooling solution. Especially during longer plots, the stepper motors can get quite hot. Although this should not affect the device's performance in any way, it can be quite unpleasant to touch the motors while they are hot, as they can get hot enough to burn you, and I can attest to such. Enter these two stock Intel CPU coolers. They are very cheap, and can be sourced here. Additionally, you will also need a Dremel or similar rotary tool with a cutting bit, 5 additional #6-32 bolts with matching nuts that are at least 3.75 cm in length (this is the absolute bare minimum length, as it was very hard for me to use such short bolts. I recommend using bolts that are at least 1 cm longer), and two additional sets of 4-pin-long male headers. Of course, if you don't wish to go this route, then simply ignore any steps pertaining to the heatsinks.
Step 4: Laser Cut and Prepare Pieces
This step is fairly straight forward. Using the attached AutoCAD files, laser cut all the pieces out of their respective materials. Please note that the units are set to millimeters, so adjust your laser cutter settings accordingly. Once finished, sand them if desired. I apologize for the already constructed pieces on the left - I had already put them together before taking this picture.
A note about The attached files: Out of the four three of them are for the three different materials (.2" wood, 1/8" wood, and plastic). They have been "optimized" to take up as little space as possible, as well as having had all double lines removed and line weight set to 0. The fourth file, called "Master Design" has everything spread out for easy editing (something you will probably need to do unless you follow this tutorial exactly).
Step 5: Prepare the Heatsinks
The heatsinks are not usable right out of the box. First remove the original installation posts with a pair of wire cutters, and then use a rotary tool to cut off one of the legs of one of the fans and two opposite legs of the other. The fan with two remaining, opposite legs will cool the pen motor while the fan with three remaining legs will cool the sphere motor. Be careful as to which legs you cut off, as some models of the heatsink (there are three possible models you might receive if you use my Amazon link) have clips that hold the actual heatsink in place embedded in the legs.
Step 6: Install the First Set of Brackets
Using four sets of #6-32 bolts with matching nuts, screw two of the four brackets into the headstock.
Step 7: Drill Holes for the Heatsink
Once you have installed the brackets, you may notice that they cover up two of the holes meant for the heatsink. this was a design flaw on my part, and you are willing to change the design files to account for such. I was not able to access a laser cutter at this point in time, and so I decided to simply drill through the brackets. Make sure they are securely fashioned to the wood, as you would not want them slipping around while drilling. Then, using a drill press and a 3/16' bit, go through the existing hole and then drill into the bracket. This should create a hole in the bracket exactly where it to be in order to allow a bolt to pass through both the wood and the bracket.
Step 8: Install the Stepper Motors
Insert the stepper motors into the holes created for them in both the headstock and rear slat. The stepper motors should have a slightly protruding circle on their front, surrounding the motor shafts, which should fit snugly into the cutouts made for them. Then simply mass the M3 bolts through the holes made for them in the wood and screw them into the threads of the stepper motors.
Note: In this tutorial, you will see that I am only using two screw per motor. This is because I only had four M3 bolts on hand, however it is recommended that you use a total of eight M3 bolts, four per motor.
Step 9: Add the Heatsinks
Send the longer M3 bolts through the remaining holes of the plastic heatsink mount (the ones you didn't cut off) and through their respective holes in the wood. The sphere motor heatsink has three holes made specially for it while the bolts for the pen motor heatsink simply go through the very end of the top groove. Make sure all the bolts are tightened evenly, so that the flat surface of the back motor is entirely parallel to and pressing against the flat part of the heatsink. Although not mentioned earlier, at this point one could opt to use thermal pads or thermal paste, to even better conduct the heat away from the motors, however such is unnecessary as a solid metal-to-metal contact should suffice.
Step 10: Install the Second Set of Brackets
This is the same procedure as step 6, however for the rearstock. Unlike step 6, the orientation of the rearstock matter, as it will affect the later mounting of the Arduino. On the rearstock, you should see four small holes, with two of them being closer together than the others. With the piece oriented with the closer together holes on your left, mount the brackets on the side facing away from you, as shown in the pictures.
Step 11: Mount the Bearing
Place the bearing into the hole created for it on the rearstock, with the screw holes on the same side as the brackets, and secure it using two #6-32 bolts with matching nuts.
Step 12: Cut the Brass Tube to Size
Cut the 5/16" brass tubing into four pieces, one of each of the following measurements:
- 6 cm
- 7 cm
- 3 cm
- .8 cm
I apologize for not having pictures of the two smaller measurements of tubing, as I had accidentally assembled the piece shown before taking pictures.
Step 13: Construct the Pen Arm Holder
Again, I apologize for the fact that this piece was already constructed before taking pictures, but hopefully you can see how this was put together. The two pieces that were cut out of the 1/8' plywood are glues together, with the center of the hexagonal cutout aligned with that of the circular cutout. Then, one of the #6-32 nuts is superglued into the hexagon cutout, while the .8 cm long section of brass tubing is glued into the circle cutout opposite that. The 3 cm long brass tube is then sent through the middle hole, and glued so that the longer end, which should be approximately 1.5 cm long*, is on the same side the shorter tube protrudes from.
*This length was determined by placing the tube over the pen motor's motor shaft, sliding the wooden circle over the tube, and gluing it in place so that it was as close to the wood of the rear slat as possible without touching it.
Step 14: Measure and Cut the Heat-shrink
The 5/16" brass tube's inner diameter is slightly larger than the motor shafts. Because of this, that space needs to be filled up by something, so that the tubing can fit snugly over the motor shaft while still remaining centered. Two layers of 3/16" heat-shrink works very well for this, so well in fact that it creates a fit tight enough that gluing is unnecessary (you can still glue the tube in place if you like), but not so tight that you can't easily take the tubing on and off if necessary. Measure and cut four pieces of heat-shrink (two for each motor), each as long as the motor shafts.
Step 15: Shrink the Heat-shrink
Using whatever tool you may have on hand (heat gun, lighter, soldering iron), shrink the first layer of heat-shrink onto the motor shafts first, followed by the second layer.
Step 16: Install the Pen Arm Holder and Sphere Rotator
Now simply press the pen arm holder and the 6 cm section of tubing over the heat-shrinked motor shafts.
Optional: using an exacto knife, cut of any excess heat-shrink that may be protruding from the tube of the pen arm holder.
Step 17: Screw in the Second Half of the Sphere Rotator
Using a compatible alum wrench, screw the set screws into the 7 cm piece of brass tubing, as shown.
Step 18: Add the Suction Cups
Press the Nerf dart suction cups into the brass tubes.
Step 19: Build the Pen Arm
I apologize for not photographing this part mid-build, but hopefully you can tell what I did from the pictures. Start by gluing in the small piece with the two holes in its slot at a 90-degree angle. Make sure that, when the overhang is facing you, the servo flap is also on the right side. Then glue the servo in, with one of its flaps going into the groove and the side with wire protruding facing outward. Then install the servo horn so that when the servo is at 90 degrees it is facing straight up. This will raise and lower the pen.
Step 20: Put the Pen Holder Together
This is another step where I forgot to take pictures, but you should be able to understand the construction of the pen holder from the pictures. Start by gluing a #6-32 nut into the slot made for it, its two opposing flat ends against the wood and its hole centered with the slot parallel to the one it is sitting in. Then cut a piece of sheet metal that is as wide as the wood (.2") and at least 14 cm long with scissors (or a laser cutter, for that matter). Then, in the center of this piece, drill a hole large enough to allow a #6-32 bolt to easily pass through it (9/64"). Centering that hole with the lengthwise slot, glue the metal strip onto the two short ends surrounding the lengthwise slot. Then fold the strip over the corners and glue it down all along the two parallel long edges. At the opposite end, trim any extra material away with scissors. The purpose of this metal strip is to prevent the wood from cracking or breaking when under stress from tightening a pen into place.
Step 21: Connect the Two Together
Take the plastic piece you cut and using four of the eight small wood screws, first screw one end into the pen holder and then the other into the rest of the pen arm.
Step 22: Connect the Pen Arm
Although in the pictures you see the completed frame, it is actually probably best to do this step now, before such things have been done. Slide the grove of the pen arm over the two tubes of the pen arm holder, and using a #6-32 bolt with matching nut, tighten the pen arm into place as shown in the pictures. As you will see later, moving the pen arm up and down is important for drawing on different size objects. For now, tho the exact positioning of the arm is arbitrary, so tighten it down at any point along the grove. Then connect the servo extension cable to the servo's wire.
Step 23: Construct the Arduino Shield
This is another piece I failed to photograph, however it is pretty straightforward. Using the attached schematic, solder the components together on the protoshield, using my layout or your own. One thing to note is the power header I created. As you can see from the schematic, the stepper motors need their own separate 12 volt power supply. Rather than using a completely separate power jack, I decided to "tap into" the existing one on the Arduino, and simple routed a jumper wire (with a female header on the end) around from the positive lead of the power jack to a male header on the protoshield. Once you have created the shield, test fit it on the Arduino as shown.
Step 24: Install the Arduino
Now take the shield off the arduino and using the four remaining wood screws, screw it into the rearstock as shown. With the brackets facing away from you, make sure the USB port of the Arduino is facing to the right. Then reconnect the shield to the Arduino and plug in the power header.
Step 25: Assemble the Frame
The assembly of the frame is pretty simply, and just involves sending the remaining #6-32 bolts with matching nuts and this time washers through the grooves on the two slats and into the brackets on the head and rear stocks. I recommend installing the front slat before the rear one, as this makes the assembly much easier. As you probably know by now, the grooves in the two slats are used for adjusting the devices for differently-sized objects. you can do this setup later, and for now the distance between the two stocks is arbitrary.
Step 26: Connect the Wires and Cable Management
Once the frame has been assembled, you can connect all the wires to their respective places on the shield. The exact way you cable manage is up to you, but for reference you can see how I decided to do it in the pictures.
Step 27: Arduino Firmware, Software, and Setup
This is where I had the most trouble, trying to find one software solution from all the different tutorials. Luckily, I was able to find one, however it was from my own searching, not any of the other sources I used. Here are the steps for downloading and installing all the necessary software components:
- Download and install inkscape (from here)
- Download and install the Egg-Bot extension (as detailed on their Egg-Bot wiki)
- Download and install the Arduino firmware. On this page, the creator, cocktailyogi explains how you must disable auto-reset on the arduino. This is done in the circuit you created by connecting the reset pin on the arduino to ground via a 10 uf capacitor. With this in place, however, you cannot upload code to the arduino, so you must take the shield off of the arduino, upload the code, and then put it back on. Make sure to also follow the steps detailed for editing the eggbot extension, using a program such as wordpad to find and replace the things detailed on the Github page.
The process for setting up and using this spherebot is nearly identical to that of the original Egg-Bot, so rather than saying those things myself, I will simply refer you to Evil Mad Scientist's page on that. As you will see, everything is not completely identical, but you should be able to easily adapt those instructions to this SphereBot. Also, to use this, you must first power it up with 12 volt power adapter, of at least 1.5 amps and then plug the Arduino into your computer with a USB cable.
Step 28: Final Photos
So there it is. You now should have a fully-functioning SphereBot, and hopefully you didn't have to go through too much trouble to figure out how to build it. I will leave you with these final pictures of the completed device (I apologize for the state of the ping pog ball, it was a test, and I had done many previous test drawings on it). Please leave any questions or possible improvements in the comments.