Sphere-O-Bot (eggbot MOD)

by jjrobots, published

Sphere-O-Bot (eggbot MOD) by jjrobots Aug 4, 2016
21 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

67875Views 8593Downloads Found in Interactive Art


The Sphere-O-bot is an open source hardware+software project. Originally from Evil Mad Scientist (very cool robots), we have adapted the idea to our electronics and ancillary elements. Software, designs and use is exactly the same.
The frame was designed by Attila Nagy (Thingiverse nick: dibloff)

The list of parts to print:
1x Spring holder
1x MAIN_frame (with support)
1x Egg support
1x Pen holder
2x Axis support
1x vertical ARM
1x Rod spacer

The Electronics are OPEN SOURCE (feel free to replicate it if you want)

You can also buy everything (customizable KIT): here
or create all the jjRobots with the MOST AWESOME ROBOTICS KIT

How to set it up?

Take a look to this link: http://jjrobots.com/sphere-o-bot-assembly-and-user-guide/


Print Settings

Printer Brand:



Ultimaker 2










PLA works nicely.


How I Designed This

What you need to create this painting robot

2x 623 bearing
1x Threaded steel rod (3mmØ,80mm length)
1x compression spring (4,5mmØ, 10 mm length)
2x 1.8deg HIGH QUALITY NEMA 17 Stepper motors (40mm length) (4.4Kg/cm torque)
Motor cables (14+70 cms long)

1x SG90 servo
1x Arduino Leonardo compatible
1x jjRobots Brain Shield
2x A4988 Stepper motor drivers
1x Power supply 12v/2A
6mm M3 bolts
12mm M3 bolts
M3 nuts
2x 20mm Suction Cups
1x M3 wing nut


cable wrap (optional but makes everything look prettier..)

You can also buy the Sphere-O-Bot robot KIT (motors, electronics and ancillary elements) here:

Custom Section

Iboardbot, B-robot EVO...all the JJrobots

If you have created a B-robot EVO or the iBoardbot, you already have the electronics and almost all the ancillary elements to create your Sphere-O-bott! (yes, we have used the same items to create this drawing bot).
Take a look to the B-robot EVO, the iBoardbot and...THE MOST AWESOME ROBOTICS KIT

More from Interactive Art

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App
May 31, 2017 - Modified May 31, 2017

Hi jjrobots,
I really want to make one of these. Ive been trying to buy a complete kit from your site but its not working.
Do you sell them elsewhere?

Hi s34n!
This is the link to get the KIT: http://www.jjrobots.com/product/sphere-o-bot/ It is only available in jjrobots (for now)
Are you having problems placing the order? Let us know at: [email protected] ;-) (send us the list of items to get and a delivery address)

I have built the sphere-o-bot and everything looks ok. I have downloaded Inkscape to my laptop but cannot see the eggbot extension. I have reloaded Inkscape v91 but it is still not there. I am running windows 10 in 64 bit mode. Can anyone help?

HI John!
Take a look to this thread: http://forums.jjrobots.com/thread-1199.html It may help :-)

hi is there anyway to use a MKS Base V1.4 for the electronics? i got a spare one and i have nothing to do with it

Apr 25, 2017 - Modified Apr 26, 2017

In the third photo where we can see the assembled Bot, the vertical arm has a nut and bolt to secure to the stepper shaft, but the published version lacks these. I have round motor shafts and this additional locking mechanism is needed. can you please post that version as well?
Thanks !

I am done building.
Firmware uploaded.
I can't get the inkscape to work.
In setup I get the following error:

Traceback (most recent call last):
File "eggbot.py", line 1406, in
File "C:\Program Files\Inkscape\share\extensions\inkex.py", line 283, in affect
File "eggbot.py", line 314, in effect
File "eggbot.py", line 1299, in EggbotOpenSerial
self.serialPort = self.getSerialPort()
File "eggbot.py", line 1356, in getSerialPort
for strComPort in eggbot_scan.findEiBotBoards():
File "C:\Program Files\Inkscape\share\extensions\eggbot_scanwin32.py", line 6, in findEiBotBoards
hKey = _winreg.OpenKey( hReg, r"SYSTEM\CurrentControlSet\Enum\USB\VID_04D8&PID_FD92" )
WindowsError: [Error 2] The system cannot find the file specified

