4xidraw
4xidDraw
What
The 4xiDraw is a diy xy plotter made from off the shelf materials and 3d printed parts. Perhaps it is a drawing machine more than a plotter. It can use regular felt-tip pens, ball pens or fountain pens as pen orientation is variable. It is a new version of an XY plotter using a single belt and two stepper motors in a configuration called h-bot.
4xiDaw instructables page
The plotter is Arduino based, and uses a special flavour of GRBL software created by the robottini user. It enables GRBL to handle a servo on digital pin 11 using commands M3 and M5. This way it can raise and lower the pen on the paper. Find the GRBL version here: servo GRBL and info how to flash GRBL to and Arduino here
About Grbl
Grbl is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino.
How
Inkscape
First, we will use Inkscape to send images to plot.
Inkscape is a free and open source vector graphics editor.
Download here
We will have to install an additional extension for Inkscape in order to send our images to the 4xidraw.
Find out how to install inkscape extensions here
Universal Gcode Sender
Universal Gcode sender is a full featured gcode platform used for interfacing with advanced CNC controllers like GRBL and TinyG. Universal Gcode Sender is a self-contained Java application which includes all external dependencies, that means if you have the Java Runtime Environment setup UGS provides the rest.
export Gcode via Inkscape
send Gcode via a python script
gcode
From Wikipedia on G-Code: G-code (also RS-274), which has many variants, is the common name for the most widely used numerical control (NC) programming language. It is used mainly in computer-aided manufacturing to control automated machine tools. G-code is sometimes called G programming language, not to be confused with LabVIEW's G programming language. G-code is a language in which people tell computerized machine tools how to make something. The "how" is defined by instructions on where to move, how fast to move, and what path to move. The most common situation is that, within a machine tool, a cutting tool is moved according to these instructions through a toolpath and cuts away material to leave only the finished workpiece. The same concept also extends to noncutting tools such as forming or burnishing tools, photoplotting, additive methods such as 3D printing, and measuring instruments. Simply put, G-Code is the language that tells the machine what to do, which movements to make, when to deposit material, when to stop etc. etc.. For example, a simple G-Code line that tells the machine to move to position X:10mm, Y:10mm could be:
G1 X10 Y10
Here the code G1 is the code for move to. To draw a square with the 3D printer would require four such movements. Assuming we start from location X0 Y0 Z0 and want to draw a square of 10 by 10 mm:
G1 X0 Y10 G1 X10 Y10 G1 X10 Y0 G1 X0 Y0
For a list of G-Code commands an Ultimaker 3D printer understands (or a printer running Marlin) see: https://github.com/ErikZalm/Marlin/blob/Stable/Marlin/Marlin_main.cpp Scrolling down will reveal the G-Code list.
An easy way to manually control your printer and send G-Codes by hand is Pronterface/Printrun: http://www.pronterface.com