Changelog
RatOS 2.1
RatOS now simplifies the klipper configuration process by automatically generating and updating the RatOS.cfg
file based on your selections in the configurator. This file becomes the sole inclusion in printer.cfg
, eliminating the need for managing multiple includes or modifying lines of code. RatOS intelligently recognizes your hardware and adjusts the configuration and macros accordingly.
Should you make any changes to your hardware, RatOS will simply update RatOS.cfg
and display the changes for your review. This ensures that your have more confidence in tinkering, and can try out new things quickly without worrying about configuration.
Features
- Point and click klipper config generation
- The wizard will now ask you about your hardware configuration
- Select from 12 printers and 32 control boards
- Configure toolhead hardware (up to 2 toolheads per printer)
- Support for multiple instances of 12 supported toolboards.
- Printer configuration
- Motor / driver configuration
- Reconfigurable motor slot allocations, you decide which slot is used for which axis.
- Supports 24V, 36V, 48V, 56V, and 60V setups
- Supports a variety of 2130, 2209, 2240, 2160 and 5160 drivers.
- Supports a variety of stepper motors, including a "generic" stepper using klipper defaults.
- Current adjustment
- Automatically applied tuning presets for known configurations.
- RatOS.cfg does not use pin aliases, the pins match the board's pinout diagram.
Expanding the configurator - beyond the wizard
RatOS 2.1 has evolved into a comprehensive application that interfaces with Klipper and Moonraker. It is set to expand its capabilities with various tools aimed at enhancing interactive analysis and calibration. The initial offerings will include VAOC (Visually Assisted Offset Calibration) and RAT (Realtime Analysis Tool), promising to elevate the user experience further.
Realtime Analysis Tool (RAT)
Power spectral density graphs, live, real-time, in your browser!
- Create your own macros for analysing different aspects of your printer.
- Hunt down sources of mechanical issues using the Oscillator by monitoring the realtime PSD while touching different parts of your motion system.
- Works on phones, use it like a Star Trek Tricorder.
- Supplies two new g-code commands,
OSCILLATE
andGENERATE_RESONANCES
.
IDEX Support
Helge Keck's outstanding contributions to RatOS 2.1 have made all RatOS macros fully IDEX compatible, offering numerous advantages compared to other implementations.
Toolshift
RatOS features an integrated gcode postprocessor compatible with PrusaSlicer, OrcaSlicer, and SuperSlicer. It leverages the rapid toolshift macros for synchronous toolhead swapping and advancing to the subsequent print position in just two swift actions. This results in almost instantaneous tool changes, drastically cutting down on the time typically required for purge towers, and may even render them unnecessary. Additionally, Toolshift is customizable to execute a hotend purge during a tool change if the upcoming toolhead has been inactive past a predefined duration.
- Intelligent priming / purging
- Single toolhead + spool join mode
- Multi color mode
- Copy/Mirror mode
- Experimental auto centering of print on the build plate for copy and mirror mode
- Toolhead remapping
- IDEX aware
SET_PRESSURE_ADVANCE
with toolhead syncing capabilities - Automatic toolhead deactivation after last use in print.
- Fan synchronization
- Optional automatic toolhead standby
- Retraction control
- Fully automated z-offset calibration before printing
- Live speed and acceleration control while printing
Visually Assisted Offset Calibration (VAOC)
RatOS features a Visually Assisted Offset Calibration interface, complete with z offset probe support, making toolhead offset calibration a breeze, blazing fast and extremely precise.
Single Toolhead Hybrid CoreXY support
RatOS is equipped with specialized Hybrid CoreXY kinematics, which include the capability to operate two additional Cartesian motors on the Y-axis. This feature significantly enhances performance scaling in CoreXY configurations. By carefully tensioning the belts, users can achieve more than a twofold increase in the recommended shaper accelerations for the Y-axis.
Macros: new built-in features
- Beacon contact auto calibration
- Automatic hotend/nozzle thermal expansion calibration (Beacon Contact or Z offset probe)
- Primeblob is now significantly faster, takes less space and adapts to nozzle size.
- Sensorless homing supported for all driver types.
- Toolhead temperature offsets.
- LED Status effects
- Filament sensor support (on-toolhead, off-toolhead or both)
- Up to 3 sensor in series: on-toolhead switch sensor, on-toolhead motion sensor, off-toolhead bowden switch sensor
- Insert, runout and clog detection
- Automatic loading / unloading with on-toolhead sensor
- Automatic print resume on insert
- Optional purge before unload or after load
- Sanity checks before print starts, checks for filament presence
- Filament grabbing on insert even if the hotend is cold
- Filament status color in Mainsail
- Hotend type and nozzle aware tip forming when unloading
- New calibratron macros, PID tuning and pa tower.
- Tons of user adjustable macro variables for customization and further tuning.
- Many small usability improvements and sanity checks.
Adaptive Meshing and Priming
Adaptive meshing and priming is now officially out of beta and enabled by default. Beacon adaptive priming and full IDEX support has been added.
New boards
BTT Kraken BTT Manta M8P V2.0 BTT Manta M5P BTT EBB SB2240 STM32 BTT EBB SB2240 RP2040 BTT EBB SB2209 STM32 BTT EBB SB2209 RP2040 BTT SKR v1.4 BTT SKR v1.4 Turbo Fysetc Spider v2.2 LDO Leviathan v1.2
Minor changes and improvements
- Primeline has been removed.
- Use ENABLE_DEBUG to log additional information, download all debug information by using the debug zip link in the RatOS Configurator.
- User hooks are now supplied with the full params of the calling macro
ratos
CLI tool for utility functions, advanced usage and third party integrations. Use it to regenerate configuration, flash connected boards, tail logs, register / unregister / symlink klippy and moonraker extensions and more.
Backwards compatibility
- RatOS 2.0 configurations will still work in 2.1 (As for RC2 this is unknown.. will need testing)
- Generating a new configuration will require that you reflash your toolboard via the configurator.
Huge shutout to @HelgeKeck for his tireless work, and @3dprintpt for all the new boards and wiring diagrams!
RatOS V2.0
RatOS v2 is not backwards compatible with RatOS v1, you will have to reflash your Raspberry Pi and start over with a new configuration template. Use your old printer.cfg for reference values.
Major new features
- Now based on bullseye
- The RatOS configurator will now help you flash your controlboard and toolboards, greatly simplifying installation.
- Toolboards are now supported.
- Stowable probes like euclid and klicky are now support.
- Unified homing: everything is now handled through a single homing override. Sensorless homing now requires no tinkering with homing macros (you still need to tweak current and sensitivities). Including a stowable probe config automatically enables deploying and stowing. Axes can now use individual homing procedures, such as sensorless on X and endstops on Y.
- MainsailOS has been merged which brings timelapse and crowsnest.
- Preinstalled: https://github.com/worksasintended/klipper_linear_movement_analysis
- Klipper now runs Python 3
- Experimental BTT CB1 support
- RatOS notifications in Mainsail.
Minor new features
- A bunch of new macro variables to tweak the RatOS macros (see http://os.ratrig.com/docs/configuration/macros), including end park z hop, prime positions, etc etc.
- Configurator now maintains klipper and moonraker extension symlinks (will automatically restore in case of a hard reset, can also be triggered automatically through the configurator actions menu at RatOS.local/configure)
- Configurator now in charge of flashing all connected boards when klipper is updated.
START_PRINT
can now use the hotend to measure chamber temp. For example to wait for chamber to reach 40 degrees, useSTART_PRINT CHAMBER_TEMP=40
. The bed temperature during chamber heating is configurable via the macro variablevariable_start_print_heat_chamber_bed_temp
.
Minor changes
- Primeblob has changed sides for stowable probe support.
- The toolhead now moves along the edge of the buildplate when navigating to the primeline/primeblob start position, and only lowers the nozzle when it has arrived.
- config repository directory has been renamed to RatOS.
Bug fixes
- IPv6 has been disabled (hopefully no more issues with RatOS.local / moonraker not working on IPv6 capable networks).
New supported printers
- Voron V2.4 support (Experimental)
- Voron V0.1 Support (Experimental)
- Prusa Mini (Experimental)
- Prusa MK3S (Experimental)
New supported boards
- BTT Manta M8P
- BTT Manta M4P
- BTT Manta E3EZ
- BTT SKR 3
- BTT SKR 3 EZ
- BTT SKR Mini E3 3.0
- BTT SKRat 1.0
- BTT Octopus Pro H723
New supported toolboards
- BTT EBB42 v1.0
- BTT EBB42 v1.1
- BTT EBB42 v1.2
- BTT EBB36 v1.0
- BTT EBB36 v1.1
- BTT EBB36 v1.2
- Mellow Fly SHT42 v1
- Mellow Fly SHT36 v1
Bug fixes
- IPv6 has been disabled (no more issues with RatOS.local / moonraker not working on some IPv6 capable networks).
- Automatic flashing is now more resilient and will detect and attempt to recover if the board gets stuck in DFU mode.
- Configurator now correctly restarts on updates.
- Since the initial flashing is now done via the configurator, the issues with broken firmware should now be eliminated.
RatOS V1.2
This release adds a wifi connection configurator and hotspot functionality so users no longer have to edit the wpa-supplicant files, the syntax of which has been challenging for many. The hotspot also enables printing in areas with no wifi or ethernet connectivity.
RatOS V1.1
This release mainly revolves around the new stepper/stepper driver setting recommendations from Klipper. hold_current
has been removed, stealthchop is now entirely disabled by default, interpolation has been disabled and microsteps have been increased to 64 to counteract the additional noise. V-Minion template has now been optimized for the final hardware in the release kit. Keep reading to see the complete list of changes.
KlipperScreen
- KlipperScreen now correctly installed as Pi user. This makes KlipperScreen.conf (next to your printer.cfg) work again. This change requires flashing RatOS V1.1 to your Pi.
General
- Stepper motors, drivers and speed limits have now been made more modular, allowing for easier configuration of, for example, 48V steppers. See Advanced Stepper Configuration for more information.
- Driver / Stepper settings now adopt the new recommended klipper defaults. This also means that your steppers might make a bit more noise than they did before, since the stealthchop_threshold has been set to 0. You can manually set stealthchop_threshold back to 1 if that's unacceptable to you, just be aware that it will reduce the stepper's positional accuracy.
- Rapido and Dragonfly configs added.
- LGX Lite config added.
- Printer templates have been improved for better organization and now includes the new stepper configurations.
- SKR2 Documentation added
- V-Minion printer template optimized for the release of V-Minion full kit.
Updating from RatOS V1.0
Generally you don't have to do anything to use RatOS v1.1, unless you use sensorless homing.
Sensorless homing
If you are using sensorless homing, you'll now need to remove the HOLDCURRENT parameters from you SET_TMC_CURRENT commands. This has no effect on functionality, it didn't do anything useful before. However, if you include the new stepper configs you may have to retune your currents and sensitivity settings.
Stepper Motors
On V-Core 3 and V-Core Pro printers using the stock 48mm steppers on all axes add [include RatOS/steppers/ldo/42sth48-2504ac/2209/24v-1.6a-*.cfg]
(cooled drivers) or [include RatOS/steppers/ldo/42sth48-2504ac/2209/24v-1.1a-*.cfg]
(uncooled drivers) to your USER OVERRIDES section. You can skip this step if you're migrating your printer.cfg (see below).
If you only use the stock steppers on some axes, or want different currents, voltages etc you can include the stepper config for specific steppers like this:
[include RatOS/steppers/ldo/42sth48-2504ac/2209/24v-1.6a-x.cfg]
[include RatOS/steppers/ldo/42sth48-2504ac/2209/24v-1.6a-y.cfg]
[include RatOS/steppers/ldo/42sth48-2504ac/2209/24v-1.1a-z.cfg]
[include RatOS/steppers/ldo/42sth48-2504ac/2209/24v-1.1a-z1.cfg]
[include RatOS/steppers/ldo/42sth48-2504ac/2209/24v-1.1a-z2.cfg]
These stepper specific configs have their DRIVER_* settings tuned for the given driver, voltage and amperage. Take a look in the config/steppers folders to see which options are available.
If you want to go back to the way it was in v1.0 (stealthchop_threshold: 1) simply add this to your user overrides section:
[tmc2209 stepper_x]
stealthchop_threshold: 1
interpolate: True
[tmc2209 stepper_y]
stealthchop_threshold: 1
interpolate: True
[tmc2209 extruder]
interpolate: True
stealthchop_threshold: 1
[tmc2209 stepper_z]
interpolate: True
stealthchop_threshold: 1
[tmc2209 stepper_z1]
interpolate: True
stealthchop_threshold: 1
[tmc2209 stepper_z2]
interpolate: True
stealthchop_threshold: 1
Be aware that this comes with disadvantage of less precise motion, and it will not work at all with Fysetc and Mellow drivers.
New Templates (Optional)
RatOS v1.1 comes with new improved and reorganized templates. If you want the new templates but don't want to reflash your Pi, you can migrate manually. To do so, start by making a backup of your printer.cfg (download it, and put it somewhere safe), then replace printer.cfg with the contents of config/templates/[your-printer]-printer.template.cfg. Go through your new printer.cfg and use your old config as a reference for the values you need. You can copy / paste the klipper config block at the bottom to your new printer.cfg to retain all the settings you've saved via SAVE_CONFIG
.
RatOS V1.0
Updating from V-CoreOS-RC2
Updating to RatOS v1.0 requires you to flash the SD Card in your Raspberry Pi, as well as your control board following the usual steps (has to be done manually via SD card transfer) found in the Installation Section. That also means that any changes you've made to your Raspberry Pi setup will be lost unless you make a backup first. If you want to be absolutely sure you don't loose something, you can use a new SD card for RatOS v1.0. These are common things you'll probably want to backup:
- printer.cfg (you can download this from Fluidd)
- .moonraker_database/* (located in /home/pi/.moonraker_database on your Raspberry Pi. Download data.mdb and lock.mdb with SCP/WinSCP then upload them to that same location after installation of RatOS v1.0)
- Any custom setup you've done, that isn't replaced with native RatOS functionality.
If you're reuploading your printer.cfg from V-CoreOS-RC2 you can (optionally) add this to the bottom of printer.cfg (right above the ### USER OVERRIDES section):
### MACRO CONFIGURATION
[gcode_macro RatOS]
# Use relative extrusion mode
# Set to False to use absolute extrusion mode
variable_relative_extrusion: True
# Wait for extruder to reach 150 so an inductive probe (if present) is at a predictable temp.
# Also allows the bed heat to spread a little, and softens any plastic that might be stuck to the nozzle.
# Set to False to disable
variable_preheat_extruder: True
# Calibrate the bed mesh in the START_PRINT macro.
# Set to false to skip BED_MESH_CALIBRATE, it will still load the BED_MESH
# with the name "ratos", be sure to save your bed_mesh profile with that name.
# or override the _START_PRINT_BED_MESH macro to implement your own mesh handling logic.
variable_calibrate_bed_mesh: True
# Print a prime line at the end of the START_PRINT macro
# set to False to disable nozzle_priming.
variable_nozzle_priming: "primeline"
# Park in the back when waiting for the extruder to heat up
# set to "front" to park in the front, or "center" to park in the center.
variable_start_print_park_in: "back"
# Height to park it when waiting for extruder to heat.
variable_start_print_park_z_height: 50
# Skew profile to load before starting the print
# uncomment this to use your calibrated skew correction profile.
#variable_skew_profile: "my_skew_profile"
# Park in the back after the print has ended or was cancelled.
# set to "front" to park in the front, or "center" to park in the center.
variable_end_print_park_in: "back"
# Park in the back when the print is paused.
# set to "front" to park in the front, or "center" to park in the center.
variable_pause_print_park_in: "back"
# Set the speed for travel moves in RatOS Macros in mm/s.
variable_macro_travel_speed: 150
If the section is not present in your printer.cfg the default values will be used. See Macro Configuration for information on how to use the variables.
General
- Since the future of Fluidd is uncertain, RatOS has migrated to Mainsail.
- KlipperScreen now comes preinstalled.
- Picking your printer is now done via Macros on first startup.
Printers
- Add V-Core Pro 1.3 support
Boards
- Firmware compilation has been automated! Firmware compilation and flashing is now attempted when the klipper repository is updated.
- Fysetc Spider v1.1 support added
- SKR 2 /w STM32F429 support added
- Udev symlinks are now automatically updated when the ratos config is updated. That means new boards are mapped automatically.
- RPi MCU added (automatically updated with klipper)
- make-and-flash-mcu.sh now copies the firmware binary into a firmware_binaries folder browsable in mainsail for manual flashing via SD Card if needed.
Macros
- gcode_shell_command.py has been added.
- Added
INSTALL_VCORE_THREE_CONFIG
,INSTALL_VCORE_PRO_CONFIG
,INSTALL_VMINION_CONFIG
macro's for initial setup. - Added COMPILE_BINARIES macro to compile binaries for all supported boards in case the user got himself into a bad situation and needs the newest firmware.
- Added GENERATE_SHAPER_GRAPHS which runs resonance test and generates graphs which are placed in the
input_shaper
folder. - Macro's now have configurable behavior, the following variables are available:
relative_extrusion
,preheat_extruder
,calibrate_bed_mesh
,nozzle_priming
,start_print_park_in
,start_print_park_z_height
,end_print_park_in
,pause_print_park_in
andmacro_travel_speed
. START_PRINT
now has 4 hooks:_START_PRINT_AFTER_HEATING_BED
,_START_PRINT_BED_MESH
,_START_PRINT_PARK
and_START_PRINT_AFTER_HEATING_EXTRUDER
. You can override these in your printer.cfg to further customize the way yourSTART_PRINT
macro behaves.END_PRINT
now has 2 hooks:_END_PRINT_AFTER_HEATERS_OFF
and_END_PRINT_PARK
. You can override these in your printer.cfg to further customize the way your END_PRINT macro behaves.END_PRINT
and PAUSE now moves to a safe Z distance instead of always moving the same distance which could lead to errors.M600
is now supported.