DevOps & CloudDocumentedScanned

snapmaker

Monitor and control Snapmaker 3D printers (U1.

Share:

Installation

npx clawhub@latest install snapmaker

View the full skill documentation and source below.

Documentation

Snapmaker Printer Control

Control Snapmaker U1 printers via the Moonraker API.

Configuration

Create a config file at ~/clawd/config/snapmaker.json:

{
  "ip": "192.168.x.x",
  "port": 80
}

Or use environment variables:

export SNAPMAKER_IP=192.168.x.x
export SNAPMAKER_PORT=80  # optional, defaults to 80

Config search order:

  • SNAPMAKER_IP environment variable (highest priority)

  • ~/clawd/config/snapmaker.json

  • ~/.config/clawdbot/snapmaker.json
  • Quick Commands

    Check Status

    scripts/snapmaker.py status

    Filament Info

    scripts/snapmaker.py filament
    Shows RFID tag data for each slot: material type, color (hex), temp ranges, and sensor status.

    Monitor Print (Live)

    scripts/snapmaker.py monitor

    Print Control

    scripts/snapmaker.py pause
    scripts/snapmaker.py resume  
    scripts/snapmaker.py cancel

    Temperature

    scripts/snapmaker.py temps

    API Reference

    The U1 uses Moonraker REST API on port 80:

    EndpointDescription
    /server/infoServer status
    /printer/infoPrinter info
    /printer/objects/query?heater_bed&extruder&print_statsStatus
    /printer/print/pausePause print
    /printer/print/resumeResume print
    /printer/print/cancelCancel print

    Status Response Fields

    • print_stats.state: standby, printing, paused, complete, error
    • print_stats.filename: Current file
    • print_stats.print_duration: Seconds elapsed
    • virtual_sdcard.progress: 0.0 to 1.0
    • heater_bed.temperature / heater_bed.target: Bed temps
    • extruder.temperature / extruder.target: Nozzle temps

    Filament & Sensor Data

    Query filament RFID and sensors:

    /printer/objects/query?filament_detect&filament_motion_sensor%20e0_filament&filament_motion_sensor%20e1_filament&filament_motion_sensor%20e2_filament&filament_motion_sensor%20e3_filament

    filament_detect.info[]

    Array of 4 slots with RFID tag data (or defaults if no tag):

    FieldDescription
    VENDOR"Snapmaker" or "NONE" if no RFID
    MANUFACTURERe.g. "Polymaker"
    MAIN_TYPEMaterial: "PLA", "PETG", "ABS", etc.
    SUB_TYPEVariant: "SnapSpeed", "generic", etc.
    RGB_1Color as decimal int (convert: #${(rgb>>16&0xFF).toString(16)}...)
    ARGB_COLORColor with alpha (decimal)
    WEIGHTSpool weight in grams
    HOTEND_MIN_TEMP / HOTEND_MAX_TEMPNozzle temp range
    BED_TEMPRecommended bed temp
    OFFICIALtrue if official Snapmaker filament

    filament_motion_sensor e{0-3}_filament

    FieldDescription
    filament_detectedBoolean - filament present in slot
    enabledBoolean - sensor active
    Note: Slots can have filament_detected: true but VENDOR: NONE — this means third-party filament without RFID tag.