Skip to content

Releases: prusa3d/Prusa-Link

PrusaLink 0.8.1

02 Jul 06:47
Compare
Choose a tag to compare

Summary

  • Added support for Power Panic
  • Set Ready and Reprint
  • Enhanced MMU support
  • Raspberry Pi 5 support
  • Other improvements and fixes

This is a stable release of the PrusaLink 0.8.1. Please note that firmware 3.14.0 or newer is required. You can update your existing PrusaLink using an OTA update. In case of issues, consider flashing the full system image.

Added support for Power Panic

PrusaLink now supports manual Power Panic recovery. The printer will keep the bed heater ON and wait for user confirmation before resuming the print.
Power panic recovery

Note: If you're printing from the printer's SD card with PrusaLink connected over USB and encounter issues with Power Panic recovery failing, you can try a new option named reset_disabling, details of which are in the prusa/link/data/prusalink.ini file of this GitHub repo. This workaround is a last resort and is not recommended for regular use, as it may cause EEPROM fatigue.

Set Ready and Reprint

The printer now recognizes when a host is connected, enabling it to display new menu items on the LCD screen. "Set Ready" informs Connect that the printer is ready for another print job, while "Reprint" runs the last print job again.
Menu

Enhanced MMU support

PrusaLink now sends information about the MMU to Connect. Currently, only the connection status is visible.

Raspberry Pi 5 Support

This release of PrusaLink 0.8.1 will run on the newest Raspberry Pi 5. The Raspberry Pi 5 can be connected to the printer using USB connection. However, if you plan to connect it to the Einsy Raspi port via GPIO pins, a manual configuration is required.
The port to use should be named /dev/ttyAMA10 while the autodetection tries to use /dev/ttyAMA0

Here's a section from the README describing manual configuration:

PrusaLink behavior can be altered using command arguments and configuration
files. The default configuration path is /etc/prusalink/prusalink.ini and
does not get created automatically. The configuration documentation can be
found under prusa/link/data/prusalink.ini. The executable argument
documentation is provided in the standard help text screen shown after
running prusalink --help

The prusa_printer_settings.ini file is created by the PrusaLink wizard,
and can be downloaded from the PrusaConnect settings page once you
register your printer.

Other improvements and fixes

  • PrusaLink hosted prints now count towards statistics (Print hours and Distance)
  • Fix for Temperature Model calibration failing while PrusaLink is connected
  • The "Tune" menu now does not show up when PrusaLink connects to the printer
  • The PrusaLink 0.8.1 images are based on Raspberry Pi OS release 2024-03-15, running Debian 12 Bookworm

0.7.2

18 Oct 11:37
Compare
Choose a tag to compare

Summary

โ€‹This is the stable release of PrusaLink 0.7.2. This release fixes bugs found in previous release candidates. See the change logs of 0.7.1rc1 for the complete list of improvements with respect to 0.7.0.

Improvements with respect to 0.7.1rc1

  • Add an automatic PrusaLink image builder script

  • Add multi-instance documentation

  • Telemetry improvement

  • Image builder now attempts to turn the RPi wifi power management off in the startup script of newly generated images

0.7.1rc1

28 Aug 13:36
Compare
Choose a tag to compare
0.7.1rc1 Pre-release
Pre-release

PrusaLink release notes 0.7.1rc1

  • Added multi-instance signpost with navigation to specific PrusaLink instance
  • The PrusaLink instance number is displayed on the printer LCD
  • Added focus support for V4L2 cameras
  • Implementation of the high-level UPGRADE command
  • Local web interface update
  • Various bug fixes and implementation of minor changes, see ChangeLog

PrusaLink multi instance

In this mode, an instance of PrusaLink is created for each new printer
detected on any of the USB ports of the host system, allowing the user
to connect multiple printers using a single Raspberry Pi.

Setup