What have I missed?

take a look to this troubleshooting we have created: http://forums.jjrobots.com/thread-1199.html

Perhaps I'm missing something but it appears that when you select "Start with pen centered" in options that the plot starts and the pen drops down it then moves to the starting point. Making a big line on the blank canvas? I'm thinking I need to patch the routine in the python script to not drop the pen until after the starting move, but wondered if I'm the only one seeing this issue?

You can swap the values in the EGGBOT extension->SETUP: "Pen up position" and "Pen Down position"

I guess I don't entirely understand what swapping those values buys me? If I swap them the pen is then down when it should be up and vice versa. I suppose I could invert the servo, but does this fix my problem?

I get a error message trying to image the board that I have it is a EiBit Board v2.3, I think that is Leonardo compatible. Using Arduino 1.6.1 and 1.8 and neither work. I have the right port and com and teh baud is 115200. This is a major pain. Anyone have any advice or even a file for an orb bot that I can sue to make this thing work?

will 608 bearings work instead of the 623 bearings listed?

Could work, but you would need to change the diameter of the axis (to 8mm), suction cups, nuts and re-modelling the 3D parts

I am making one now using an existing Arduino Mega 2560 and and Ramp 1.4 Shield. My problem is uploading the firmware. I get this error when compiling:
Helper_Functions.ino: In function 'void storePenUpPosInEE()':
Helper_Functions:26: error: 'eeprom_update_word' was not declared in this scope
Helper_Functions.ino: In function 'void storePenDownPosInEE()':
Helper_Functions:30: error: 'eeprom_update_word' was not declared in this scope

Can this be fixed and if so how, or do I need to use the Arduino Leonnardo?

Nice work.

FYI I was able to compile the firmware recommended directly via Arduino 1.8.1 after selecting the 2560 board as the target. No errors, but you do have to edit pin configs. See my make for my notes.

Thanks, I ordered the Leonardo board so I won't need to fool around with the pins.

We have adapted the code to work with the Arduino Leonardo. It could work on an Arduino Mega, but it will need modifications.

I ordered a Leonardo from jjrobots.

JJers! thanks for porting this robot (and for the support, I am not the best assembling things :-P) I will go for another of your kits soon!

Comments deleted.
Mar 29, 2017 - Modified Mar 29, 2017

Awesome robot! We are having a lot of fun painting eggs and placing names on them. :-D I strongly recommend the Sharpie pens (they are cheap and reliable)

Comments deleted.
Mar 25, 2017 - Modified Mar 25, 2017

Went to assemble my kit today. Suggested improvements:
1/ Standard egg holder: make the D-shaped hole 7mm (currently 6mm) because 6mm is too small to fit the 7.5mm spigot on the suction cups being shipped currently

2/ Standard egg holder: reduce the width of the slot to better match 5.4mm across flats of the M3 nut. The slot is 6.2mm or more, and allows the nut to rotate. (the slot on the long egg holder is better, around 6mm, although the sucker hole is only 4.8, way too small for the suckers supplied)

3/ Egg holders: would be better with a D-shaped hole to match the motor shaft

4/ The "separation ring" show in the assembly instructions is missing. This is an important part since it needs to touch only on the inner race to the bearing, otherwise there's no point having a bearing.

4/ the frame size is too small for me to fit a standard 70gm egg, even with the short/standard egg holder and the spring fully compressed.

Designing a new egg holder to print now....I'll post the file if it works out for me

Mar 25, 2017 - Modified Mar 25, 2017
jjrobots - in reply to effgee

