Skip to main content

Vacuum System

Overview

The vacuum system controls and monitors a router's vacuum hold-down table: the zone valves, the vacuum pumps and, on tables that have them, the pods that raise and lower per zone. Mach checks that every zone that is on actually holds vacuum, stops the program when a zone loses vacuum during a cut, and keeps the zones on through Disable and Cycle Stop so a part is never dropped.

The system has four parts:

  • Mach Config > Vacuum - where the zones, pumps and pods are set up.
  • The Vacuum widget on the dashboard - shows every zone and pump, and turns them on and off.
  • The vacuum M-codes M289 - M296 - turn zones, pumps and pods on and off from a program.
  • User commands - for Function Buttons, operator panel buttons and lamps.

Monitoring runs in the background whether the widget is on the dashboard or not. The widget, the M-codes and the commands only switch outputs: a zone switched from any of them (or from I/O diagnostics or a PLC script) is monitored the same way.

Vacuum is available on Router profiles only. The Vacuum page only appears in Mach Config when the machine family on the Defaults page is Router.

Setup: Mach Config > Vacuum

Open Mach Config and select the Vacuum page (after GoTo Positions). Nothing is saved until you press OK or Apply, and Mach Config refuses to save a setup that won't work (see Validation).

General settings

Setting Default What it does
Enable vacuum Off Turns the whole vacuum system on. Off: no monitoring, the widget shows "Vacuum disabled" and the M-codes refuse to run. Outputs are left as they are.
Zones 0 The number of zones. Adds or removes rows in the zone grid.
Alarm action Feed Hold What happens when a zone loses vacuum during a program: None (message only), Feed Hold, Feed Hold Retract (needs Retract enabled), Cycle Stop or Disable.
Vacuum wait (s) 10 How long a zone has to reach vacuum after it is turned on before it shows No vacuum. Also how long a pump has to show its feedback.
Debounce (ms) 500 How long the vacuum switch or reading must stay good (or bad) before a zone changes between Vacuum OK and Vacuum lost. Stops a chattering switch from faulting a zone.
Units PSI PSI, inHg, kPa or mbar. Only the label and decimals; nothing is converted.
Turn Auto zones on at file start Off Cycle Start of a GCode file from the top turns the Auto zones on (and their pumps) and waits for vacuum before the file runs. See Cycle Start.
Zones off at M2 / M30 Off Turn zones off at the end of the program: the active table's zones with Dual Table, otherwise the Auto zones. The pumps stay on.
Pump idle off (min) 0 Turn a pump off once it has run this long with none of its zones on. Never while a program runs. 0 = never.
Zone on starts its pump On Turning a zone on, from anywhere (the widget, a command, an M-code, its On input, I/O diagnostics), also turns on the pumps that feed it if they are off. See Pumps.
Material (E1): source, Zone under material (%), Header origin None, 50 %, Bottom left Where M289 E1 gets the sheet from, and how much of a zone must be under it. See Material zones (E1).
Show zones on tool path / Show zone numbers Off / On Draw the zones on the tool path display (see Tool path display).
Zone positions Machine What the zone X / Y / Z min and max are measured from: Machine (machine coordinates) or Surface (the surface offset's corner, G10 L24).

Pumps

Set the number of pumps (1 - 8). Each pump has a name, an Output that runs it and an optional Feedback input that confirms it is running. With a feedback input, Mach alarms when the pump stops or never starts (Vacuum Pump Stopped / No Pump Feedback). With 2 or more pumps the zone grid shows a Pump column: each zone is fed by one pump, by no pump (for example an always-on shop vacuum) or by All pumps.

With Zone on starts its pump checked (the default), turning a zone on from anywhere turns on the pumps that feed it if they are off. It only happens when the zone turns on: a pump turned off while its zones stay on (M292, the pump tile) stays off, and those zones lose vacuum. Pumps never start while the machine is disabled; the zone still turns on and a message names the pump. M289 also waits for the pump's feedback before it turns the zones on. Unchecked, only M289, M295 V1 and M291 start pumps.

The zone grid

Column What it is
Name Shown on the widget tile and in alarms.
Table Dual Table only: Table 1, Table 2, or shared (see Dual Table).
Pump 2 or more pumps only: the pump that feeds this zone, none, or All.
On output The output that opens the zone's valve. Required.
Off output Optional, for a double-acting valve: on while the zone is off. Mach never has On and Off on at the same time.
Proof How Mach confirms the zone has vacuum: Switch (a vacuum switch input), Analog (a vacuum reading at or above Set), Both, or None (the zone is only switched, never checked, never alarms).
Switch The vacuum switch input (Switch / Both).
Analog The analog input with the vacuum reading (Analog / Both).
Override Optional input (a key switch, for example) that overrides the zone: it is no longer checked.
Set, Scale, Offset Analog zones: the vacuum the zone must hold, and reading = raw × Scale + Offset.
Auto Marks the zone as an Auto zone: the zones M289 A1 and the Auto zone commands switch. Operators can change it on the widget, and programs with M293 / M294.
X / Y / Z min and max The zone's box, for the tool path display and for material zones (E1).
Up output, Down output, Up input, Down input Only while Pods is on (see Pods).

Click an I/O cell to pick a Mach signal or a device I/O point. Right-click for Select..., Auto Select (inputs: set several cells to Auto Select, then trigger the switches one at a time) and Clear. Drag a cell down to fill the column; I/O steps to the next signal or point. Import zones from CSV... fills the grid from a spreadsheet.

Validation

Mach Config won't save while a zone has no On output, uses the same output for On and Off, has a Switch or Analog proof without that input, uses a pump above the pump count, has a min above its max, or an input is still waiting for Auto Select. It lists the problems.

Operation

The Vacuum widget

Add the Vacuum widget to the dashboard. Right-click it and choose Configure Widget to change the tile layout.

Tap Does
A zone tile Turns the zone on or off.
OV Overrides the zone: it is no longer checked and can't alarm. Stays on through Reset; the operator turns it off.
Auto Makes the zone an Auto zone, or not. Saved.
Set Analog zones: the vacuum the zone must hold. Saved.
Pod pill Raises or lowers the zone's pod.
Pump tile Turns that pump (or, on the all-pumps tile, every pump) on or off.
All On / All Off, Raise All / Lower All Every zone, one table, the active table, or the Auto zones, depending on how the tile is set up.
Fold arrow Folds the widget to one row with a count of zones by state ("1 lost", "5 OK").

Zone states

Tile text Colour Meaning
Tap to turn on Grey Off.
Waiting for vacuum Yellow On, vacuum not confirmed yet.
Vacuum OK Green Vacuum confirmed for the debounce time.
Vacuum lost Red Had vacuum, then lost it. Stays red until Reset or the zone is turned on again.
No vacuum Orange Never reached vacuum within the Vacuum wait time. A prompt offers Retry, Override Zone or Turn Zone Off.
Overridden Violet Overridden from the widget (OV) or the Override input. Not checked.
No vacuum check Green On, with Proof set to None.
Not monitored Button colours Monitoring isn't running (vacuum disabled, no zones, or a load error).

Alarms during a program

When a zone loses vacuum, never reaches it, or its pump or pod faults while a G-code file runs, Mach runs the Alarm action once and shows one alarm dialog (for example Vacuum Lost: Zone 12, or Vacuum: 3 Faults with the list). With None, Feed Hold, Feed Hold Retract or Cycle Stop the dialog closes by itself once the fault clears. With Disable it is an alarm that stays until it is closed or Reset.

Outside a program a faulted zone still shows red or orange, but nothing is held or disabled. With Dual Table, only zones on the active table (and shared zones) alarm; a loss on the idle table is a warning message.

To recover: fix the vacuum (the zone goes back to green by itself), override the zone (OV), or turn it off. Then press Cycle Start to continue.

Cycle Start

Cycle Start is refused, with a message naming the zone or pump, while:

  • a pump that feeds a zone that is on has stopped or has no feedback,
  • a zone that is on has lost vacuum, is still waiting for vacuum, or shows No vacuum,
  • a pod is moving or faulted.

Only zones on the active table count. The Dual Table auto-start after M30 waits the same way until the new table's zones are green.

With Turn Auto zones on at file start checked, Cycle Start of a file from the top turns the Auto zones (on the active table) and their pumps on, then shows "Waiting for vacuum" until they have vacuum, and then runs the file. Cancel stops the Cycle Start and leaves the zones on. File Resume, Run From Here and a resume from Feed Hold don't switch zones. With a Material source set, the Auto zones are the zones under the material (see Material zones), so a program needs no vacuum M-code at all.

Reset, Disable and Cycle Stop

  • Reset clears zones that are red or orange and already turned off. Overrides stay on.
  • Disable, Cycle Stop and E-stop leave the zone, pump and pod outputs as they are, so the part stays held. This needs the outputs to be Mach output signals; device I/O points are never switched off anyway.

M-codes

The vacuum M-codes are described in full in the MachPro Advanced M-Code Reference.

M-code Words Does
M289 A1, B1, Z1, E1, T Zones on. Starts their pumps first and waits for vacuum. No zone word: every zone.
M290 A1, B1, Z1, E1, T Zones off, then waits T seconds (release). Pumps stay on. No zone word: every zone.
M291 P, list Pumps on, waits for their feedback. No P and no list: every pump.
M292 P, list Pumps off.
M293 list, C1 Adds zones to the Auto zones (C1: replaces them). Saved; switches nothing.
M294 list Removes zones from the Auto zones. Saved; switches nothing.
M295 A1, B1, Z1, E1, V1, T Raises the zones' pods and waits until they are up. V1: then turns their vacuum on, as M289.
M296 A1, B1, Z1, E1, T Turns the zones' vacuum off, waits T seconds, lowers their pods.

The zone words can be combined,combined. M289 or M290 with none of them switches every zone (on both tables with Dual Table); M295 and M296 need at least one is needed:one:

  • A1 - the Auto zones.
  • B1 - Dual Table: the active table's zones plus the shared zones. Nothing when Dual Table is off.
  • Z1 - the zones listed in a comment on the same line: (Data:"1,3,5") or (Data:"1-4,7").
  • E1 - the zones under the material (see Material zones).
M289                     (every zone on, wait for vacuum)
M289 A1                  (Auto zones on, wait for vacuum)
M289 Z1 (Data:"1-4,7")   (zones 1 to 4 and 7 on)
M289 E1                  (the zones under the sheet on)
...
M290 E1 T1               (the same zones off, 1 second release)

Put the words after the M-code: in Z1 M289 the Z1 moves the Z axis. The zone list must be in quotes. An error (an unknown zone, a pump that never starts, a zone that loses vacuum while M289 waits) raises an alarm and disables the machine.

Material zones (E1)

E1 turns on (or off) the zones the material covers, so a program can hold down only the zones under its sheet. A zone is picked when at least Vacuum Material Zone Percent of its area is under the material. Only X and Y count. With Dual Table on, only zones on the active table (and shared zones) are picked. Zones need their X / Y min and max set in Mach Config; zones without them are skipped.

While a file with material is loaded, the zones under the material are also the Auto zones: the widget's Auto buttons and the tool path outlines show them before you press Cycle Start, and M289 A1 or Turn Auto zones on at file start turns them on. They follow work zero when it moves. They are not saved: your own Auto zones come back when the file is closed, the Material source is set to None, or the file has no material (no sheet size in the header, no cutting moves).

Settings (Mach Config > Vacuum, Material row, or Settings page > Vacuum > Material)

Setting Default What it does
Vacuum Material Source None Where the material comes from: GCode Extent, Header or Header, then GCode Extent (below). None: E1 raises an alarm.
Vacuum Material Zone Percent 50 % How much of a zone must be under the material. 0 % = any overlap (a zone that only touches the edge doesn't count).
Vacuum Material Header Origin Bottom Left Where work zero is on the sheet when the header gives the sheet size but not where zero is: Bottom Left, Bottom Right, Top Left, Top Right or Center.

Where the material comes from

  • GCode Extent - the area the loaded file cuts: its feed moves (rapids are left out), with the tool and fixture offsets applied. It is the tool's centre line, so an outside profile or a lead-in makes it a little bigger than the part; the percent allows for that.
  • Header - the sheet size written in the file's header comments, read when the file loads. The sheet is placed so work zero is at the Header Origin corner (or where the header says zero is). Work zero must really be on the sheet's corner for the right zones to come on.
  • Header, then GCode Extent - the header when the file has a sheet size, otherwise the GCode Extent.

The GCode Extent follows work zero: setting zero after loading the file moves it, without regenerating the tool path.

Sheet sizes read from the header

Example Written by
( Material Size)
( X= 96.000, Y= 48.000, Z= 0.750)
Vectric Aspire / VCarve (MachMotion posts and stock posts)
[MATERIAL size: 48.000" x 48.000" x 0.484"] Vectric CAMaster posts
(STOCK/BLOCK, 219, 150, 8.35, 109.5, 75, 8.35) Carbide Create, Fusion's Easel post (gives where work zero is, too)
(Stock Size X100 Y50 Z20)
; Stock Size: 100(X) * 100(Y) * 5(Z) mm
(Material Size: 8.000in-x, 6.000in-y, 0.750in-z)
Fusion third-party posts, RhinoCAM, Makera, hand-written headers
(stockMin:0mm, 0mm, -13.5mm)
(stockMax:419.1mm, 50.8mm, 0mm)
Carbide Create

The size word can follow material, stock, sheet, panel, board, blank or workpiece. Vectric's ( XY Origin for Material = Bottom Left Corner) line sets where work zero is. Units come from mm, in or " on the size, otherwise from a G20 / G21 in the header, otherwise the machine's units; a metric sheet on an inch machine is converted.

Sizes without axis letters, such as (Sheet size: 1220 x 2440), are not read: nothing says which number is X, and a wrong guess turns the sheet 90°. Add X and Y to the comment, for example (Sheet Size X1220 Y2440).

When there is no material

E1 raises an alarm, and switches nothing, when Material Source is None, no file is loaded, the header has no sheet size (Header), or the file has no cutting moves in X and Y. It never falls back to every zone. A sheet that covers no zone is not an error: nothing is switched. Every E1 writes the material box, where it came from and the zones it picked to the log.

Pods

Some tables have a vacuum pod per zone on a cylinder, raised to hold a slab and lowered out of the way. Turn on Pods raise and lower in Mach Config > Vacuum; four columns appear in the zone grid. A zone with an Up output has a pod.

Setting / column Default What it does
Pod wait 5 s How long a pod has to reach up or down before it faults.
Pod sequence Interlocked Interlocked: vacuum only turns on for a raised pod, and lowering a pod turns its vacuum off first. None: pods and vacuum are independent.
Vacuum on after raise, delay Off, 1 s Once a raised pod is up, wait the delay, then turn its zone's vacuum on.
Up output / Down output   Drive the pod. No Down output: spring return.
Up input / Down input   Confirm the position. Empty: that direction isn't checked.

Pods only move while the machine is enabled, and hold their position through Disable and E-stop. Faults: Pod Not Up, Pod Not Down, Pod Dropped (a raised pod's Up input went off). Raise pods with M295 (or the widget) before M289: M289 never raises a pod.

M295 Z1 (Data:"1-12")      (raise pods 1 to 12)
M289 Z1 (Data:"1-12")      (vacuum on)
...
M296 Z1 T1 (Data:"1-12")   (vacuum off, 1 second release, lower the pods)

Dual Table

With Dual Table on, give each zone a Table in the zone grid: Table 1, Table 2, or shared. A zone is active when it is shared or on the active table (with Table 3, every zone).

  • Only active zones alarm and hold Cycle Start. A loss on the idle table is a warning message.
  • Switching tables leaves the zones as they are.
  • M289 B1, M289 E1, the Active Table commands and the widget's active-table tiles all use the active table's zones plus the shared zones.

Tool path display

With Show zones on tool path on, each zone with an X / Y min and max is drawn on the tool path as a see-through box in its state's colour, with its number (Show zone numbers) and an outline on Auto zones. Pods show a small triangle. The colours and transparency are set in Mach Config > Tool Path > Vacuum Zones. With Zone positions set to Surface, the zones move with the surface offset.

User commands and lamps

These commands can be put on Function Buttons and operator panel buttons. Each has a lamp: off = off, blinking = on but not confirmed (waiting, lost, a pump starting or stopped), solid = OK.

  • Vacuum Zone N Toggle / On / Off
  • Vacuum Pump N Toggle / On / Off, and Vacuum Pump Toggle / On / Off (every pump)
  • Vacuum All Zones On / Off
  • Vacuum Auto Zones Toggle / On / Off
  • Vacuum Table N All and Vacuum Active Table All Toggle / On / Off (Dual Table)
  • Vacuum Zone N Pod Toggle / Raise / Lower, and All / Auto / Table Pods Raise / Lower (pods)

A command that turns a zone on also starts its pumps when Zone on starts its pump is checked.

Troubleshooting

Every vacuum event is logged with the tag [VACUUM]: state changes (Zone 3: Starting -> OK), M-code actions, table switches and I/O that couldn't be found.

Problem Check
No Vacuum page in Mach Config The machine family on the Defaults page isn't Router.
Mach Config won't save See Validation; the message lists what is wrong.
Tiles say "Not monitored" Vacuum is disabled, Zones is 0, or there was a load error (search the log for "Error in vac.").
Zone stays yellow, then orange Vacuum is never confirmed: the switch isn't on, or the reading is below Set. Check Proof matches the sensors fitted.
A fault but the program wasn't held Faults only act during a G-code file, and only for zones on the active table.
Part dropped on Disable or Cycle Stop The zone output isn't a Mach output signal, or monitoring never started.
M289 alarms about the zone list The list isn't in quotes: use (Data:"1,3").
M289 alarms "monitoring is not running" A checked zone was asked for while monitoring is off (see "Not monitored").
Vacuum Pump Stopped / No Pump Feedback The pump's feedback input went off, or never came on within the Vacuum wait time. Check the pump and its wiring.
Zone on but its pump didn't start The machine is disabled (pumps never start then), Zone on starts its pump is unchecked, or the zone has no pump (Pump column) or the pump has no output.
A pump turned itself off Pump idle off: it ran that long with none of its zones on. Set it to 0 to keep pumps running.
"raise its pod first" Pod sequence is Interlocked and the pod isn't up. Raise it (M295, the pod pill), or set Pod sequence to None.
Pod Not Up / Not Down / Dropped Check the pod, its air and its input.
Zones drawn in the wrong place Zone positions (Machine / Surface) doesn't match how the zone boxes were measured, or the surface offset isn't set.
M289 E1: "no material" Material Source is None, no file is loaded, the header has no sheet size the reader understands, or the file has no cutting moves. The log says which.
M289 E1 or the Auto zones pick the wrong zones Header: work zero isn't on the sheet corner set by Header Origin. Check the zone X / Y min and max, and the percent. The log shows the material box and the zones picked.