The multi instance image requires the same setup as the regular one,
but there are some differences

  1. The multi-instance manager does not connect to printers on the GPIO
    pins as the device udev auto-detection in Linux does not work on those
  2. Cameras automatically connect to the first instance only. If you wish
    to use for example a camera for each printer, you'll need to manually
    copy over relevant configuration
  3. In this image, the manager of these PrusaLink instances is run as root.
    However web interface of the instance manager is run under the user account.

Cameras

The temporary process of connecting multiple cameras is not user friendly
and requires manual work. This will change in the future.
The process is as follows:

  1. Connect all cameras you wish to use and let them connect to the first
    instance
  2. Open the web interface of the first instance and under cameras, save
    every camera manually. This will create a configuration section for each
    camera in prusa_printer_settings.ini of the first instance
  3. Using ssh, navigate to /etc/prusalink/prusalink1.ini and open it
  4. Turn off the camera auto-detection in the first instance by adding
    this section into the file
    [cameras]
    auto_detect = False
    
  5. Navigate to /home/<username>/PrusaLink1 and open
    prusa_printer_settings.ini
  6. Move the section corresponding to each camera over to the instance in which
    you wish to use it. The camera sections have hashes as names,
    the order of which is noted in the section [camera_order]
  7. Move the camera order entry for each camera as well.
    A camera order section with a single camera in it looks like this
    [camera_order]
    1 = asdfghjkl
    
  8. After a reboot, the cameras should be connected to the correct instances

Running the manager

To run PrusaLink in the multi-instance mode run prusalink-manager start
as root. There are other options allowing you to specify which user to run the
instances and web under. The default is UID = 1000

Here's the help output of prusalink-manager

Multi-instance suite for PrusaLink

positional arguments:
  {start,stop,clean,rescan}
                        Available commands
    start               Start the instance managing daemon (needs root
                        privileges)
    stop                Stop any manager daemon running (needs root
                        privileges)
    clean               Danger! cleans all PrusaLink multi-instance
                        configuration
    rescan              Notify the daemon a printer has been connected

options:
  -h, --help            show this help message and exit
  -i, --info            include log messages up to the INFO level
  -d, --debug           include log messages up to the INFO level
  -u USERNAME, --username USERNAME
                        Which users to use for running and storing everything
  -p PREPEND_EXECUTABLES_WITH, --prepend-executables-with PREPEND_EXECUTABLES_WITH
                        Environment variables and path to the executables
                        directory

0.7.0

19 May 16:43
Compare
Choose a tag to compare
  • Fixed printer sends info about api key change to Connect after change
  • Added the network error beep setting to the web API
  • Support renaming gcodes directory (cfg and API)
  • Disable error beeps during prints
  • Static Web update
    • Using v1 endpoints for job and transfer
    • Creating and Deleting folders
    • Translation update
    • Network error chime control
    • Default storage names
    • Upgrade procedure rework

Update

Full changes and fixes - see PrusaLink ChangeLog.

0.7.0rc3

09 Mar 14:34
Compare
Choose a tag to compare
0.7.0rc3 Pre-release
Pre-release
  • Implementation of a new API interface for faster file listing.
  • PrusaLink can now be updated through an endpoint, including checking for a new available version.
  • The local webpage has been updated.
  • The camera driver has been redesigned and optimized.
  • PiCamera support
  • Hardware encoding support.
  • Other minor changes and fixes - see PrusaLink ChangeLog.

0.7.0rc2

21 Dec 20:46
Compare
Choose a tag to compare
0.7.0rc2 Pre-release
Pre-release

Release Notes

PrusaLink now supports the connection of USB cameras - they are automatically detected when you connect them. You can configure the resolution of the camera as well as the moment when they should take a picture (either after a layer change or in configured time intervals).

Also:

  • The initial setup wizard has been modified and simplified
  • The local web page has been updated
  • Added resending of complete telemetry to Prusa Connect every 5 minutes
  • Camera images are cached in the browser to save bandwidth
  • Added fixes for several bugs - see the PrusaLink changelog