Hi Effgee!
1) There is a egg holder for the large suction cups (and : (eggsupport[V2]_larger_suction_cups): http://www.thingiverse.com/download:3466219
2) Check the "eggsupport[V2_larger_suction_cups" model, it has a 5,6 mm hole (0,2 mm tolerance for "not so good" 3D printers)
3) Leaving the holder like this (with a bolt to fix it) allows you to centre the egg better. A fitted support will not let you do that easily.
4) The spacer is this one: http://www.thingiverse.com/download:2614479 (Rod_spacer)
5) Check the "egg_support holder SHORT" stl model. Thanks for the feedback! (really)

Mar 25, 2017 - Modified Mar 25, 2017
effgee - in reply to jjrobots

thanks. I already printed my own design, and it fits fine, a little tight on the shaft so I'll edit that (once I get the whole thing working) before posting it.

I forgot to mention my vertical_arm_V2.stl failed on first build, because I didn't see the Up! software flagged a fault that needed fixing, a double surface near one end of the model I suspect. Printed OK after I pressed 'fix model'.

Now I just need to get Inkscape working. I've got the extension (v2.7) installed with inkscape v0.92 , but it gives an error when I try to test pen up:

Inkscape has received additional data from the script executed. The script did not return an error, but this may indicate the results will not be as expected.

Traceback (most recent call last):
File "eggbot.py", line 1406, in
File "C:\Program Files\Inkscape\share\extensions\inkex.py", line 283, in affect
File "eggbot.py", line 318, in effect
File "eggbot.py", line 1299, in EggbotOpenSerial
self.serialPort = self.getSerialPort()
File "eggbot.py", line 1356, in getSerialPort
for strComPort in eggbot_scan.findEiBotBoards():
File "C:\Program Files\Inkscape\share\extensions\eggbot_scanwin32.py", line 6, in findEiBotBoards
hKey = _winreg.OpenKey( hReg, r"SYSTEM\CurrentControlSet\Enum\USB\VID_04D8&PID_FD92" )
WindowsError: [Error 2] The system cannot find the file specified

Do I need to tell it the serial port number somehow ?

If you have problems connecting the Eggbot, check this list of things we have created:

Mar 25, 2017 - Modified Mar 25, 2017
effgee - in reply to jjrobots

thanks. After resetting the port number from com66 to com2, and power cycling the arduino, I can successfully send the manual command to move one motor, and both motors are powered.

But I still get the same error number. When I search the registry manually, I can't find that USB id VID_04D8&PID_FD92

I've uninstalled Inkscape 0.92 and installed 0.91, plus the recommended extension v2.4.0 (even though they're not the latest). I suspect I need un in-install/re-install either the extension or the USB driver, but they don't appear on the uninstall list in control panel as far as I can see

[edit] Actually, another checkpoint for your list is "make sure the Arduino serial monitor is closed when trying to contol from Inkscape", since otherwise the Arduino serial monitor will tie up the serial port.

[edit2] well, I've got the manual moves working, so I assume I'm on the home straight now. Thanks for all the support. The checklist was a great help; the modified eggbot.py file seemed to be the final thing (plus shutting the Adruino serial monitor embarrassed smiley). I guess I can go back and see if I really need to run Inkscape as admin, etc.

[edit3] definitely all good now, printed the example file "this egg was laid by a chicken...". There is too much slop in the pen axis, due to a number of reasons (no screw to clamp to the motor shaft, plus excess clearance in the hinge bores) which will be easy enough to fix by printing a new vertical arm. Thanks again. I'll upload new stl a little later after I've tested and refined them. For optimum pen axis accuracy I suspect printing the hinge holes undersize then drilling to 3.0 will be best. I may even change the pin size to suit something I've pulled off an old inkjet printer.

Mar 24, 2017 - Modified Mar 24, 2017

