https://github.com/emischorr/prusa_link
Wrapper around the local Prusa Link API
https://github.com/emischorr/prusa_link
3d-printing api elixir prusa prusalink
Last synced: 4 months ago
JSON representation
Wrapper around the local Prusa Link API
- Host: GitHub
- URL: https://github.com/emischorr/prusa_link
- Owner: emischorr
- License: mit
- Created: 2024-10-28T16:19:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-01T13:16:11.000Z (over 1 year ago)
- Last Synced: 2025-11-18T02:14:59.374Z (7 months ago)
- Topics: 3d-printing, api, elixir, prusa, prusalink
- Language: Elixir
- Homepage: https://hex.pm/packages/prusa_link
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://help.prusa3d.com/guide/wi-fi-and-prusalink-setup-mk4-mk3-9-mk3-5-xl-mini_413293) 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
```elixir
{: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`:
```elixir
def deps do
[
{:prusa_link, "~> 0.1.1"}
]
end
```
Documentation can be found at .