ChangeLog

  • Support thermal model errors (FW 3.12)
    • USB Camera
    • SD Card fixes
    • Fix MBL data for MK2.5(S)
    • Wizard refactoring
    • Static web update
      • Cameras
      • File sorting
      • Stop dialog fixed
      • Connect status
    • API Settings moved from Wizard to Settings
    • Added cache control headers for cameras snap endpoints
    • Fixed PUT upload when folders within the path does not exist
    • Cameras! Support for:
      • V4L2 cameras (webcams - MJPEG and YUYV formats supported)
      • Changing the resolution
      • Camera auto-detection
      • Triggering on layer change (PrusaSlicer sliced files only!)
    • Fix files with uppercase extensions not showing up locally
    • Support "hotend fan" = "extruder fan"
    • Re-send the complete telemetry every five minutes
    • Fix stats missing for prints of gcodes without M73
    • Fix pause being able to double print time reported
    • Fixed error when trying to get space info of SD Card

0.7.0.rc1

13 Sep 13:49
Compare
Choose a tag to compare
0.7.0.rc1 Pre-release
Pre-release

Release notes

The PrusaLink website has been refactored and contains a number of changes and improvements - see the full changelog.

The READY state, which allows automatic printing from the Connect print queue, can now be set from the printer menu. It is necessary to create a โ€œPrusaLink menuโ€ folder on the SD card - in this folder, a G-Code file is then automatically created. By running it, the printer is set to the READY state.

PrusaLink menu item

