Skip to content

Instantly share code, notes, and snippets.

@rdbahm
Last active August 14, 2021 18:08
Show Gist options
  • Save rdbahm/64d37032069c1108bfe2e1a8e3f48f27 to your computer and use it in GitHub Desktop.
Save rdbahm/64d37032069c1108bfe2e1a8e3f48f27 to your computer and use it in GitHub Desktop.
Dremel 3D45 Web Services Description
  • Port 80
    • http://[ip]/command
      • To be clear, this is literal. It's the actual word "command."
      • Commands are sent as a POST in simple key-value notation.
      • Known commands:
        • These commands are sent verbatim:
          • GETPRINTERINFO
            • Returns basic printer info, such as model number.
          • GETPRINTERSTATUS
            • Returns info such as filament type, nozzle temperature, etc.
            • Also returns layer, which is intriguing.
            • Notes on specific returned values:
              • Layer: Always returns 50?
              • fanSpeed: Always returns null
              • networkBuild: 1 if printing a network job, 0 otherwise.
          • GETJOBSTATUS
          • NOZZLEHEAT
          • PLATEHEAT
          • STOPNOZZLEHEAT
          • STOPPLATEHEAT
        • These commands are sent as listed - the entire body sent via POST should be "KEY=VALUE"
          • PAUSE=[jobname]
            • If sent with the name of the job you want to pause (get from GETPRINTERSTATUS), pauses the job.
          • RESUME=[jobname]
            • Same as PAUSE
          • CANCEL=[jobname]
            • Same as PAUSE
          • PRINT=[jobname]
            • Print a file once it has been uploaded to the printer.
    • http://[ip]/print_file_uploads
      • POST the data as a form with name "print_file" and a second field called "filename," then the gcode.
  • Port 10124
    • http://[ip]:10124/
    • A snazzy little web UI containing most of the info of the less user-friendly port 80.
    • Most of the endpoints require a POST, not GET. Use CURL, not your web browser.
    • Endpoints:
      • http://[ip]:10124/getHomeMessage
        • Returns printer status info, similar to GETPRINTERSTATUS
        • POST only
        • Returns JSON object
        • Includes information on current bed and nozzle preheat status, but this status frequently does not match the actual printer's state - recommend computing your own value for preheat instead of using the ones provided here.
      • http://[ip]:10124/bedPreheat
        • If sent with {"value": "on"} or {"value": "off"}, toggles bed preheat setting.
      • http://[ip]:10124/nozzlePreheat
        • If sent with {"value": "on"} or {"value": "off"}, toggles nozzle preheat setting.
      • http://[ip]:10124/checkNewFirmware
      • http://[ip]:10124/heartbeat
      • http://[ip]:10124/setStaticIp
      • http://[ip]:10124/setProxy
      • http://[ip]:10124/enableStaticIP
      • http://[ip]:10124/enableProxy
      • http://[ip]:10124/getFileStatus
      • http://[ip]:10124/getSettingsMessage
      • http://[ip]:10124/getFilesMessage
      • http://[ip]:10124/logout
      • http://[ip]:10124/operation
      • http://[ip]:10124/getAboutMessage
      • http://[ip]:10124/startDownloadNewFirmware
      • http://[ip]:10124/startUpdateNewFirmware
      • http://[ip]:10124/getWifiList
      • http://[ip]:10124/startConnectWifi
      • http://[ip]:10124/changePassword
      • http://[ip]:10124/getConnectWifiStatus
      • Others:
        • Inspect the webUI in your browser to learn other ones - there seem to be some used for printer administration, starting jobs, etc.
        • I couldn't find commands for:
          • Pause Job
          • Stop Job
          • Upload Job
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment