Skip to content
A full Axidraw Client with GCode support
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
code First Commit Jan 14, 2018
data First Commit Jan 14, 2018
.gitignore Reset gitignore Jan 15, 2018
Axidraw_Utility.pde Rename files for clarity Jan 15, 2018
Chris_Utils.pde First Commit Jan 14, 2018
ControlFrameClass.pde First Commit Jan 14, 2018
GCodeParserClass.pde First Commit Jan 14, 2018
GCommandClass.pde Rename files for clarity Jan 15, 2018
GLineClass.pde Rename files for clarity Jan 15, 2018
GUI.pde Rename files for clarity Jan 15, 2018
GUI_ButtonActions.pde Rename files for clarity Jan 15, 2018
GUI_KeyInteraction.pde Rename files for clarity Jan 15, 2018
MachineInterface.pde First Commit Jan 14, 2018
Machine_DummyClass.pde Rename files for clarity Jan 15, 2018
QueueRunnerClass.pde First Commit Jan 14, 2018 Add Readme Jan 15, 2018

Axidraw Processing Client

A control client for the Evil Mad Scientist Laboratories' Axidraw.


Untested on earlier than:

  • Axidraw v3 plotter
  • EBB firmware >=2.5.1
  • Processing >=3.3.5


  • GCode support (partial)
  • Live position and progress feedback
  • Preview with Zoom
  • Flipping for standard XY coordinates to plotter coordinates.
  • Efficiency calculation and time estimate.
  • Settings testing (pen toggling, speed adjustments, etc)


  • Press '?' for help.
  • Settings persistence, loading and saving.
  • Acceleration! Help Wanted!
  • Smoothing lots of small movements. Help Wanted!
  • UI refinements. Possible collapse to one window? Non-processing GUI Library?
  • Queue modification, starting and ending at preset points in queue.
  • Threading serial communications and/or canvas drawing. Help Wanted!
  • Live GCode object queuing for generative performances.

Reference Links

GCode Format Specification

Accepts GCode with many limitations!

  • Z axis accepts ONLY ZERO AND NON-ZERO as down and up. Height settings baked into variables. TODO add full Z support.
  • Can not move in 3 dimensions at once. Z and XY motion must be in their own commands. This is standard to engraving.
  • When planning your plot, position the model in the:
    • X,Y Quadrant: Select flipYFix to true
    • X,-Y Quadrant: Select xyFix to true
  • Script should end with a M30 command. This sends to home and tells the queue to stop waiting for more.
  • Ignores distinction between G00 and G01, but still functions by default with rapid motion when in clearance plane, and normal motion when pen is down.
  • Accepts units of Inches or Millimeters, but code must include G20 or G21.
  • All commands should be on separate lines, with parts separated by spaces, and comments (surrounded by brackets). No colons/semicolons.


  • Z heights
  • G0/G01 distinction
  • Feedrates
  • Dwell
  • Arcs?
  • File filters for unallowed characters.
You can’t perform that action at this time.