ScottW514 bfb5cb27d8 The tail after Idle is one queue depth, and it does not grow
The open item "Idle before the kernel drains" asked to decide between
holding Idle until the kernel drains and stopping the continuation pads
growing the lag. Measured first: on the machine, four chained 50 mm jogs
against cnc/state give 171, 175, 177 and 176 ms after Idle. One queue
depth, flat. The growth the item described is gone, so neither driver
change was made and the item is closed.

Host side agrees and says where the mechanism lives. Stream bytes are the
time axis, so a dumped stream's length is how long the machine plays it:
chained jogs produce 35755 bytes each with no growth, and the churn
session holds at 64790 bytes at a producer lead of 2 or 10 ms. Only above
the lead ceiling does it inflate. Rule 17 now holds that stream to a
budget derived from the job rather than to a recorded number, so the
inflation regime cannot return unnoticed; it fails at 5899 and 8005 ms
with the ceiling lifted and passes at 2301 against 3800.

BRINGUP carried a second error. It said every forgectrl path that stops
the controller after motion waits for cnc/state idle. super.c says
outright that POST /controller/stop is not idle-gated, because it is also
the emergency lever, and safes the machine with cnc/stop and the latch
before the signal instead. The mode switch, the cooling gate and the
daemon shutdown do gate on machine_is_idle(). Both the tail figure and
the gating claim are corrected, and CAMPAIGN-LOG carries the measurements
and the decision not to hold Idle.

Acceptance: rule 17 is a host harness rule in the grblHAL repo's CI, not
a catalog case. The catalog is unchanged because no machine behavior is:
the driver change is a bound on an out-of-range knob.
2026-09-07 12:19:16 -04:00
2026-06-19 13:41:23 -04:00
2020-04-15 17:09:41 -04:00

OpenGlow/ForgeFIRM Firmware for Glowforge

⚠️ BETA

ForgeFIRM is in beta. Every release below 0.1.0 is a beta release. Expect problems, and expect frequent updates. Upgrade whenever a newer release is available, and report what you find on the community forum.

Open-source firmware for Glowforge brand CNC lasers. ForgeFIRM replaces the cloud-dependent factory software on the stock control board - no hardware modification - and gives the machine a local controller, a local web control panel, and a standard Grbl interface.

What it does

Two controller modes, selected in the web panel and switchable while the machine is idle:

  • GRBL mode: grblHAL runs on the machine and speaks Grbl 1.1 over TCP port 23, so LightBurn, UGS, cncjs, etc... drive the laser directly. Motion runs on the board's own hardware step engine (SDMA + EPIT), fed live by a local planner. M3/M4 dynamic laser power, coolant-flow verification, over-temp holds, and an operator button press to arm the laser for each job.
  • Cloud mode: The machine signs in to the Glowforge web service with its own identity, names its software as ForgeFIRM, and uses the service the way a stock machine does, so the phone and web apps work as they always did. Optional, and off by default. GRBL mode jogs and cuts without it; the one GRBL-mode function that still reaches the Glowforge service is camera-referenced homing (below), until limit-switch homing lands.
  • A web control panel: Machine status and position, coolant and fan telemetry, safety-switch states, live camera stream, machine settings, hardware diagnostics, firmware updates, and boot-slot management.
  • Camera-referenced homing: $H from any sender runs the factory-style camera homing cycle through the Glowforge service (a Glowforge account and a live service session are required for $H; everything else in GRBL mode runs without them).

Hardware

The control board is common to Glowforge Basic, Plus, and Pro. The 5 MP (OV5648) camera modules are fully supported and hardware-validated. The 8 MP (OV8856) modules found in "HD" units have a complete capture path - the kernel patches, device tree and sensor-aware capture profile they need are all in the build, but it has never run on an 8 MP machine, so treat it as untested.

What this costs

ForgeFIRM is free in both senses: free as in beer, free as in speech. All of it is public and released under MIT and GPL licenses. Read it, build it, change it, use it, pass it on.

The work happens in public, including the parts that don't work yet, which are written up with more candor than flatters anyone. No paid tier. No license key, no subscription, no activation, no Pro edition, no feature parked behind a paywall. Nothing is held back for a rainy day, mostly because there's no plan for a rainy day.

If someone offers to sell you this firmware, the licenses allow it and nobody's calling it theft. Just note that you'd be paying for something that's given away. Get it from the source. Same price everywhere, and here you get to read what you're running.

Safety

These machines contain a CO₂ laser: it burns, blinds, and starts fires. Never defeat the lid switches or interlock. Never leave a running job unattended. Keep a fire extinguisher within reach. Read this before you cut your first job, and read this regulatory and legal section before installing. This page describes the hardware safety chain and the software gates ForgeFIRM stacks on it.

THIS IS EXPERIMENTAL SOFTWARE
Use of this software could seriously maim or kill you or others, and could void your warranty.
Use it at your own risk.

This project is not affiliated with or endorsed by Glowforge.

S
Description
OpenGlow/ForgeFIRM Firmware for Glowforge
Readme
5.8 MiB
Languages
Python 90.3%
Shell 3.5%
BitBake 2.6%
C 1.2%
JavaScript 1.2%
Other 1.2%