EggBot
EggBot Release status: experimental [box doku] | |
---|---|
![]() | |
Description | Drawing CNC robot for eggs and other round objects |
Author(s) | David, Severin |
We want to build an EggBot, a small CNC machine to draw on eggs and other round objects like christmas ornaments.
Original EggBots(s)
The original EggBot was build by Evil Mad Scientist, and is apparently not for sale anymore. EMSL says their product is Open Source, this is somewhat questionable.
Interesting findings:
- The electronics are not Arduino-based, but use a PIC-based board.
- It uses a custom language, not e.g. G-Code
There are a few derivatives, we decided to try building an "Egg Painter Mini".
Egg Painter Mini
- GitHub Repository
- Uses deriviative of EggDuino firmware to deal with unipolar servos.
Notes during building
- Motors can be mounted using short M4 screws directly into the plastic, no need for M3 screws and nuts. This makes for a much more solid mount.
- A normal Arduino Uno will not fit the case. Only in the assembly video you can see a special Arduino derivative is being used which allows for angled connections to the stepper motors.
Other alternative builds
Other builds go by the name SphereBot or similar. Some that might be interesting to build:
- Mini Spherebot - Really small, might not fit all eggs. Cheap unipolar servos like Egg Painter Mini
- Sphere Painter - Looks like an optimized version of the Egg Painter
- Big Spherebot - proper solid 3D printed version
Software
- Inkscape Plugin: https://wiki.evilmadscientist.com/index.php?title=Axidraw_Software_Installation&oldid=4104
- Custom Version of extenstions for EggDuino: https://github.com/bartebor/eggbot_extensions - not yet tested
- Does not work out of the box, needs some modifications.
Fixes
Found at https://www.thingiverse.com/thing:1461709. After that, EggDuino will be recognized properly by Inkscape plugin.
Adjust Serial Port detection
Edit the "ebb_serial.py" file and find the line that reads:
if port[1].startswith("EiBotBoard"):and change it to:
if port[1].startswith("EiBotBoard") or port[1].startswith("Arduino"):
Adjust timeout
find the line that reads:
serialPort = serial.Serial( comPort, timeout=1.0 ) # 1 second timeout!and increase the timeout to 2 or 3 seconds like this:
serialPort = serial.Serial( comPort, timeout=2.0 ) # 2 second timeout or change to 3 if you still can't connect