Dashboard¶
Open http://triaina.local:8080/ from any device on your network. The service
must be installed first: Dashboard service.
Printer panel¶
Live, once a second: Klipper state, print state, triaina mode (printer or cutter), blade up or down, nozzle and bed temperature, homed axes, current file and progress.
| Button | Does | Allowed when |
|---|---|---|
| Cutter mode | Runs CUTTER_MODE |
Printer online and idle |
| Printer mode | Runs PRINTER_MODE |
Printer online and idle |
| Pause / Resume / Cancel | Moonraker print controls | A job is printing or paused |
| Emergency stop | Moonraker emergency_stop; Klipper halts and needs a firmware restart |
Always (asks first) |
| Firmware restart | Moonraker firmware_restart; brings Klipper back |
Shown only while Klipper is not ready (after an emergency stop or an error) |
When Klipper is shut down or in error but Moonraker answers, the panel says
Klipper shutdown: <reason> rather than "offline". "Offline" means the
printer does not answer at all.
"macros not installed" in the Mode field means printer.cfg does not include
the triaina macros.
Jobs¶
-
New job: choose the type and drop a file.
Type Accepts What happens Print design (3D), Print model, Print knife mount 2D file, STL/3MF, or nothing Built and sliced on the Pi; see Printing from the dashboard Cut design SVG, DXF, PDF, AI, EPS, PNG, JPG Converted on the Pi with blade-offset compensation and a preview; see Cutting a design file Cut G-code G-code from Kiri:Moto, Inkcut, Inkscape, LightBurn Run through the preprocessor: heaters and extruder removed, knife macros added, feed capped. Refused if a move is beyond the knife's reach (see knife reach) Print G-code Sliced G-code Sent unchanged The job is now ready (a design is converting first). Nothing has been sent to the printer. Check the preview and details, or download the generated G-code from the job row. 2. Start: confirm the physical setup shown in the dialog (knife holder fitted and hotend cold for a cut; holder removed for a print). The service cannot see the toolhead, so this is your check. 3. The file is uploaded to the printer as
triaina-<id>-<name>.gcodeand started. The job follows the printer: running, then done, cancelled or failed.
A job will not start while the printer is printing or paused, while another triaina job is active, or while Klipper is not ready.
Camera¶
Set [camera] stream_url to an MJPEG stream (crowsnest on the printer or the
Pi) and the camera panel appears.
API¶
The dashboard is a client of the service's REST API. Interactive docs are at
http://triaina.local:8080/api/docs.
| Method | Path | Does |
|---|---|---|
| GET | /api/info |
Version, printer and Fluidd URLs, camera URL, config file, job types |
| GET | /api/status |
Printer snapshot |
| GET | /api/jobs |
Recent jobs |
| POST | /api/jobs |
Upload (multipart): kind, file (none for knife-mount). Design options width, fit, weed, blade_offset, cut_feed, threshold, invert; print options height, layer_height, infill, scale, keep_size; mount options holder_diameter, bolt_spacing, standoff |
| POST | /api/jobs/{id}/start |
{"confirm": true} |
| DELETE | /api/jobs/{id} |
Discard a ready job |
| GET | /api/jobs/{id}/output |
Generated G-code |
| GET | /api/jobs/{id}/preview.svg |
Cut preview (design jobs) |
| GET | /api/jobs/{id}/model.stl |
Generated model (3D jobs) |
| POST | /api/mode/{cutter,printer} |
Mode switch |
| POST | /api/print/{pause,resume,cancel} |
Print control |
| POST | /api/estop |
Emergency stop |
| POST | /api/firmware-restart |
Firmware restart |
| WS | /ws |
Live status and jobs |
| GET | /healthz |
Liveness (no token needed) |