Releases: prusa3d/Prusa-Link
PrusaLink 0.8.1
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.
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.
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 underprusa/link/data/prusalink.ini
. The executable argument
documentation is provided in the standard help text screen shown after
runningprusalink --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
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
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
- 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 - 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 - 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:
- Connect all cameras you wish to use and let them connect to the first
instance - Open the web interface of the first instance and under cameras, save
every camera manually. This will create a configuration section for each
camera inprusa_printer_settings.ini
of the first instance - Using ssh, navigate to
/etc/prusalink/prusalink1.ini
and open it - Turn off the camera auto-detection in the first instance by adding
this section into the file[cameras] auto_detect = False
- Navigate to
/home/<username>/PrusaLink1
and open
prusa_printer_settings.ini
- 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]
- 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
- 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
- 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
Full changes and fixes - see PrusaLink ChangeLog.
0.7.0rc3
- 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
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
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 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)
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.
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.
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