
Drawing robot capable of rendering SVG paths over WebSockets. Powered by a Raspberry Pi running Node.js.
Everything Else (~$150 or less)

Thank you to the kind people at the Johnson County Library's Black & Veatch MakerSpace for documenting the assembly process at instructables.com.
Raspberry Pi Zero W Basic Setup
- Download and install Etcher.
- Download and install latest Raspbian OS and flash it onto your SD card with Etcher.
- Enable SSH by adding a blank file named ssh (no extension) to the boot directory on the Pi's SD card. (Last tested with Raspbian Stretch Lite 2018-06-27 version.)
- Set up Wifi by adding a file named wpa_supplicant.conf to the same boot directory with the following contents (replace MySSID and MyPassword with your credentials):
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="MySSID"
psk="MyPassword"
}
From a device connected to the same network as the Drawbot Pi, SSH into the Pi with ssh pi@raspberrypi.local. The default password is raspberry.
Then, on the Drawbot Pi:
-
Update, upgrade, and install NPM, Git. (Automatically answer "yes" to everything.):
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install npm
- sudo apt-get install git
-
Install Node.js.
- sudo npm install -g n (Install n for node.js version management. github.com/tj/n)
- sudo n stable (Install latest stable version of Node.js. Last tested with v10.8.0)
-
Upgrade NPM. (and remove old apt-get version).
- sudo npm install npm@latest -g
- sudo apt-get remove npm
- sudo reboot (After rebooting, you'll have to SSH into the Pi again.)
-
Install pigpio C library. npmjs.com/package/pigpio
- sudo apt-get install pigpio (Only if you're using Raspbian Lite.)
- npm install pigpio
On the Drawbot Pi:
- git clone https://github.com/andywise/drawbot.git to clone this repository.
- cd drawbot
- npm i
On the Drawbot Pi:
- Run npm start or sudo node draw.js to start the Drawbot controller.
On a device connected to the same local network as the Drawbot Pi:
- Go to raspberrypi.local/control to access the Drawbot control interface.
- Use the "bullseye" interface to manually position the gondola, or raise/lower the pen/marker.
- Use the settings panel to configure the Drawbot's D, X, and Y values (see "Configuration" below).
- Drag and drop an SVG file onto the control interface to send artwork to the Drawbot!
- Only the first <path> element will be drawn, so if necessary, combine artwork into a single compound path.
- The Drawbot will scale artwork so that 1 pixel = 1 millimeter.
- Enter value for D: measure distance between string starting points (in millimeters).
- Enter starting X and Y values: measure distance from left and top (respectively) of left string starting point to initial pen position (also in mm).
- Note: Values will be stored in the config.json file.
Rendering Raster Artwork (Coming Soon!)