Skip to content
Sven edited this page Mar 18, 2024 · 30 revisions

GRBL-Plotter

Short description / FAQ

For updated information check my web-site: GRBL-Plotter

For use under Linux check this description by metzger100: GRBL-Plotter-Linux

Key words

A [A4988 driver] [Automation] B [Barcode] [Bellows] C [Camera] [Center finder] [Clipping] [CNC-Shield] [Coordinate system] [Deepth sensor] [DIY control] [Drag toolE [Edge finder] [Engraving with a soldering tip] [Egg bot] [Email notification] [EnvelopF [Fiducial correction Camera] [Fiducial correction via Probe] [Firmware] [Fonts] [FrameG [grbl] [GroupingH [Halftone] [Hardware] [Hatch fill] [Height map] [Hot wire cutterI [ImageJ [Jog path] K [Knife] L [Language] [Laser] [Leveling] [Light painting] M [Machine limits] [Messenger] [MultiplyN [Notifier] O [old PC] P [Path overlap] [Pen changer 1] [Pen gripper] [Polar coordinates] [Probing] [Process Automation] [Progress] [Pushbullet] Q [QR CodeR [RC-Servo] [Round off] [Rotary axisS [Scan] [Servo] [Shapes] [Streaming protocol] [String art] T [Tangetial knife] [Tangential knife - knife holder] [Text] [Tiling] [Tool change] [Tool length] [Tool table] U [Use case] V  [Variables[Win XP] [XP] Y Z

Import options (new site)
Use Cases
Code Blocks
Extensions
Hardware suggestions
How to control a 2nd controller with grbl


Use Cases

If enabled, a "Use Case" selection window pops up, when importing a SVG or DXF file.

A use-case is a preset of some import options, which can be found in [Setup - Graphics Import]

Note: when changing import options in Setup and reloading a file, select the yellow button "Close Dialog without changes". Otherwise the use case would overwrite the previous changings.

Code Blocks

When importing data (SVG, DXF, HPGL etc.), related paths (lines, polygones, circles...) will be surrounded by a XML-Tag 'Figure'. Further on, all paths can be grouped by layer or color with the XML-Tag 'Group'. This XML-Elements I call code blocks.
Via GRBL-Plotter the order of this G-Code elements can be changed via moving or sorting of code blocks.
Inside the editor, via the 'up' and 'down' keys you can go through all 'Figures' or 'Groups' and select one by the other, the concerning path will be highlighted inside the 2D-View.

Example Code Blocks:
Moving Code Blocks:
Sorting Code Blocks:

Extensions

Extensions are user-defined scripts or programs which can be started by GRBL-Plotter.
Via the windows registry ("HKEY_CURRENT_USER\SOFTWARE\GRBL-Plotter")

  • the script/program can get the current GCode import settings from GRBL-Plotter for further use
  • the script/program can trigger GRBL-Plotter to get code from the clipboard, which was created before

GRBL-Plotter is polling a specific registry-key and pastes the code from the windows-clipboard on change.

Each script/program, located in \data\extensions will be listed in the menu 'G-Code Creation - Extensions' (except it starts with '_').

As an example I made a HTA script 'GCode_Conic_Spiral.hta' to generate code for a conic spiral, which I needed for an other project.

It seems that HTAs are the only type of simple script which can access registry and clipboard. Just HTML and Javascript can't do it. More complex languages like Python are more powerful but need a huge overhead - I don't like it.

GRBL-Plotter can paste codes like GCode, SVG and DXF.

https://en.wikipedia.org/wiki/HTML_Application


Suggested Hardware

For most of my plotters I ordered complete sets (Arduino, CNC-Shield, motor-drivers) at ebay - just search for "Arduino CNC" or "Uno CNC" or "Nano CNC".

Note: following hardware failures I got after a while with different Arduino-clones:

  • grbl status report was still sent continuously, but no other command were accepted until reset
  • no response at all after sending too many jogging commands
  • streaming G-Code was not possible, but manual movement

I figured out, that too high values for step-rate ($100=800) and feedrate ($110=10000) were the reason for most of the listed problems above. I made this settings to speed-up streaming on a bare controller on the desk.
I didn' t follow the rule that 'STEP' frequency must not exceed 30 kHz.
Log data:

Send/Received Data                         Length  Free Buffer
TX G00 X6.613 Y10.170                          18  21  
RX G00 Z2.000                                  11  13  
<Run|WPos:1.916,2.946,2.000|Bf:0,128|FS:1761,1000>  
RX G00 X6.613 Y10.170                          19  32  
TX G01 Z-1.100 F500                            16  32  
<Run|WPos:3.011,4.536,2.412|Bf:51,128|FS:0,0>  
RX G01 Z-1.100 F500                            17  32  
TX G01 X6.342 Y10.085 F1000                    24  32  
RX G01 X6.342 Y10.085 F1000                    25  32  

Suddenly the buffer state show 51 available blocks inside the planner buffer (Bf:51,128)
Same issue:
CNC 1610 engraver stops half way through


How to control a 2nd controller with grbl

Commands for the 2nd GRBL will be introduced via special formatted remarks in G-Code e.g.: (^2 G90 X2) to move 2nd GRBL to position X2.
Video: https://youtu.be/fvYWyE2GBsg
Check the scripts in data/scripts script_pen_select, ..._remove, ..._pickup.

To set set G54 to zero you may use "(^2 G10 L2 P0 X0 Y0)" P0 = active coordinate system, or use P1 to set G54 explicite..
Better read this: http://linuxcnc.org/docs/html/gcode/g-code.html#gcode:g10-l2