Skip to content

Presets & interfaces

Presets, interfaces, sequences, and macros are the reusable settings layer in GRBL Server. They're what stop you from re-entering power / speed / passes for every job. Most workshops end up with five to ten interfaces and a couple of dozen presets — enough to cover their common materials, never enough to feel cluttered.

Interfaces

An interface stores the engine parameters — the settings the conversion engine uses when it turns a file into G-code: scale, power range, feed rate, pass count, constant-burn (M3) vs dynamic (M4) laser mode, fill density and direction, and so on. Think of it like the "filament profile" in a slicer — the same SVG looks completely different on 3 mm plywood vs 0.5 mm cardboard, and that difference lives in the interface.

grblserver.local
GRBL Server Interfaces page showing four interfaces — default, engrave_light, cut_fast and mark_deep — each with its sequence, engine parameters and macros
The Interfaces page. Each row exposes the sequence it wraps with, its engine params, and any attached macros.

One engine, both vector and raster

For now GRBL Server ships with a single engine, and that engine handles both vector and raster content from the same interface. You don't need a separate "vector interface" and "raster interface" for the same material — one interface covers both paths.

  • SVG paths are approximated into G-code moves (vector pass).
  • Bitmap pixels are mapped to laser power or dwell time (raster pass).
  • SVGs that embed raster images alongside vector outlines are handled in a single job: the engine runs the raster fill where there's image content, and the vector pass where there are paths.

Engine parameters

The Engine Params button on each interface row opens a dialog with the full parameter set: scale, power range, feed rate, pass count, laser mode (M3 / M4), fill density and direction, raster resolution, and the rest. These are the knobs you tune per material.

The parameters are organised into groups. The everyday ones sit up top; an Advanced group exposes the G-code dialect — custom start/end blocks, the laser-on and laser-off commands, the travel (rapid) move, coordinate precision, and raster-line options. The defaults already match the engine's built-in behaviour, so you only need the Advanced group when a particular controller wants something different.

Sequences

A sequence is the start / end G-code that wraps a job. It runs once at the beginning and once at the end of every job that uses it.

grblserver.local
GRBL Server Sequences page showing three sequences — default, home_then_park and air_assist_on_off — each with an update action

Common uses:

  • Home the machine before each job ($H).
  • Raise the Z axis to a safe height (G0 Z5).
  • Turn an air-assist or exhaust fan on at job start and off at job end.
  • Park the head at a known position when finished.

Interfaces reference a sequence by name. If you change the sequence, every interface that uses it picks up the change on the next job.

Macros

A macro is a named snippet of G-code you run on demand from the Job station view — one-click buttons for things like "focus the laser at 30 mm" or "home X only" — rather than inside every job like a sequence.

Macros are protocol-aware. When you create or edit one, you tag it with the firmware protocols it works on (GRBL, Marlin, Klipper, …). The Job station then shows a machine only the macros that match its protocol — a Klipper-only macro never appears on a GRBL laser — while a macro left untagged stays compatible with every machine.

Job presets

A job preset bundles a machine + an interface + clipping/crop settings + a pre-visualizer layout into a single reusable object. Once you've dialled in a setup that works for a material, save it as a preset and apply it in one click for future jobs.

grblserver.local
GRBL Server Presets page showing four presets: plywood_3mm_engrave, acrylic_5mm_cut, steel_mark_basic, cardboard_test
Presets are typically named by material and operation: plywood_3mm_engrave, acrylic_5mm_cut, steel_mark_basic.

What a preset stores

  • The target machine (with its working area).
  • An interface (the engine parameters — covers vector, raster, and SVGs that combine both).
  • Optional clipping or crop rules.
  • The pre-visualizer canvas layout — where on the bed jobs land by default, snap-to-grid alignment, background image (e.g. a photo of the bed with a jig on it).

Creating a preset

  1. Open Configuration → Presets.
  2. Click CREATE in the top right.
  3. Give it a name. {material}_{thickness}_{operation} is a good convention: plywood_3mm_engrave, acrylic_5mm_cut.
  4. Pick the machine and interface from the dropdowns.
  5. Click the pencil under Pre-visualizer data to open the canvas editor and arrange the default layout / snap settings / background.
  6. Save. The preset is immediately available on the Set up job page and as a Preset node in workflows.

Using a preset

  • In a one-off job, pick it from the Preset dropdown on the Set up job page.
  • In a workflow, drop a Preset node and connect it to Setup job's preset input. (Doing so excludes the Interface / Grid / Clip inputs — see Setup job inputs.)

Naming conventions that scale

This is opinion, not enforced, but it ages well:

  • Machines: short and lowercase. laser_A, cutter_B, mark_D.
  • Interfaces: describe the parameter profile, not the material. engrave_light, cut_fast, mark_deep.
  • Sequences: describe the wrapper. home_then_park, air_assist_on_off.
  • Presets: describe the outcome. plywood_3mm_engrave, steel_mark_basic.

What's next

Something unclear or wrong on this page? Tell me — beta docs improve fastest from real questions.