Control the original EggBot via Web Browser!

Usually, the EggBot is controlled by Inkscape running on the host computer. To draw an image on an egg, Inkscape sends a bunch of commands via USB. As the EggBot is completely open source, the format of those commands is readily available. This allows us to control the EggBot in "real time", sending individual commands by clicking buttons in a remote Web-browser.

The computer connected to the EggBot no longer needs Inkscape. Instead, it hosts a small, custom Web service providing an HTML user interface and a simple REST API to change x, y and pen up/down, as well as a separate Web page to set up pen min/max.


  • Egg
  • EggBot, assembled and tested with Inkscape
  • Host computer (WinXP SP2 or higher, Mac & Linux might work with Mono but have not been tested)
  • Client computer, iPad or smart phone with Web-browser
  • Web cam (optional)


  • Internet access with DHCP, no public IP address needed

Step 1: Get Familiar With EggBot Commands

(This step is mostly educational, but it might provide some extra fun and maybe some insight into how the EggBot works.)

As mentioned before, the EggBot is controlled with commands sent to it via USB. Here we'll try to send individual commands by hand .

The USB driver coming with the EggBot makes it available via serial COM ports. To find the corresponding COM port in Windows, press "-R" and type "devmgmt.msc" (without the quotes). Now you should see the "Device Manager" window. Open the "Ports (COM & LPT)" sub-tree and try to find an entry that starts with "USB Serial (UBW-based) communications port (COM...)". Write down the number of the COM port, e.g. "COM24".

In order to manually talk to the EggBot we also have to download a serial communication tool . There are several such tools. Here we'll use PuTTY which is available for free from: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Start PuTTY.exe and configure it as follows: Select the "Terminal" node and set "Local echo" to "Force on". Then select the "Session" node and set the "Connection type" to "Serial". Above the radio buttons a new text box appears. Enter the exact COM port you wrote down before (*). Then, make sure the EggBot is powered and connected via USB and hit "Open" in PuTTY. Now you should see a command window.

To check the connection, type "TP" (which means "toggle pen") in the command window and hit . The command is immediately sent to the EggBot and confirmed with "OK". Then you can try "SM,1000,50,0" to move the X motor and "SM,1000,0,50" to move the Y motor. Another useful command is "EM,0,0" (disable motors). There are many more commands and parameters, but be aware that some of the commands might move the strong motors in unexpected ways that can break or damage the pen arm or one of your fingers. Anyway, the format of the EggBot commands is called "EBBCommands" (for "EiBot Board Commands") and documented here: http://www.schmalzhaus.com/EBB/EBBCommands.html

*) Note that the baud rate of the serial connection does not matter in this case, as the serial COM connection to the EggBot is merely emulated by the USB driver (see also http://www.schmalzhaus.com/UBW/Doc/FAQ.html ).

I want to make the same thing with my cnc machine. Good work!
Amazing !Rated 5*
Thanks a lot!
Have a look at my instructable!
very cool! Now all your friends can decide what they'd like to see drawn next.
Exactly! Crowd sourced egg designs FTW. Cheers, tamberg

About This Instructable




More by tamberg:Voodoo Sonic LoRaWAN-connected doll IoT Gauge with Arduino, Yaler & IFTTT Log Arduino output for days with a BeagleBone 
Add instructable to: