Okmi EggBot

by Imko Mar 23, 2019
Download All Files

Thing Apps Enabled

Please Login to Comment

Hello! Nice design! The electronics now works and I can to make the mechanical part. Please, can You give the editable variant. Can not edit the atl with solidworks... I want to change the holes for my bearings

What are the demensions of the bearings you want to use?

I have the bearings with outer diameter 16 and inner 8 thickness 4mm. I will print and place some adaptor into the bearing in the future, or may be use it as is... so the inner hole in the model must be 8,5-9mm

Added a Frame_8mm.stl this fit the bearings (not tested for obvious reasons)

Many thank's! I will test it.

Else, it is good for me to make a holes for the nuts into the arm-A, as on the picture. So it's no need to find a long screw and use a two shorts...

Interesting, let me know how it worked out

I do not have all of the parts. I'm awaiting some from China. But now the printing finished and I have assemle and check workability with one stepper motor from the inkscape eggbot.

It's work!! One thing, that I do not understand - how to make a pauses to change a color, or, may be, the file must be splitted someway?

You're a mad genius, I love this thing!!!!!


I cant get this to work

i get this messages in inkscape

Traceback (most recent call last):
File "eggbot.py", line 1406, in
File "C:\Program Files\Inkscape\share\extensions\inkex.py", line 268, 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] Den angivne fil blev ikke fundet

hmm checked my eggbot.py and no modifications. my guess is its a arduino uno firmware issue. make sure you use the supplyed arduino code (witch is nothing different from original except preconfigured)

or use the original and alter the board choice

//#define BOARD_ULN2003
//#define BOARD_ZAGGO


I am using inkscape version "Inkscape 0.91 r13725" this might also be a factor.

Already tried other firmwares, different versions of inkscape, multiple pc and mac computers. getting the same error everytime

My Uno and cnc shield works perfect, as have used it as driver for a mini router before.

Ok... are you 100% sure the uno and schield are propperly connected as the housing is small its possible that just 1 side of the pins is connected. You might want to try them out of the housing validate function and then place them back. You can hotglue them in place in stead of screws...

ill check if i made any modifications to the eggbot.py (when i am at home...)

What is the correct connection for the servo wires?

The wirering and manual did not help? Do you use the "default" hardware?

Whoops, yeah, my fault for skimming the docs, thanks.

Anyone else have trouble with the drawings making a mess? I have tried the sharpie like in the video and I have tried the thinner ones. Kind of draws all over the place. I am sure I have something screwed up, anyone able to offer some advice?

All over the place how? Do you have a picture of what you mean. Also check egg and pen motor are correct and not mixed up. Manual mode in the inkscape plugin can help with that

This looks very cool do you have a video of It working?

Thanks and yes look at the bottom of the instructions

My make finally works fine. I would like to mention some hints which can be helpful to make it alive.
My configuration: Arduino Uno, CNC Shiled V3, DRV8825 drivers, Stepper motors Microcon, SX17-1005LQCEF.
Operation system: Linux

During the first try I was not successfull with connection from Inkscape so I made these 3 things:

  1. Add linux user to group Dialout using command "sudo usermod -a -G dialout ". Without this system cannot access to serial port.
  2. Disable autoreset at CNC shield. I put 22uF capacitor between pin RST (Close to 5V and GND) and pin GND. Of course negative pin from capacitor goes to GND.
  3. I modified EggBot Software (Version 2.8.0) for Inkscape because I was not able to create connection. Just open file ebb_serial.py, line 51, EBBport = None. Change the line to EBBport = "/dev/ttyUSB0" or other name of your communication port in your Linux distribution.

Great to hear and bonus points for sharing the "sollutions/hits" :)

Thanks for bonus points :-). Btw may I ask you where are you from? The reason I am asking you is standard egg size in your country :-). I figured out I am not able to put some of our Czech eggs into the holder because they are too big. I shifted egg mount as far as possible to get more space for egg but I cannot move it more because I am limited by the length of the both axis and by the spring length in the pressed state. I still have some eggs which are too big for this distance. Maybe I will try to put some spacers between the frame and egg rotation stepper.

From the Netherlands, its sized to fit a large egg but it seems they are small in comparison. Let me see if i can add some thinner egg mounts that might help. Spacer will help as well.

Just wanted to share I have come alive!!!! am testing now....