I have almost everything needed accept the threaded rod and the Brain, but i do have a CNC Shield Expansion Board and 4 stepper drivers. not sure shipping from EU to the US would get here in time but i'm thinking getting this to work with the shield i have shouldn't be too complicated.
I also think i have a HiLetgo L293D Motor Driver Board with 2 stepper drivers and 2 servo ports as well. anyone built one of these with different electronics?

I tried to use a CNC Shield but the stepper motor configuration was set by default to 1/4 and that made my robot useless. Which CNC shield are you planning to use?

Well I dug around what I have and I do have one of these after all HiLetgo L293D Motor Driver Board for Arduino Motor Expansion Board Arduino Shield. I bought it to build a x/y plotter but haven't gotten around to it yet. Thinking my boys would love doing easter eggs with this thing.

Hi. Building the new one for the Easter right now :)
Already printed all parts and assembling electronics with ESP NodeMCU 2.0. Looks good.

While knowing about step motors and see your source code I have a question.
Are you using full-step or other stepping ? I am connecting A4988 directly to ESP so cannt know if MS1, MS2, MS3 are connected anyware or left free (LOW = means full step is used).

Thanks, great project, hope to post is asap with pictures.


Great design!

I printed one, but i have some problems with the electronics...the pen stepper moves only in one direction?

Mar 14, 2017 - Modified Mar 14, 2017
jjrobots - in reply to RonnyLULU

Thanks! The Sphere-o-bot should work properly, maybe a cable connection problem. Email us at [email protected]

That's my star pantograph! EEEEE! :D (I'm so easily amused)

Yes, it is! :-D Great designs SnoBahr! We are following you now. We have used the Star Pantograph as the first serious/complicated design to test the robot: https://goo.gl/QGkjmc

I see there's a new main frame part. How is it different than the old one?

It needs a little bit less plastic ;-)

I can't tell from the stl file directly, but when I print the new version, it looks like the outside hole for the axis support is smaller than the inside hole. I can get the axis support to fit on the inside with a little sanding, but not at all on the outside. Can you check the cad file?
Maybe it's the way I did the supports or something about how it printed.

mhh....It is (should be) the same diameter. Made using a "through hole" command, so it should keep the same size. Thank you for this anyway Tim! ;-)

I think the issue I'm having is related to the axial features. They reduce the effective ID for the outer rod support, but don't go all the way to the inside edge, so the effective ID for the inner rod support looks larger.

Hi Tim,
Check the MAIN FRAME Version 2 we have re-uploaded. ;-)

Looks good. I'll be printing shortly.

Having problem to print the pen holder witS3D, the hole for the pen holder is closed. Can you please check.
Thanks in advance!

Yep same issue here S3D bridges the holes for the pen holder and nut.
It looks fine on the screen but after slicing it feels the need to place bridging through the nut and pen holes :(
Hoping someone can upload a repaired file that works with S3D..

Check the new version of the pen holder [v3] (tested with S3D) :-D

We have been tested the parts with Cura and slicer without problems. I recommend you (if you can) to use those slicers as we check the S3D

Comments deleted.

How does one create multi-color drawings with the electronics you provide? I purchased your kit, assembled everything, and the device works very well, except that I don't find a way to pause and change pen color, and then resume drawing with the new color. Because of this, I'm unable to draw using layers (multiple colors).

Am I missing something?

We will add the feature as soon as possible (to use the button currently present on the Brain Shield).In the meantime, what we do is: separate the drawing into several layers and change the pen between before drawing the new one. There is info here: http://wiki.evilmadscientist.com/Eggbot_Control (LAYERS)

Thanks, that will work!

Hi, great kit!
just ordered it. Is there any chanse I could optain the CAD files of the main_frame? I would like to make a minor change to make it easyer to print.

Thanks in advance!

Send us an email to [email protected]

Good on you @jjrobots

Open source for the win. :)

Any chance you can post the egg holder about 1.15 CM taller? This should center the build on a ping pong ball instead of an egg.

We have created another holder, suitable for smaller spheres. It is called "largeaxisJJ.stl"

