From board files to a finished PCB.
A reference for preparing independent machining processes with the PCB isolation engine and machining tools.
Getting started
Every opening or reload creates an independent copy of the PCB EXAMPLE example automatically, with copper isolation prepared for both faces and one drilling process for all 36 centres with a 0.8 mm bit. The front isolation preview is already open. Select Preview on a saved process to inspect it; changing faces loads the prepared back isolation. These are generated toolpaths, not completed physical machining. Existing projects are preserved. Use New project, beside Import Gerbers / ZIP at the top, to start an empty board. It clears design-specific coordinates and tab positions while keeping reusable tool defaults.
- For your own PCB, choose New project, then Import Gerbers / ZIP and import your Gerber and Excellon files, individually or in a ZIP. Auxiliary files in ZIP archives are skipped.
- Expand Design files to check each layer's assigned role. Use Front copper, Back copper, Board outline or the relevant paste role. Excellon files supply the drill holes.
- Select the board side in the viewer. The process tree shows saved processes for that side.
- Use the + next to a process folder, set the essential parameters, and choose Save process or Save & preview.
- Inspect the generated toolpaths. Export the G-code, or connect your controller and run the individual process after reviewing its setup.
Click the project name beneath BOARD WORKSPACE to rename it. Choose Save or press Enter to confirm; choose Cancel or press Esc to discard the edit. The saved name is included in exported project files. Opening or reloading the application starts the example again, so export your project before leaving. Renaming does not invalidate generated toolpaths.
Choose Export project to download a .webpcb file containing all interpreted design layers, saved process setups, tools, feeds, spindle speeds, depths, tab positions, side transforms, layer roles and current tool/recipe defaults. Use Open project .webpcb to restore it as a new independent project; the existing project is preserved. Multiple processes in each folder and both board sides are included. The limit is 64 MB. Generated G-code, controller connections and measured surface maps are not included: regenerate the toolpaths and remeasure any required map before machining. The separate Export G-code action downloads only the selected process’s G-code.
In local mode, projects, layers, processes, recipes and generated jobs are saved on this computer. In the Render preview, storage is temporary and may be erased when the service restarts; export your G-code before leaving. The application starts with the example on every opening; export your own project and use Open project to continue it. A new project does not delete an older one, although a project-history picker is not yet available.
The process tree
Copper isolation, Drilling and Board outline are expandable folders. Click a folder to show or hide its saved processes. Use the + next to a folder to create another independent process of that type. Each saved child has its own name, tool and cutting setup; choose Edit beneath it, or click its name, to change its saved settings. Stencil and calibration processes appear in their own folders when present. The Front/Back selection filters the tree by board side and restores the last preview for each side without regenerating it. If a saved job has not been displayed yet, WEBPCB loads its existing toolpaths from the server. Use Preview to display another prepared process. Changing machining settings requires generating the updated toolpaths.
Prepared means a process has generated toolpaths, not that the physical machining is complete. The process tree organizes your work; it does not automatically chain machine operations or start the next stage.
Each process has its own layer, side, tool, feeds, depths, tab settings and coordinates. Editing one does not change the others. Changing machining settings clears that process's G-code and requires regeneration. Saving unchanged settings or changing only the name preserves the generated toolpaths and time estimate. Preview and the Run action in the ⋯ menu act on the chosen process. Export, regeneration and deletion are in its ⋯ menu. A saved process remains after a generation error so you can correct its settings.
Each process card shows an estimated machining duration after toolpath generation, based on its actual G-code: cutting feed, plunges, depth passes, holding-tab lifts, drilling pecks and rapid moves. Changing machining settings clears the estimate until regeneration. Existing prepared jobs gain an estimate without rerunning CAM. Rapids use a reference 3000 mm/min and the initial position is assumed to be G54 XYZ zero. Acceleration, spindle start-up, controller latency and operator pauses are excluded; actual machine time can differ.
01 · Copper isolation
Identical CAM inputs reuse a bounded in-memory cache. Changing the source geometry or cutting parameters requests a different result. Isolation previews use a maximum simplification tolerance of 0.00025 mm to reduce transfer and drawing costs. The machining G-code and original imported layers are unchanged by this display optimization.
- Select the copper Gerber for the intended side.
- Choose a flat end mill or V-bit and enter its actual dimensions.
- Set the negative final depth, cutting feed and spindle speed for your material and tool.
- Open Advanced cutting settings for isolation passes, overlap, plunge feed, travel height and multiple depth passes.
- Save and preview. Check clearance around traces before exporting or running.
Isolation passes widen the cleared copper in XY. Multiple depth passes descend in Z. They are independent settings. With a tapered tip, XY offsets use the effective cutting width at the final depth; shallow passes use the same centerline. This is not a 3D stock-removal simulation.
Clearing waste copper
In the copper isolation editor, enable Clear leftover copper. The clearing parameters appear only when enabled: board outline, copper clearance and overlap. Both stages use the same cutter, depth passes and feeds; V-bit spacing uses the effective diameter at final depth. Save & preview generates isolation first and clearing second in one editable process, with one combined 2D/3D preview and G-code export/run. Unchecking the option removes clearing on regeneration while retaining its settings. Previously saved standalone clearing processes remain editable. Hatch passes and boundary passes remove reachable waste copper between the protected Gerber features. Internal board cutouts are excluded. The cutter may not reach narrow pockets; use a smaller tool where needed. Every copper feature in the Gerber is preserved: this process does not infer net connectivity or automatically delete electrically isolated design copper.
Default PCB thickness is 1.6 mm, editable in each process. Default isolation cut depth is 0.05 mm (Z −0.05 mm), also editable. These values are independent: board thickness does not determine isolation depth. Process editors have no reference preset selector.
02 · Drilling
If the drill source is missing, choose Import drill files and select the PTH/NPTH Excellon files or the original Gerber ZIP. The editor reopens with your bit diameter, hole filter, name and depths retained. This ZIP action imports only drill files. Empty NPTH files are skipped and do not stop later PTH files in a multi-file selection. Gerber copper alone does not supply the Excellon hole centers.
- With one Excellon file, it is selected automatically and its name is shown. With multiple files, choose the drill source. Enter the physical Tool diameter. It is editable and is not copied automatically from the source file.
- Choose Up to the bit diameter to include centres whose original Excellon diameter is less than or equal to your bit diameter, or All holes to include every drill centre in this file. The live count shows how many holes will be drilled.
- All included centres use this one physical bit. The resulting hole diameter follows the bit you set, even when the original file specifies a different diameter; no circular milling or automatic bit changes occur.
- Set final negative depth, breakthrough, plunge feed, spindle speed and depth per pass. With multiple depth passes enabled, the tool retracts fully between pecks.
- Save & preview creates one editable process. Inspect its hole centres and 3D movements, then export or run that process. Reopen Edit to change the bit or filter and generate again.
Empty Excellon files in ZIP archives are skipped. Slotted-hole routing and enlarging holes by circular interpolation are not implemented. Older imported Excellon layers may need reimporting to capture drill-hit data.
PCB thickness is entered manually in each process setup, with a default of 1.6 mm. Changing thickness or breakthrough allowance suggests a final depth equal to their negative sum, measured from Z0 on the top surface. You can then edit final depth manually. Thickness is saved independently with each process and included in the exported project; it does not change the shallow copper-isolation depth.
03 · Board outline & holding tabs
- Select the dedicated board-edge Gerber and use a flat end mill.
- Enter the measured board thickness. Final cut depth initially follows thickness plus breakthrough allowance; inspect or change it in Advanced cutting settings.
- Choose the number of holding tabs, then set tool diameter, cutting feed, spindle speed and depth per pass.
- Expand Tab dimensions & outline options to adjust tab width, remaining height, placement phase, breakthrough, extra margin or endpoint joining tolerance.
- In Holding tab positions, select a bridge and drag it along the outline, or click the outline to move the selected bridge. Snapping aligns it with the board axes, interval midpoints and other bridges. Hold Alt or disable snapping for free placement. Arrow keys move by 0.1 mm; Shift uses 1 mm. Reset positions restores automatic placement. Positions are saved with this process.
- Save and preview. Internal closed cutouts run first; the outside perimeter runs last. Tabs appear in orange on the outside contour.
Tab width is the material bridge left along the edge; tab height is material remaining at the bottom. A count of zero produces a complete cut. Automatic placement starts on the X/Y midlines and adds bridges at successive interval midpoints. Tabs fit only on sufficiently long straight exterior edges; overlaps are rejected. An explicit nonzero Placement phase retains the older distribution. Internal waste must be secured separately. Internal tabs, nested islands and mouse bites are not implemented.
The outside is compensated outward by the cutter radius plus extra margin; internal cutouts are compensated inward. A cutter that does not fit an internal cutout is rejected. Bounded endpoint joins repair small, unambiguous gaps and are reported with their largest original gap. Intersecting contours, ambiguous joins, open outlines, separate boards and nested islands are rejected. Outline paths and holding-tab heights follow the measured surface when mapping is enabled; regenerate the process after measuring.
Each closed contour runs continuously through its depth passes at the same entry point and cutting direction. The cutter does not return to XY zero between passes or at the end. Holding tabs are crossed at their retained floor height, then the cutter descends to resume the cut. Safe-Z retracts occur between separate internal/external contours and after the final pass; the spindle then stops.
Inspecting toolpaths in 3D
After preparing a process, select its 3D button in the process tree, or select 3D preview beside Toolpaths. Copper isolation, drilling and board outline each have their own 3D action. Switching processes retains the active 3D view. It also works for the prepared example, without a controller connection. The viewer downloads that process's actual generated G-code, including depth passes, holding tabs, drill pecks, surface compensation and retracts. Selecting another process or regenerating requires loading that process's current job. Switching between 2D and 3D does not regenerate CAM or send machine commands.
Use +/− to zoom, Fit PCB to frame the board, or All movements to include every travel. Orbiting keeps a fixed scale. Drag to orbit with a fixed scale, Shift-drag to pan and scroll to zoom. Rotating does not automatically refit or resize the geometry. Arrow keys rotate the focused canvas; +/− zoom and F fits the view. Use Isometric, Top or Front for standard views. The Z × selector exaggerates height visually by 5 or 10; 1 preserves real proportions. This never changes G-code or machining depths. Hide Travel moves to inspect cutting paths. Yellow shows feed movements reaching below Z0, blue shows G0 travel and grey shows feed above the surface. Rapid XY motion below Z0 is marked red; verify zero and clearance before machining.
Use the Movement slider to inspect successive positions; the gold point indicates the endpoint and the readout reports XYZ in millimetres. The wireframe box is a reference envelope, not a reconstruction of the exact board outline or fixture. Its top is Z0; thickness comes from the process settings. The initial machine position is unknown, so the first approach is not fabricated. Linear G0/G1 jobs in G54 are supported; unsupported arcs, other work offsets and macros display an error rather than an approximate preview.
This is trajectory inspection, not stock removal or collision simulation. It does not verify clamps, spindle, tool length, real surface shape or physical machine setup. The ordinary Review & run confirmation remains necessary. Parsing large files runs in a browser worker; geometry is not simplified. The limit is 2,000,000 movements or 64 MB of G-code.
Tools & advanced settings
CNC 3018 starting defaults: 9,000 rpm, 1.6 mm PCB thickness and 2 mm travel Z (adjust to clear fixtures). These are calibration starting points, not universal settings. New processes use the values below; saved processes, loaded recipes and edited fields retain their own settings.
| Process / tool | XY feed · mm/min | Z plunge · mm/min | Final Z · mm | Z step · mm |
|---|---|---|---|---|
| Isolation · V-bit 30° / flat Ø 0.3 mm | 60 | 20 | −0.05 | 0.05 |
| Drilling · Ø 0.8 mm | — | 60 | Thickness + 0.1 mm breakthrough | 0.3 |
| Outline · flat Ø 2 mm | 200 | 30 | Thickness + 0.1 mm breakthrough | 0.2 |
Copper isolation uses the optimized PCB planner. It prepares each contour once and reuses it at every depth pass, with a 0.001 mm machining simplification tolerance and four-decimal millimetre coordinates. Older projects selecting FlatCAM are migrated to the PCB planner when regenerated. After generation, Ready in … s reports elapsed time through the server response, process refresh and an opportunity for the selected preview to paint. It is not just geometry calculation time.
The normal editor shows the settings most relevant to its operation. Collapsed groups preserve their values when you save.
| Setting | Meaning |
|---|---|
| Diameter / tip dimensions | Actual cutter size in mm. V-bit width depends on tip diameter, included angle and depth. |
| Final depth | Negative G54 Z at the deepest cut. It must not exceed cutting length. Outline depth must reach thickness plus breakthrough. |
| Multiple depth passes | Enable gradual descent. Depth per pass is the maximum Z increment; the final pass stops at the exact target. Maximum 200 depth passes. |
| Cutting / plunge feed | XY cutting speed and downward speed in mm/min. Drilling uses plunge feed. |
| Travel height | G54 Z for non-cutting moves. It must clear the board, clamps and fixtures. |
| Spindle speed / flutes | Programmed RPM and tooth count. The calculated feed per tooth is guidance, not measured spindle feedback. |
| Origin X / Y | Design coordinates subtracted after mirroring to obtain work coordinates. Generated programs use G54, absolute millimeters. |
| Mirror axis / center | For the back side, X becomes 2 × center − X, or Y becomes 2 × center − Y, according to the selected coordinate. |
Machine/material-specific parameters require physical calibration. Defaults are editable starting values, not verified cutting recipes.
Surface leveling
- Open Setup & tools → Surface leveling and connect a controller with a verified contact-probe circuit.
- Set the scan bounds over conductive copper, grid rows/columns, probe feed, safe Z and lowest probe Z. Keep all points clear of clamps.
- Establish G54 Z0 near the copper surface, confirm the setup and start the scan. This initiates real motion on a physical controller.
- After a complete scan, enable Use measured surface map on the relevant process and generate again.
Only complete maps are retained. Compensation uses bilinear interpolation, is scoped to the project/side/work offset, and does not extrapolate beyond the scanned grid. Rescan after changing work offsets, reconnecting or flipping the board. Travel height must clear the highest measured point by at least 0.5 mm. Maps and controller connections are held in memory.
Double-sided alignment and registration holes
- Import the dedicated board-outline Gerber. In Add a process → Alignment holes, or Back-side alignment → Configure alignment holes, create a front-side process for the four registration holes.
- Set the hole diameter, center offsets X/Y, board thickness, breakthrough, depth and plunge feed. Use a drill bit matching the hole diameter. Center offsets are measured outward from the X/Y limits of the board's bounding rectangle, not along an irregular contour. Both offsets must exceed the hole radius.
- Choose the mirror coordinate and center in design millimetres. The four holes form a rectangle symmetric about that mirror line. For an off-centre flip line, the rectangle expands to enclose both the PCB and its reflection. The layout sketch uses imported layer bounds; the generated preview uses the original outline centerline and is authoritative.
- Save and preview, then export or run this independent drilling process before machining the copper. The four cyan circles mark the actual hole diameter. Use stock large enough for the complete hole pattern plus a secure material margin, and prepare matching holes in the fixture or spoilboard. The application does not insert physical pins.
- Machine the front. Stop the spindle, retract, flip the stock about the planned line, seat it on the pins, and clamp it flat. Keep the outer stock until both faces are complete; route the board outline last.
- Open Back-side alignment and select the saved registration process. Its mirror axis, center and XY origin are reused. Verify physical registration, apply the back-side setup, reset Z for the new top surface and scan a new map if needed.
- Create the back-side processes using that setup and inspect their mirrored toolpaths. Existing processes retain their own coordinate settings: if the reference changes, update and regenerate affected processes on both sides. Do not pre-mirror the exported back-side Gerber.
The registration process has its own Edit, Generate, Preview and Export G-code actions. Its hole layout, drill and cutting settings are included in .webpcb project files. Choose a matching drill bit or mill circular pockets with a smaller centre-cutting flat end mill; the desired hole diameter is independent of cutter diameter in milling mode. Mechanical fit and machine alignment require physical verification.
Recipes & trace tuning
Open Setup & tools → Calibration coupons. Auto Tune previews five copper shapes with round pads joined by a thin trace. Each candidate has one depth and one contour spacing, interpolated from the configured ranges. The default test occupies 10 × 15 mm at the G54 test origin; its labels are preview annotations, not engravings.
- Set footprint, contours, shallow/deep depths and minimum/maximum spacing. Expand Tool, feed & work origin to set the real cutter, feeds, spindle and test location. The preview works without a connected controller.
- Spacing means centre-to-centre toolpath distance, not remaining copper clearance. Each contour is offset from the copper shape using the cutter width at that candidate's depth. Cut both directions repeats the same contour in reverse, at the same depth. It does not produce a separate comparison sample.
- Save the process or prepare its toolpaths. With a controller connected, Review & run opens the usual machine confirmation. Use a sacrificial copper blank. Inspect the result, then return through Edit under the saved calibration process.
- Select the cleanest candidate and confirm physical inspection. Refine selection saves this round and narrows both ranges around that candidate. Up to three rounds are supported. Each new round moves its origin in +X by the test width plus 2 mm. Check available stock and G54 before each run; changing these coordinates requires regenerating.
- Save recipe & apply depth saves the tool and test notes as an operator-verified recipe and applies the chosen depth to tool defaults. Contour spacing stays in the calibration process and recipe notes; isolation overlap remains independently configured. Existing PCB processes retain their own settings.
Saved rounds include all test settings, selection and inspection confirmation in the project export. After reopening an exported project, generate toolpaths again. There is no automatic optical inspection: the operator chooses the result. Older projects with nine-line grids retain their original calibration process.
Stencil cutting
Open Setup & tools → Stencil cutout, select the solder-paste Gerber, use a suitable flat end mill, and set depth for the actual sheet. The operation mills the inside contour of each aperture. Apertures too small for the cutter are skipped and counted. Preview and verify the result. This is a milling operation, not a laser controller.
Connection and machine control in one workspace
Connection, execution, DRO, jogging and the console are in the right sidebar. The header's Connect machine button focuses that panel; it does not navigate to another application.
- In Chrome, Edge or another browser exposing Web Serial, open the website over HTTPS (or the local localhost installation). Select USB in this browser · GRBL / FluidNC and the controller baud rate.
- Click Connect controller and select the USB serial port in the browser chooser. Nothing connects automatically on page load. Connection reads settings and status; it does not home, unlock, start the spindle or move axes.
- Wait for controller units and a fresh status report. Prepare the physical tool, work origin and fixtures. Home and Unlock are explicit actions in the same sidebar. The console sends one controller command at a time.
- Preview a prepared process and choose Run process. Confirm the tool, G54 origin, stock, clearance and back-side registration where applicable. The selected job's G-code is downloaded from the server and streamed from this browser to the USB controller, with an acknowledgement for every line.
- Hold, Resume and STOP remain in the right panel. The optional first-cut inspection pause waits for Resume. Completion requires a fresh controller Idle report; an acknowledgement alone does not mean the physical move is complete.
- Keep the browser tab open and the computer awake while machining. A serial error, controller alarm or reset interrupts streaming; jobs do not reconnect or resume automatically. Verify the physical state before starting another run.
STOP sends a controller reset; it is not a physical emergency stop. Keep the machine's physical emergency stop accessible. Browser streaming has been tested with simulated serial controllers, not a physical CNC.
The cloud server still cannot access USB ports or your private CNC network. USB control happens directly in this browser, without a local WEBPCB server or a second page. If the browser has no Web Serial API, the panel explains the requirement and disables USB connection. The local WEBPCB installation also offers the explicitly labelled simulator, server USB serial and FluidNC Wi-Fi modes in this same panel.
Surface probing works through browser USB. A complete map is bound to the project, face and reported work offset. When generating a compensated job, the browser sends that map to CAM without connecting the cloud server to hardware. The browser checks the map and work offset again before streaming. Zeroing, manual commands, homing, disconnects and interruptions invalidate the measured map. Maps are not included in project exports.
Troubleshooting
- No source layer available
- Import the appropriate Gerber/Excellon file. In Design files, verify its role and the selected board side.
- Saved process needs generation
- Use Generate on its card, or reopen the process and choose Save & preview. Changing machining settings invalidates only that process's current G-code.
- Cannot remove a layer
- A saved process references it. Choose another source layer for that process or delete the process first.
- Outline cannot close or cutter does not fit
- Check the dedicated board-edge file, endpoint join tolerance and cutter size. Review reported repairs rather than enlarging tolerance without inspecting the design.
- Stale edit or stale job
- Another tab edited or regenerated the process. Reload the workspace, reopen it, and regenerate its current setup.
- Server unavailable
- Start the local WEBPCB server with start.sh or start.ps1 and reopen http://127.0.0.1:8000/.