run.synthetos.com · Safety contract
Safety contract
run.synthetos.com is being built to drive real CNC machines. A CNC machine can crush, cut and burn, and it can start a fire. Read this page before you connect a machine, and keep your emergency stop within reach whenever the machine is powered.
This version cannot connect to a machine. It is a foundation build: nothing in it can open a serial port, so nothing on this site can move your machine yet. The rules below are the contract every later version keeps.
What this software is, and what it is not
run.synthetos.com is a browser workspace for setting up, wiring, flashing and running hobby and light-industrial CNC machines with Synthetos TinyG controllers (and g2core later). You sign in with a Synthetos account to connect a machine, start a job and save your projects.
It is not an emergency stop
- The on-screen Pause and Stop job buttons are ordinary controlled stops, sent over USB through your browser and operating system. They are not safety-rated. They can arrive late, or not at all.
- It is not a guard. It cannot see people, smoke or fire, and it cannot remove power from your motors or spindle.
- It is not certified to any safety standard.
- Only a hardwired emergency stop (E-stop) can stop your machine in an emergency.
Your account is never in the stop path
- Only the browser tab connected to the machine controls it. Nothing on Synthetos servers can start, stop or change your machine.
- Pause, Stop job, spindle off and the recovery controls never need you to be signed in. Signing out, an expired session or a lost internet connection never stops or changes a job that is already running. Until you sign in again, starting a job, jogging, homing and changing settings are refused, and cloud save is paused. If this happens while a machine is connected, the workspace shows:
Signed out. A running job and Pause, Stop and Spindle off are not affected. Sign in again to start a job, jog, home, or change settings. Cloud save is paused until you sign in again.
- Files and settings saved in your account are not checked for safety. Review every change before you use it on a machine.
Who it is for
An informed adult who built or owns the machine, has installed a hardwired E-stop, has read this page, and stays at the machine, paying attention, whenever it is powered. Do not use it unattended, from another room, through remote-desktop software, or from a phone or tablet.
What the software cannot guarantee
This list is reproduced word for word from the safety case (SAFETY.md §7).
- It cannot stop your machine in an emergency. Only a hardwired E-stop can.
- It cannot guarantee that a stop command arrives or how quickly it arrives. The command passes through the browser, the operating system, USB and the firmware.
- It cannot stop the machine if the browser tab closes, crashes, is discarded or sleeps, or if USB is lost. The controller keeps running its queued moves.
- It cannot turn off a spindle, laser or coolant if the controller does not obey or the link is lost. On TinyG a feedhold or a program stop (M0/M1) leaves the spindle running. At a tool change (M6) Run sends M5 and M9 itself before it shows the tool-change card, and the controller has to obey them.
- It cannot see your wiring, your switches, your workpiece or the people around the machine.
- Its preview and bounds checks use its own interpreter and can disagree with the firmware.
- It cannot detect mechanical faults: lost steps, loose couplers, broken switch wires.
- A completed bring-up journey records what you attested and what small tests showed. It does not mean the machine is safe.
- Your account stores files and settings. It does not make them correct or safe for a machine. Review every change before you use it.
- It is not certified to any safety standard.
- It cannot protect you if the code served at run.synthetos.com is itself replaced by an attacker. Keep your E-stop within reach.
Ways to stop a machine
IEC 60204-1 sorts stops into categories: category 0 removes power at once; category 1 brings the machine to a controlled stop and then removes power; category 2 is a controlled stop that leaves power on. An emergency stop must be category 0 or 1, and it must work in hardware.
| Control | What it does | Is it an emergency stop? |
|---|---|---|
| Hardwired E-stop | Removes motor and spindle power in hardware (category 0 or 1). Works when the computer, the browser or the controller has failed. | Yes. The only one. |
| Stop job (on screen, when connected) | Ends the job and commands the spindle and coolant off. A controlled stop, similar to category 2, sent over a link that is not safety-rated. | No. |
| Pause (also the Escape key) | A feedhold: motion decelerates and pauses. On TinyG a feedhold does not stop the spindle or coolant. Use "Stop job" to end the job with the spindle off. | No. |
| Reset button on the board | The reset button on the board is not an E-stop. A reset makes outputs float and may switch an active-low relay ON. | No. |
| Closing the tab, or unplugging USB | Does not stop anything. The controller keeps running the moves it has queued, and the spindle stays as it was. | No. |
Emergency stop requirements
Every machine driven by run.synthetos.com must have a hardwired emergency stop that meets all of these:
- Latching. Once pressed it stays pressed until you deliberately reset it, and resetting it never restarts the machine by itself.
- Normally-closed contacts. The circuit is closed in normal running, so a broken wire or a failed contact stops the machine instead of disabling the stop.
- Removes power in hardware. It cuts motor power (Vmot) and spindle or VFD power through contactors or relays in the power path. A signal to the controller, or to this software, is not enough.
- Never the reset button. Do not wire the E-stop to the board's reset button and do not use the reset button as a stop. The reset button on the board is not an E-stop. A reset makes outputs float and may switch an active-low relay ON.
- In reach and tested. Within reach whenever the machine is powered, and tested before each session.
Consult a qualified electrician. Emergency stop circuits must remove motor and spindle power in hardware. Have a qualified electrician design, install and check the circuit, especially where mains power, a VFD or a spindle is involved.
Your computer, browser and tab
If the tab is closed, frozen or put to sleep while a job runs, the machine keeps moving and the spindle keeps running. Set up the computer so that cannot happen:
- Use desktop Chrome or Edge, on mains power, connected by USB to one controller.
- Keep run.synthetos.com visible in its own window. Open it in one tab only. The installed app window counts as a tab: closing it is closing the tab.
- Turn off sleep and screen lock in your operating system while the machine is powered.
- Chrome: in Settings, Performance, add run.synthetos.com to Always keep these sites active so Memory Saver never discards the tab (Chrome Help). Edge: in Settings, System and performance, add it to Never put these sites to sleep.
- Do not control the machine through remote-desktop software, and do not use a phone or tablet: they hide, throttle or freeze tabs.
- Close other programs that talk to the controller (CNCjs, serial-port-json-server, your own scripts) before you connect.
Report a safety issue
If a machine is behaving unsafely right now, stop it with your E-stop first. Then tell us.
- Report it privately: report a vulnerability on GitHub (synthetos/run, Security tab). Please do not open a public issue for a safety defect.
- Include what you did, what you expected and what the machine or page did; the version and commit shown in the safety bar (this page: v0.5.19 · 7dcbf26f8d80 · 2026-11-12 14:20); the controller, firmware build and browser; and the steps to reproduce it.
- We treat safety defects as security vulnerabilities and fix them first (security policy).