hello, i am totally confused.i made your eggbot and when i wanted to test it it worked for 2 seconds then paused with errors.
here is the error:
EBB Serial Timeout.
Error reading serial data.
Traceback (most recent call last):
File "eggbot.py", line 1406, in
File "C:\Program Files\Inkscape\share\extensions\inkex.py", line 268, in affect
File "eggbot.py", line 286, in effect
File "eggbot.py", line 551, in plotToEggBot
self.recursivelyTraverseSvg( self.svg, self.svgTransform )
File "eggbot.py", line 611, in recursivelyTraverseSvg
self.recursivelyTraverseSvg( node, matNew, parent_visibility=v )
File "eggbot.py", line 611, in recursivelyTraverseSvg
self.recursivelyTraverseSvg( node, matNew, parent_visibility=v )
File "eggbot.py", line 667, in recursivelyTraverseSvg
self.plotPath( node, matNew )
File "eggbot.py", line 1112, in plotPath
File "eggbot.py", line 1284, in plotLineAndTime
if strButton[0] == '0':
IndexError: string index out of range

It's quite a journey to set everything in the right order...
Thanks Imko, for helping out so much on firmware/software:

  • I could not change "define BOARD_CNCSHIELD" without rebuilding, so used your code
  • Since I'm using a MEGA + ramps1.4 board, had to change some pin outs and checked those already with custom arduino code. This is working.
  • I did install (again) your version of: EggBot_250A.zip
  • Also followed up removing the auto search (https://github.com/cocktailyogi/EggDuino), by just hardcode "COM4" in the "eggbot.py". Although this might also not work correctly..

I'm also able to send a command via arduino-serial monitor, although I'm still not convinced about the string to send.
Should be something like: "word,arg0,arg1 \r". That SPACE before "\r" seems to be important?
Sometimes one of the steppers move.
Also tried creating a 'debug file' and send these commands over serial monitor, but also without success.

Sending 'v/r' in serial monitor, delivers "EBBv13_and_above Protocol emulated by Eggduino-Firmware V1.x".
Sending same command over inkscape, getting: "Error reading serial data."

Error reading serial data.
Traceback (most recent call last):
bla bla
if strButton[0] == '0':
IndexError: string index out of range

If someone known the answer, please let (us) know.

hmm, it seems that somehow inkscape is not connecting to arduino at all, either it's not allowed, or something else is going wrong with the (python) serial object. I get an error directly after (eggbot.py):
serialPort = serial.Serial( strComPort ,timeout=1 ) # 1 second timeout!
serialPort.write( 'v\r' )

I managed to get everything loaded on the uno, got it to see my pc, got inkscape to see it, but I am now getting this error also... Any suggestions from anyone?

Whell i am glad there are no issue's with the printing part of it. I am not the one who made the code i try to help out where i can but this i dont know... sorry. I encountered a lot less problems setting this up (on the software side) but have no idea what i did different. My best bet is to try a cleanstart on sofware. This might link might be usefull its firmware for aduino https://github.com/ProbotXYZ/EggBot

But please share a make, love to see what you made

thank you for your reply. I will install that firmware this week end.I hope this firmware work for me. tnx again

Hello, do you know if i can use a MKS Board? i have a spare one laying around at least for this eastern then i will order the arduino with the shield to fit it in the case

MKS Board its arduino with shield for 3d printers, i order a arduino and a shield but i dont think they will arrive in time so i just wanna know, i finish printing all the parts, next week i will start to assembly them i hope will work

MKS Board, hmm looks bigger so wont fit the housing. If im not mistaken its a arduino with extras then it shoud be possible to get it running... but no guarantees. Personaly dont think its worth the trouble vs cost uno and CNC shield.

Are you using a old inkcape version and did you alter the arduino code to select the cnc shield?

I didnt see those instruction to alter and the most recent inkspace i downlload. I keep getting errors trying to upload egg firmware. I can use example files in Arduino IDE and it uploads and works with those

If you mean select board and com in Arduino IDE, yes thats done

using inkspace 0.91

so I cannot communicate with eggbot. Its setup on com5, ive installed the eggbot firmware, inkspace says it cannot find an eggbot on any port....

How/where do you alter the Arduino code to select the cnc shield? Im stuck there! haha

In the EggDuino (arduino firmware) there is a section where you need to alter the code to select the CNC shield (source: https://github.com/cocktailyogi/EggDuino)

//#define BOARD_ULN2003
//#define BOARD_ZAGGO


Then compile and upload to the UNO.

is there a specific spot? on my printer config its at the top of configuration.h file. In the eggduino file doesn't specify but where would I put it. Sorry to be a pain!

its in de eggduino "main" not in the configuration.h if you open the arduino sketch at line 31-33 there are the boards. I beleave default is like this

define BOARD_ULN2003

//#define BOARD_ZAGGO

You change this to

//#define BOARD_ULN2003
//#define BOARD_ZAGGO


that section is not listed in my eggduino config. I will try to figure it out

Added a zip with the arduino code i used. Hope this helps

wow that did it! Something is missing from that file on github or Im just a marroon. lol

inkscape cannot find it. It shows up in device manager.....

I am in the same place. I got the firmware from here uploaded correctly, but inkscape still wont see it. Side question - I have power going to the Arduino, do I also need power to the cnc shield? will either work? do i need power to both or only one?

Yes the CNC shields needs a 12v power supply. The Uno gets power from USB

The shield should be plugged into the top of Arduino. Then the pc cable provides the 5v for arduino and then separate 12v pwer connected to blue screw port will power shield drivers for motors. I'm still at a standstill

Try installing the drivers installer added as attachment

Yeah those are installed. Spent 6 hrs today trying everything I could find.

who would have thought it would be this difficult! I installed the Eggduino.ino above on the Uno... installed the correct version of inkscape. edited the file in inkscape folder. I have everything hooked up correctly, tested power. I see the uno in wondows, when I try to send command in inkscape I hear it click, but says it cant connect... OK, done for the day! hopefully tomorrow will bring better luck.

Hopefully charpell you will find something to get it working as well. I dont know how much more it will take! Very frustrating to say the least. Seemed like a great project. Ive searched thru thingiverse and found other ones but nothing is working for me. Ive used different versions on Arduino, inkscape 32b and 64v, edited .py files till me eyes bleed. Changed port numbers, 2 different pcs win7 and win 10. Changed usb cables.
The only life I had was when I loaded the firmware IMKo put up here in the comments. The servo ran once it uploaded but nothing after that

sorry to hear you have this much trouble with the software... are you 100% sure the uno and shield are connected properly? That's kind of hard to do in this housing. The first time I had pins misaligned witch coused some weird problems..

Im just going to start over. I have my new base printed and the 12mm bearings now. Im going to test some basic code to get steppers moving and then proceed. Just to make sure

Comments deleted.

Are you using a old inkcape version and did you alter the arduino code to select the cnc shield?

also it says to disable autoreset on the board. How did you do that?

Not shure what you mean dont think i did anything for that

in your link to the github instructions, this is one of them
"Disable Autoreset on Arduinoboard (there are several ways to do this... Which one does not matter...)"

Great Design!! How about the software? Is it Marlin?

No not marlin, it uses the eggbot firmware and inkscape.

whats the specs on the motor controlling the lift on the pen arm? Do you think a Raspberry pi could run this? Awesome build BTW!

The motor controller is a arduino uno with cnc shield, a raspberry can run 2 steppers and a servo but youll need to write all the firmware yourself. I use the official eggbot firmware and inkscape addon. Makes is a lot easyer. Also the housing is as small as possible a raspberry wont fit.

The pen arm lift is a 9gramm servo

So I picked up my parts, already had the base printed and the holes for the bearings are at 11.75? the 10x4x4 bearing in your list I bought are @9.99mm. so that sux. lol

Damm my bad.. the bearings are 12mm not 10 ill update the BOM but that wont help you.. sorry

The fit is not supper critical, make sure the dont fall out (add some glue or tape around them) there is almost no real force on them. I will look into the model and check dimensions.

Im printing a fix for it. A little crude but i plan to print a new base and will fix it then. No worries

Thanks for the info!

Hello, I really like your design. Can you post more detailed material list? Thanx

You want a "better" bom ill look in to that

Yes if you could give me:

                           - 4mm rod lenght
                           - spring lengtht and diameter
                           - m3 bolt lenght
                           - maybe some links of the motors

And if you could share fusion 360 file :) thank you

Hi. Very nice, compact design. What are you using (green material) on the egg-holder parts?

Craft foam, with a little bit of glue. And thx the arm folds away when not in use saves on stoarage space