Skip to content

emischorr/prusa_link

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PrusaLink

A wrapper around the local PrusaLink API of a supported Prusa 3D printer (MK4/S, MK3.9/S, MK3.5/S, XL, MINI / MINI +, SL1, SL1S SPEED). For further instructions how to setup PrusaLink (and obtain IP and password) have a look at the official Guide from Prusa.

Currently supports:

  • status info
  • job info
  • start print job
  • stop, pause, continue a job
  • retrieve storage info
  • file and directory listing
  • file upload (since v0.1.1)

Usage

{:ok, mk4} = PrusaLink.printer("192.168.10.10", "your_password")

PrusaLink.specs(mk4)
> %{
    name: "prusa-mk4",
    serial: "10000-1111444433332222",
    api_version: 1,
    capabilities: %{"upload-by-put" => true},
    mmu: false,
    nozzle: 0.4
  }

PrusaLink.status(mk4)
> {:ok,
    %{
      "printer" => %{
        "axis_x" => 241.0,
        "axis_y" => 170.0,
        "axis_z" => 61.5,
        "fan_hotend" => 0,
        "fan_print" => 0,
        "flow" => 100,
        "speed" => 100,
        "state" => "FINISHED",
        "target_bed" => 0.0,
        "target_nozzle" => 0.0,
        "temp_bed" => 23.9,
        "temp_nozzle" => 25.0
      },
      "storage" => %{"name" => "usb", "path" => "/usb/", "read_only" => false}
  }}

Installation

The package can be installed by adding prusa_link to your list of dependencies in mix.exs:

def deps do
  [
    {:prusa_link, "~> 0.1.1"}
  ]
end

Documentation can be found at https://hexdocs.pm/prusa_link.

Releases

No releases published

Packages

No packages published

Languages