As Easter approaches, I thought building a Sphere-O-Bot (EggBot) would be a fun a STEM related project for the season. I 3D printed the parts for the Sphere-O-Bot, a variant of the original EggBot by Evil Mad Science, and purchased the hardware kit from JJ Robots.
Printing and assembling the EggBot was simple. Getting it to run properly was not (more on that down below).
3D Printing Sphere-O-Bot
I used Fillamentum’s Vertigo Galaxy and Sky Blue for the printed parts.
Assembling Sphere-O-Bot
Assembling the EggBot was pretty straight forward. I purchased the hardware kit from JJ Robots. I might have been able to save a little money sourcing my own parts, but opted for the simplicity of having that work done already. I followed JJ Robot’s online assembly instructions.
If you want to see a few more photos on assembling the drawing bot hop over to my crafty blog, Handmade with Ashley.
Troubleshooting Sphere-O-Bot / EggBot
The main focus of this blog post is sharing my troubleshooting process and what steps I had to take to get the EggBot communicating properly with Inkscape.
EggBot Extension not showing in Inkscape Extensions Submenu
This was a user error that had stumped me briefly. I made a poor assumption about where to save the EggBot files and wasted time in the process.
If you aren’t sure, open the Preferences window in Inkscape. Navigate to the System node in the Tree View and observe the directory path under Inkscape extensions.
Unable to find EggBot on any Serial Port 🙁 error message
After I verified I could communicate with the EggBot via Arduino’s serial monitor, I tried communicating with it via Inkscape and failed.
Two things ultimately resolved this error:
- Hardcoding the Arduino board’s hardware ID in eggbot_scanwin32.py
- Installing 32-bit Inkscape
Hardcoding the Arduino board’s hardware ID
Hardcoding the hardware ID is an idea I got after a bunch of googling on the issue. Two Github issues on the error that I found helpful are:
I modified the line that initialized hKey
in eggbot_scanwin32.findEiBotBoards()
to include a direct reference to the hardware ID I copied from the Device Manager for the Arduino board.
Not sure where to find the Arduino’s hardware ID?
- Open the Device Manager
- Under the Ports (COM & LPT) node locate the Arduino and double click. (Mine shows up as USB Serial Device) This will open the properties dialog window for the device.
- Under the Properties window, go to the Details tab.
- On the Details tab, find the Property combo box and select Hardware Ids
- The Arduino’s Hardware Id should display in the Value field.
Unfortunately, despite the modification to the code I was still having communication issues.
Installing 32-bit Inkscape
As I was debugging the eggbot.py file, I noticed the program kept failing in eggbot.testSerialPort()
on lines related to calls in pyserial. The errors that I was running into were related to incompatibility between 32-bit and 64-bit. I had 64-bit Inkscape installed.
I installed 32- bit Inkscape and ran it and could now successfully communicate with the Eggbot via Inkscape.
Decorating Easter Eggs with the Egg Bot / Sphere-O-Bit
Watch a demo of the Eggbot down below:
CLICK HERE to check out some of our other Arduino projects.