Comments deleted.

Where did you get the suction cups?

Hi, Awesome project!!!

I'm printing this now to make for the weekend for my daughters birthday, unfortunately I don't have the same bearings and m3 rod, instead I have m5 rod and some bearings that will fit. I expect I will be able to make modified parts and perhaps upload them - any clues why m3 was chosen?

Also I am going to use a Ramps 1.4 board and Arduino Mega - this is going to be the biggest challenge away from the specified electronics, any tips would be much appreciated, I figured I can just upload the firmware to a Mega and change the pins in software around to match 2 stepper drivers and however it sends the CNC data (SD card or serial?) - I'm gonna be sweet right =P

Cool project! If you happen to be a teacher, make one of these! Buy 144 ping pong balls on amazon, put a kid's name on it and let them keep it. They will love your class!

Could you please check/fix the egg_support.stl? I can't get a good slicing with Slic3r and don't manage to repair the STL. Other models also have problems but none so crucial.
I'd be grateful if you could check/repair egg_support.stl.

All the models have been 100% tested and printed with CURA. We will take a look to SLIC3R and that problem (almost every software "slice" the 3D models differently...)

This is how it looks like in Slic3r:

This is how it looks in Windows STL viewer:
You can clearly see broken meshes.

I've tried repairing the model in a couple of different ways, unfortunately without luck.

Try again with the new EGG SUPPORT model (or the ALTERNATIVE model) . Checked with CURA and other slicer software packages ;-)

Thank you very much, the new egg_support file worked fine with Slic3r.

Stratasys insight. I see errors (surface covering a hole) when I import the STL file into Cimatron or solidworks.

Cura and SLIC3R can print them without problems. Please check the PEN HOLDER again (v3) we have used the MAKEITPRINTABLE APP on it.

A couple of the STL files have errors. The pen holder has a surface that covers the hole that the screw goes through in the front. Could you please take a look at the STL files and fix them? I ordered 2 of your electronics kits recently and hope to receive them soon.

Which slicer software package are you using?

fun for easter.
but nothing more.
still some design inprovments possible though (room for a nicely hidden arduino)

Halloween, Christmas, Thanksgiving... We've used it to print on several gross (qty) ping pong balls to prank the MC at an annual show we do... custom lottery/bingo balls... I gifted a local golf pro with personalized balls... Or just draw on hard boiled eggs for your kids' lunches. What a small imagination you have. I hope this helps.

Nothing more? What a comment... You can have fun with it painting a ball for your dog, light bulbs, any spherical object...
As it is Open, please fell free to improve it yourself.

actually egg bots can print on any spherical object that is placed in them. So not just for easter.

your firmware is not working... can't compile it

Sep 1, 2016 - Modified Sep 2, 2016
jjrobots - in reply to makerslabcz

Are you selecting "arduino Leonardo" in the Arduino IDE 1.65 ? and installed the libraries? Could you provide more info?

Hello jjrobots:

Great job
Why the piece "Rod Spacer" is so big and where it is placed?

Thanks and regards

It is no so big. Actually, it is quite small!. It works as a "separator ring" between the ball bearing and the wingnut. Take a look to this: http://jjrobots.com/sphere-o-bot-assembly-and-user-guide/

Hi! I have some different stepper motors "laying around". So it would be nice if you could upload the files in editable format so I could adapt the model to my stepper models.
Thanks and kind regards!

Something seems amiss with the axis support part in S3D.

Try again, it should be printable now for S3D: We have used the MAKEITPRINTABLE App.

Aug 9, 2016 - Modified Aug 9, 2016
Slobberknocker - in reply to tjhawkey

Im having the same issues(but with the pen holder). Keeps crashing both S3D and slic3r.

Nice version of the eggbot. I wish someone would come up with a version that only uses servos. I feel like the stepper motors are such overkill...

The problem with the servos is their lack of accuracy. You could use 360º servos but the steps taken by the servos would be too long to draw precisely.