PrusaLink uses a new API (https://github.com/prusa3d/Prusa-Link-Web/blob/125a944432817d0d7f4b213cca656370f32374c6/spec/openapi.yaml) which adds new endpoints for retrieving printer and storage information and implements a newly preferred method of uploading files using the PUT method that offers, among other things, faster upload speeds.

The LCD screen now displays information about an available Wizard, error notifications, as well as progress and direction of file uploads (Sync|->: indicates transfers from the printer and Sync->|: transfer to the printer)

File transfer screen

In the configuration wizard, you can upload prusa_printer_settings.ini file containing a saved PrusaLink configuration. During the configuration process, it is possible to skip the registration and continue to Connect directly. Then, you can finish the registration in the Settings screen on the PrusaLink website. You can also delete the registration from here.

When the setup wizard is run, PrusaLink detects the available ports and displays information about their status and whether a connected printer has been detected on any of them. On successful detection, it switches to the welcome page.

Wizard with ports list

Also, experimental support for MK2.5/S printers has been added. Unlike the MK3 series printers, the MK2.5/S does not have an EINSY port and PrusaLink can only be connected via USB.

The API key is disabled by default and the preferred authentication method is HTTP digest, i.e. using a username and password. The username and password must meet the minimum requirements. The name must be at least three characters long.

The password must meet at least one of the following requirements:
Minimum length 8 characters, 1 lower case letter, 1 upper case letter, and 1 number.
Minimum length 8 characters, 1 special character (e.g. @)
Minimum length 15 characters
PrusaLink now uses adaptive telemetry and only sends important changes, saving bandwidth and putting less strain on the connection to Connect.

PrusaLink supports DNS discovery service, making it discoverable on the network. This allows PrusaSlicer to locate available PrusaLink enabled printers.

Discovery service

The configuration file prusa_printer_settings.ini can now (like the wpa_supplicant.conf file) be inserted into the BOOT partition of the microSD card and PrusaLink will detect it correctly there.

ChangeLog

* Work around a bug: printer in serial print mode while wizard is shown
* READY state changed to IDLE, PREPARED state changed to READY
* New status display
   - notifies about setup wizard,
   - shows upload progress
   - shows the name of a file being printed
   - notifies about errors
   - shows an idle screen with the IP address after 30min
   - add idle screen and show transfers during print pauses

* Name and location of printer value validation
* Fix negative timeout being possible in serial read
* Additional Connect (un)registration support
* File and Directory name validation refactoring
* Fixed transfer and print in ATTENTION error
* New Connect API support
* Fix PrusaLink IP not getting reset from printer on shutdown
* Fix the serial_number step in wizard
* Fix unicode characters in file names breaking lcd printer
* Make RESET_PRINTER clear the command queue and have priority that way
* Made the app stop itself faster
* Use M400 instead of G4 for printer queue syncing
* Reworked validation of correct S/N write
* Modified username length and password length and format validation
* Use "Sync|->:" and "Sync->|:" to signify which way is the current transfer going
* Add DNS service discovery compatible with PrusaSlicer
* Support file upload cancels from PrusaSlicer
* Static web update:
   - Fix big log files displaying
   - Decrease display log file size limit to 1M
   - Change temperature controls widget number format to display integers
   - Add stop/resume print button
   - Add protection from steppers disabling when printing
   - Fix sidebar width
   - Replace PNG icons with SVG
   - Fix router, telemetry graph dinmensions and page layout
   - Update error handling to avoid duplicates of popups
   - Add support for file extensions provided by printer profiles from API
   - Fix display names of origins
   - New application design
   - New field to rename project file uploaded by URL
   - New widget displaying used/free size (not-connected to printer yet)
   - New Rename and Copy actions (hidden)
   - New tool to unify icons colors
   - Updated free space logic
   - Fixed storage tabs behavior
   - Avoid unnecessary requests to BE for file metadata
   - Hardcode storages list to printers
   - Removed page `Temperatures`
   - Fix formatting of percentages
   - Project preview is now not dependent on `/api/job` endpoint
   - Confirm dialog after uploade via drag zone
   - Nozzle diameter
   - Offline mode
   - Connect Like icons
   - Translaction fallbacks

 * Differentiate between FW and ID errors in the wizard, update texts
 * Fixed download ref, added total storage space info
 * Added storage space info to api/printer
 * Added function for save file with custom name
 * Add dynamic download throttling when printing
 * Added caching for thumbnail images
 * Send printer info on printer reset / info invalidation event
 * Fixed error handling for PrusaLink Web
 * Reset print stats after a print ends
 * Fix print fail from a unchecked print buffer underflow
 * Report mesh bed levelling data
 * Use the print mode to report the right print stats row to connect
 * Make sure fan errors send reason, improve their behavior a little
 * Fix SD Card module race conditions
 * Make it possible to hide certain loggers from interesting log
 * Filter telemetry, send only what's "significantly" changed
 * Fixed maximum temperature check for nozzle and heatbed
 * Api-Key is implicitly None, can be set in wizard or using endpoint
 * Start PrusaLink even without a connection to the printer
 * Start sending telemetry slowly after a period of inactivity
 * Files can be printed without selecting first, fixed job printTime info in api/job
 * Don't wait for a printer to boot when running through the EINSY pins
 * Added api/v1/info endpoint
 * Add printer statistics tracking
 * Add time to filament change tracking
 * Add sheet settings tracking
 * Return a better reason when print of a non existent file is requested
 * Make printer settings reflect the actual printer type
 * Fixed doubled gcode extensions when custom name is used
 * Added nozzle diameter info to api/v1/info
 * TLS is changed from int to bool
 * Added endpoint for capture an image from a camera
 * Fixed check for negative temperatures of nozzle and bed
 * Add a special SD menu to set the printer to READY from the LCD
 * Add boot partition config copy script (for RPis)
 * Added endpoint api/v1/storage with storage info
 * Round auto guessed preheat temps to the nearest five
 * Remove any irrelevant telemetry right on state change
 * Added endpoint api/v1/<storage>/<path>
 * Add automatic serial port scan
 * Use USB S/N if available (fixes MK2.5 SN issues)
 * Added endpoint with a list of available ports
 * Added capabilities flag to api/version
 * Added min extrusion temp to api/v1/info endpoint, fixed value
 * Added optional ro parameter to api/files and api/v1/{storage}/{path} endpoints
 * Added link_state parameter to api/printer endpoint
 * Fixed item updater allowing invalidation of a disabled item
 * Fixed upload PUT Print-After-Upload if already printing error
 * Added api/v1/<storage>/<path> delete endpoint
 * Fixed a semicolon in a filename being printed breaking everything
 * Fixed a bronken RESET_PRINTER for raspis connected through USB