Spherebot Reloaded: Customize Your Xmas

Let’s create a plotter to decorate Christmas Tree balls with writing and drawings.

Christmas is coming you dusted off your xmas tree and decorated it: everybody try to make it different, buying new decorations and balls of different colors. Well, if you are looking for something original, think of making your personalized balls with drawings and writings at will.

Here comes this machine: a printer, or better to say a plotter, which will draw with a marker on spheres at will, derived from models transformed into G-code files. The machine is easily doable with a few 3D printable pieces (we’ll provide the relative models in a special Thingiverse page) and a control board which is the same of the 3Drag. A computer will be needed for the appropriate printing software.

A bit of history

The machine that we aim to realize is known in the internet world as Eggbot or Spherebot. The first (which takes its name from the fact that it was born to draw and write on eggs) is one is the famous creation of Evil Mad Scientist that also made​​ all the project opensource (see http://egg-bot.com/). The suggested control board (http://www.schmalzhaus.com/EBB/) is based on a Microchip microcontroller, thus many makers have striven trying to realize something similar based on Arduino, because, however good, the Microchip hardware can not rely on the same amount of information exchange and community. The result is a version of the printer that has taken the name of Spherebot and which substantially shares the mechanical structure of the EggBot but differs in the electronics.

Unfortunately, the documentation of this creation is quite fragmented, sometimes incomplete and often outdated: the firmware available did not work, for example, with the latest versions of the Arduino IDE. This is the reason that prompted us to review the entire project trying to create guidelines that would allow anyone to make their own Spherebot.

The printer are based on a system of ball grips that rotate the ball (egg) and on a servomotor mounted on a carriage that drives the pen: the servomotor lifts the pen when not required to write and lowers it when must draw; the gripping system relies on a kind of clamp that locks the ball by two rubber suckers and makes it rotate (by a stepper motor) at a constant speed, in synchronization with the pen movement. The pen is guided by a second stepper motor. To draw lettering and designs, the pen, once the servomotor has let it ​​descend until the tip touches the ball, moves laterally, while the gripping system rotates in one direction or another, so as to create the vertical line.

Our machine

The mechanics of the plotter that we propose is similar to that of the mentioned machines and consists of pieces made ​​with a 3D printer (you can find the models in a separate page of Thingverse, some threaded rods and a couple of ball bearings; in this page you will find the complete list of the parts that compose it.

Compared to the versions available on the Internet, our Spherebot shows a greater “printing area”, so we can also draw on Christmas balls with a bigger diameter of 6÷7 cm.

Software

As most of the numerical control machines also our Spherebot is able to manage the G-code. To pass them to the machine you must use a special software.

This software can be downloaded from Github, from the web page https://github.com/thunderbug1/Spherebot-Host-GUI, which has a convenient user interface. The software is very intuitive and also allows you to move all three engines to properly position the marker.

Obtain the Gcode file

To print the Christmas tree balls with our version of Spherebot, you need to turn your ideas into prints, is therefore necessary to go through a simple conversion software, that can transform into G-code your design or text.
Let’s start again with a completely free software: Inkscape. You can download it from http://inkscape.org/en. Inkscape is a vector drawing software based on Scalable Vector Graphics (SVG) format.
Inkscape can import different kind of files of various types and, thanks to a special extension, export our vector drawings in Gcode. This is achieved precisely by the plugin downloadable and available on the Github page https://github.com/martymcguire/inkscape-unicorn.

Installation is easy: just copy the files located in the SRC folder of the downloaded ZIP under Inkscape extensions folder, which by default is C:\Program Files\Inkscape\share\extensions; complete the procedure by restarting Inkscape.

Online you will find many tutorials to learn how to use Inkscape, here we will show you how to transform the writings in Gcode in order to be able to add them to your Christmas decorations. First of all you need to define a correct working area in order to realize if the word has the right size. To do this, from the File menu, choose Document Properties. Here you will find several standard formats available. Our Christmas ball is not exactly standard, hence we define a custom size, such as 10 cm x 5 cm (Fig.3).

Now, with the text tool (selectable with F8 key), type your text by selecting the character you like. In order to be correctly drawn the text should be rotated 180 degrees, thus select it with the tool Select and transforms objects (F1) and from the menu, Object click twice on the item Rotate 90 clockwise. Center the writing in the page and eventually resize it using the appropriate anchors (Fig.6).

Now we have to create the route that our marker must follow in order to create the writing. Pick the item from object to route from the Route menu (Fig.7).

Now there is nothing left than save in Gcode.

A will prompt you to define some parameters such as the speed of execution, the angle that defines the marker raised, lowered, and other parameters that we recommend to copy from the figures that we report (Fig.4 and Fig .5).

Electronics

Our Spherebot is made of two stepper motors and a servomotor; as mentioned, a motor serves to rotate the ball on the axis, while the second motor allows to move the marker around the circumference of the sphere. The servomotor is used to raise and lower the pen. To allow anyone to easily edit the software without the need for programmers or compilers a bit of Arduino would be ideal.

So that’s it! The 3Drag printer controlled make by us: in fact this control board is based on ATmega2560 (the same microcontroller of Arduino MEGA) and is able to drive up to 4 stepper motors.

We assemble, in this case, only 2 drivers and we use only the motors provided for the X and Y axes, the first to drive the ball rotation on the axis and the second to move the pen. To the servo instead we use the pins provided for the end-stop. In fact, these pins provide for male strip where you can attach easily to the servo connector.

The only change to be made ​​is to close the bridge that allows you to bring the 5V on the strip.

The firmware

Since the3Drag hardware is used to control a machine with a different function from that expected, it is clear that a specific firmware must be loaded into the ATmega 2560 . This will govern the two stepper-motor and the servo commander. Being an open source project, we had to write all the code, but it was enough to find someone who worked on it and make the changes.

However to let the sketch work with the latest Arduino IDE (version 1.0 above) we had to change it a bit.

The sketch deals directly with the two stepper motors and the servo according to the GCode commands received via the USB port. The combination of the three engines allows you to write on the ball without problems.

Chose the board, modify the sketch and you’ll only need to connect it to the USB port of the PC and upload the firmware.

[…] Spherebot would be a great way to design some unique Christmas Tree […]

Vote Up0Vote Down Reply

4 years ago

Guest

Nischi

hi,

really cool project.

>some threaded rods and a couple of ball bearings;
>in this page you will find the complete list of the parts that compose it

i will try to build it but where can i the mentioned BOM list?

thanks,
alex

Vote Up0Vote Down Reply

4 years ago

Guest

onkelgeorg

Hi,

where can I find the lengths of the threaded rods? Is there a BOm or a list of required parts for the mechanics? Which bearings have been used?

Thank you in advance.

Cheers,
Georg

Vote Up0Vote Down Reply

4 years ago

Guest

Davide Pernulla

hello
while I build with Arduino
during the test gives me error on line 75
softwareservo does not name a type
What can I do?…

Vote Up0Vote Down Reply

4 years ago

Guest

BorisLandoni

Have you included the right library?

Vote Up0Vote Down Reply

4 years ago

Guest

Steve Steiner

Where is the BoM?

Vote Up0Vote Down Reply

4 years ago

Guest

BorisLandoni

print the parts from thingverse

Vote Up0Vote Down Reply

4 years ago

Guest

Steve Steiner

I was really looking for the hardware materials list. Fortunately, another spherebot on Thingiverse has a fairly detailed list of hardware that I’ll adapt to be non-metric (as those are easier to find in the US).

I have Problems with my serial line. I get errors which ruin every longer print. Is there a chance you can enhance the SphereBot UI Sender to actually use the checksums and LineNumbers? I tried and it seems to work (havn’t implemented the resend) BUT after approx 300 lines the SphereBotUI.exe crashes…. I guess I FUBARed it whith my poking and converting QStrings to char* and whatever (I am a Python/PHP dev, no clue about cpp/QT) The interesting Part: QString tmp; char* cm; if(lineCounter <= lineMax) { tmp = QString ("N%1 ").arg(lineCounter+1); tmp.append(textfile.section("n",lineCounter,lineCounter)); if(tmp.contains("M01")) { if(ignoreFirstM01) { ignoreFirstM01 = false;… Read more »