Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add option for Z_SAFE_HOMING position to be unaffected by M206 #23069

Merged

Conversation

evg-zhabotinsky
Copy link
Contributor

Description

Scenario:
Using M206 to set XY home offsets while Z_SAFE_HOMING is enabled.

Observed behavior:
Point defined by Z_SAFE_HOMING_[XY]_POS respects those offsets and moves, even failing with echo:Z Probe Past Bed during homing if it tries to go beyond soft endstops.

Possible desired behavior:
The safe homing point stays in the same position relative to physical endstops, regardless of M206 offsets.

Solution:
Implement an option to enable either behabior: Z_SAFE_HOMING_POINT_ABSOLUTE.
That is what this PR does.

Requirements

Any non-delta printer, as M206 is unavailable on deltas.

Benefits

An option to decouple "safety" of Z homing from M206. Depending on how you use them, that might be useful.

In my specific case, I use M206 to define the actual printable area, and use Z_SAFE_HOMING to home Z at (0,0), outside the build plate, with an endstop that is below bed level. The reason for off-bed homing is to avoid both hitting the bed with the nozzle and releveling the bed every time I use a surface of different thickness. (I don't have a Z probe currently, so I can't automate that.) As is easy to see, moving (0,0) position onto the bed with M206 crashes the nozzle without this fix.

An alternative scenario is when homing with a Z probe to always use the same point for consistency, even if M206 is used to change XY offsets. In extreme scenarios, like moving (0,0) to the center to imitate a delta, the current behavior might even result in trying to home with the probe outside the build plate, resulting in a crash and/or grinding.

Configurations

None. Just enable Z_SAFE_HOMING and try with Z_SAFE_HOMING_POINT_ABSOLUTE both disabled (default) and enabled to test. Use M206 with XY offsets to observe effects.

Related Issues

#23021 might be related, or it might not. Found nothing else.

@thinkyhead
Copy link
Member

I'd prefer that the safe homing position be set in machine (aka "native" or "raw") coordinates that are unaffected by workspace offsets, home offsets, etc., and that this should be consistent across builds. I don't really like adding an option that breaks consistency, especially for a behavior that should be well-defined.

@thinkyhead
Copy link
Member

CC: @InsanityAutomation — Let's talk about reverting #19423 and finding a better solution for your use cases.

@InsanityAutomation
Copy link
Contributor

I 1,000% disagree as a home offset should be a persistent home offset and a workspace / tool offset should be something different... I still firmly believe that the original function of applying it directly on homing to persist everywhere transparently was the correct application. The home offset is intended to be exactly what it says, You're offsetting the actual zero of the machine and everything should honor that. What people keep describing wanting is a tooling / workspace offset which is absolutely not the same as a home offset.

A home offset should be used for example when a persistent fixed mounted plate is changed that modifies the trigger point of the end stop. It would be in the case of replacing the end stop itself and offsetting by the small difference to get to the exact same positioning that was there before, or in the case of a new hot end plate being mounted to get the tool exactly where it was before as a fixed permanent item.

A tooling / workspace offset however is not expecting the trigger point for home to have changed, however is intending to offset the workspace based on the current application which is typical when finding your material zero on a CNC machine or laser etchers. This offset should honor existing soft end stops in the absolute positioning based on the physical switch as it is not expecting that there has been a physical underlying change that the offset is correcting.

The inconsistent behavior and the lack of enforcing it to follow standards over the years has caused confusion on what they are supposed to be and I believe that is causing people to look forward to do something it's not. My belief is the correct resolution is to have M206 100% enforced to everything, and better document use of G54 / implement G52 in order to cover these situations.

@evg-zhabotinsky
Copy link
Contributor Author

evg-zhabotinsky commented Nov 5, 2021

I was suspecting that I am using M206 wrong, and the explanation kinda makes sense.

However:

  • M206 still doesn't affect soft endstop positions relative to trigger point. Only MANUAL_*_HOME_POS do as far as I know. It definitely is relevant for soft endstop opposite the hardware one, but in weird configurations can be for both. (i.e. If I couldn't crash the axis before M206 I still can't after setting arbitrary offsets with M206, but if I could I still can.)
  • What is the purpose of M428 then, also invoked with "Set Home Offsets" from LCD? It currently does "current position is now logically (0,0,0)" and you probably can't even go to the "real" (0,0,0) after making an endstop trigger earlier. At the same time, going to the corner of the actual printable area is possible by definition.

CNC coordinate systems, if enabled, look like they should do the job, since G54 et al moved by G92 can be saved to EEPROM. They may even be more convenient if switching beds often, provided that LCD menu entries are added to switch between them, plus one to call G92 X0 Y0 Z0 as alternative to "Set Home Offsets" entry. However, the option resides in Configuration_adv.h and thus is likely missing from most firmwares out there, plus currently at least using CUSTOM_MENU_MAIN is required to match the convenience of M206/M428.

What I'm saying, things could work the way InsanityAutomation described, and it probably would be for the best, but we aren't there yet.

@InsanityAutomation
Copy link
Contributor

I just saw i never submitted what i started to type out the other day...

M206 may or may not be desired to affect soft endstop position on the opposing end. That depends on the situation. We may be best off looking to modify the auto retract feature in order to get in line with some other standards (eg G10) and match RRF on M208 to configure the soft endstops.

@DerAndere1
Copy link
Contributor

DerAndere1 commented Dec 7, 2021

Note that https://marlinfw.org/docs/gcode/M206.html says about M206:

Some uses include f[...] shifting the coordinate space to print on a different part of the bed

That seems wrong as for this use case there is G10/G54. I agree with InsanityAutomation: M206 should have a well defined purpose: to overwrite a single setting in the configuration. in this case probably MANUAL_*_HOME_POS. There should be a clear seperation of commands:

Command Setting Description
M206 MANUAL_*_HOME_POS Set /offset home position
M208 *_MIN_POS, *_MAX_POS Set endstop position (axis limits)
G10, G54 N.A. Work coordinate system (non persistent)
G52 N.A. Local coordinate system (non persistent)
G92 N.A. set current position (non persistent)
N.A. *_BED_SIZE set printable area

@evg-zhabotinsky
Copy link
Contributor Author

Notes on @DerAndere1 's post:

  1. CNC workspaces chosen by G54&co ARE persistent. At least their individual offsets set by G92 are saved to eeprom according to docs. There currently is no way to persist the selected workspace to eeprom, though.
  2. M208 and G10 are already taken by firmware retraction in Marlin, and incompatibly changing existing commands might end up like Python2 to 3 transition.
  3. If M206 is used to set endstop positions, then M428 sort of stops making sense? Its use case becomes "Home to endstops, manually (with commands, not hands) move the head to where native zero should be (possibly unreachable) and then call M428."

Just saying, universality and compatibility is a huge can of worms, not even specifically with Marlin but in general. I've long lost count of cases where some feature that I need is just a few lines of code (that I often write for myself when sources are available, like in this PR) but making it available to everyone is a huge pain or makes no sense.

@thinkyhead
Copy link
Member

thinkyhead commented May 5, 2022

At this time, we could add an option to completely revert M206 to its original behavior, if only for experimentation and comparison. Of course, we should look at the current code and audit the use of home_offset versus position_shift or workspace_offset (i.e., both).

As for defining the safe home position and other calibration-related positions, we first need to say in the configuration whether a position is defined in terms of Native Machine Space or in terms of Cartesian Space. We then need to define whether the M206 offset modifies Native Machine Space or Cartesian Space.

First, consider that the endstop positions are relative to a 0,0 bed corner, and they define the outermost bounds for motion. The 0,0 position is the outermost position for printing, and the bed size defines the other corners. All of these are defined in Native Machine Space, and workspace offsets don't move their physical positions, only their logical positions.

If an endstop is moved, you should use M206 to change its offset, and thus modify where 0,0 is. The outer bounds for motion may be increased or decreased by M206, but the printable area remains the same, and the physical position of 0,0 should remain the same. For the most thorough effect, M206 should make it so that Native Machine Space 0,0 is the printable bed corner, and so it should behave essentially as it did back in the olden days.

That is worth a try, and may help with some leveling issues if M206 Z is a common thing with opto endstops.

thinkyhead added a commit to MarlinFirmware/Configurations that referenced this pull request Mar 9, 2023
@thinkyhead thinkyhead merged commit 904ddf8 into MarlinFirmware:bugfix-2.1.x Mar 10, 2023
ncksnydr added a commit to ncksnydr/Narungol-Marlin-Firmware that referenced this pull request Mar 11, 2023
… into feature/bugfix-2.1.x

* 'bugfix-2.1.x' of https://github.com/MarlinFirmware/Marlin: (252 commits)
  🐛 Fix Anet ET4 SD_SS_PIN (MarlinFirmware#25492)
  [cron] Bump distribution date (2023-03-11)
  ✨ BTT Octopus Max EZ 1.0, SKR 3.0 / 3.0 EZ (MarlinFirmware#25387)
  [cron] Bump distribution date (2023-03-10)
  ✨ Z_SAFE_HOMING_POINT_ABSOLUTE (MarlinFirmware#23069)
  [cron] Bump distribution date (2023-03-09)
  🔨 VSCode + Devcontainer support (MarlinFirmware#22420)
  🔧 Update some config.ini options
  ✨ Extra Z Servo Probe options (MarlinFirmware#21427)
  [cron] Bump distribution date (2023-03-08)
  🔧 Add DGUS_LCD_UI RELOADED conditions
  🌐 DGUS Reloaded non-accented French (MarlinFirmware#25443)
  [cron] Bump distribution date (2023-03-07)
  🌐 Update Turkish language
  🧑‍💻 Script to make non-accented languages
  [cron] Bump distribution date (2023-03-06)
  🌐 Update Turkish language (MarlinFirmware#25447)
  🐛 Fix Flash EEPROM for STM32G0B1CB (MarlinFirmware#25469)
  🐛 Fix apply_power for SPINDLE_SERVO (MarlinFirmware#25465)
  [cron] Bump distribution date (2023-03-05)
  ...

Signed-off-by: Nick Snyder <nick@nicksnyder.is>

# Conflicts:
#	config/ncksnydr/narungol/2.1/Configuration_adv.h
shadow578 added a commit to shadow578/Marlin-H32 that referenced this pull request Apr 7, 2023
* [cron] Bump distribution date (2023-03-05)

* 🐛 Fix apply_power for SPINDLE_SERVO (MarlinFirmware#25465)

* 🐛 Fix Flash EEPROM for STM32G0B1CB (MarlinFirmware#25469)

* 🌐 Update Turkish language (MarlinFirmware#25447)

* [cron] Bump distribution date (2023-03-06)

* 🧑‍💻 Script to make non-accented languages

* 🌐 Update Turkish language

Followup to MarlinFirmware#25447

* [cron] Bump distribution date (2023-03-07)

* 🌐 DGUS Reloaded non-accented French (MarlinFirmware#25443)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🔧 Add DGUS_LCD_UI RELOADED conditions

* [cron] Bump distribution date (2023-03-08)

* ✨ Extra Z Servo Probe options (MarlinFirmware#21427)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🔧 Update some config.ini options

* 🔨 VSCode + Devcontainer support (MarlinFirmware#22420)

* [cron] Bump distribution date (2023-03-09)

* ✨ Z_SAFE_HOMING_POINT_ABSOLUTE (MarlinFirmware#23069)

* [cron] Bump distribution date (2023-03-10)

* ✨ BTT Octopus Max EZ 1.0, SKR 3.0 / 3.0 EZ (MarlinFirmware#25387)

BTT Octopus Max EZ V1.0 (STM32H723VE/ZE), SKR V3.0 / V3.0 EZ (STM32H723VG)

* [cron] Bump distribution date (2023-03-11)

* 🐛 Fix Anet ET4 SD_SS_PIN (MarlinFirmware#25492)

* [cron] Bump distribution date (2023-03-12)

* BTT Octopus … followup (MarlinFirmware#25495)

Followup to MarlinFirmware#25387

* ⚡️ Exit from ISR on AVR already does sei

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* 🎨 Cosmetic stepper updates

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* ✨ MAX7219_DEBUG_MULTISTEPPING

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* ⚡️ Use hal_timer_t for timing vars

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* ⚡️ Use cached la_active state

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* ⚡️ Use AxisFlags for step_needed

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* [cron] Bump distribution date (2023-03-13)

* ⚡️ Major shaper optimization

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* ⚡️ Set steps_per_isr in calc_multistep_timer_interval

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* 🔧 Expose MULTISTEPPING_LIMIT option

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* ⚡️ Optimize speed lookup for AVR

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* ⚡️ Update ISR cycle counts

Co-Authored-By: tombrazier <68918209+tombrazier@users.noreply.github.com>

* 📺 DGUS_RELOADED 1.03 (MarlinFirmware#25490)

* [cron] Bump distribution date (2023-03-14)

* 🐛 Fix Polargraph without Z (MarlinFirmware#25514)

* 🐛 Fix long filename read/report (MarlinFirmware#25509)

* 🩹 Fix IA_CREALITY float, startup (MarlinFirmware#25493)

Followup to MarlinFirmware#25440

* [cron] Bump distribution date (2023-03-15)

* 🎨 Misc. formatting

* 🎨 Misc. tramming menu cleanup (MarlinFirmware#25519)

* 🩹 Fan Menu / Status fixes

Followup to MarlinFirmware#21888

* 🩹 Fix DWIN MarlinUI Fan/E/XY (MarlinFirmware#25502)

* [cron] Bump distribution date (2023-03-16)

* 🔧 Safer default for Z_MIN_PROBE_PIN override (MarlinFirmware#25524)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* ♻️ Refactor PROBE_PT_[123]

* ♻️ Refactor UBL 'G29 J'

* [cron] Bump distribution date (2023-03-17)

* 🚸 Refinements for UBL G29 J (tilt mesh) (MarlinFirmware#25486)

* [cron] Bump distribution date (2023-03-18)

* 🔧 Optional MPC_AUTOTUNE to save 5.5 - 5.8KB

* ✨ Sovol v1.3.1 (Sovol SV06) (MarlinFirmware#25267)

* 🧑‍💻 More IntelliSense-friendly declares

* 🎨 Clean up IA_CREALITY includes (MarlinFirmware#25530)

* 🎨 Suppress warning (MarlinFirmware#25529)

* 🔧 SQUARE_WAVE_STEPPING => EDGE_STEPPING (MarlinFirmware#25526)

Co-Authored-By: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🚸 Improve Z-Probe raise for deploy (MarlinFirmware#25498)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🐛 Fix LVGL / MKS WiFi long filename (MarlinFirmware#25483)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🔨 Fix STM32H723Vx_btt for case-sensitive (MarlinFirmware#25535)

* 🐛 Fix FYSETC Cheetah v2.0 Servo/Probe pins (MarlinFirmware#24635)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🐛 Prevent MPC E-permm overrun in Load Filament (MarlinFirmware#25531)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🚸 Fix / improve LCD_BED_TRAMMING (MarlinFirmware#25425)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🔧 Sanity-check PRINTCOUNTER_SAVE_INTERVAL + ESP32 I2S Exp (MarlinFirmware#25527)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* ⚡️ Smart Adaptive Multi-Stepping (MarlinFirmware#25474)

* 🚸 Temperature Variance Monitor tweaks (MarlinFirmware#23571)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🩹 Fix Ender 2 stock LCD (MarlinFirmware#25538)

* ⚡️ Misc. optimizations

* [cron] Bump distribution date (2023-03-19)

* ✨ REPORT_ADAPTIVE_FAN_SLOWING (MarlinFirmware#25537)

* 🩹 Fix a serial_ternary

* ✨ Z_SERVO_DEACTIVATE_AFTER_STOW (MarlinFirmware#24215)

* 🐛 Avoid step rate overflow (MarlinFirmware#25541)

* [cron] Bump distribution date (2023-03-20)

* ✨ PROBING_TOOL (MarlinFirmware#24411)

* [cron] Bump distribution date (2023-03-22)

* ✨ FILAMENT_SWITCH_AND_MOTION (MarlinFirmware#25548)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🧑‍💻 ExtUI::onSetPowerLoss

* [cron] Bump distribution date (2023-03-23)

* 🎨 calibration_stage => stage

* [cron] Bump distribution date (2023-03-24)

* 🩹 Reset touch screen calibration on failure (MarlinFirmware#25334)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>

* 🎨 TMC SPI Pins

Co-Authored-By: Martin Turski <turningtides@outlook.de>

* 🎨 Pins header comments

Co-Authored-By: Martin Turski <turningtides@outlook.de>

* 🎨 Wrap font includes

Co-Authored-By: Martin Turski <turningtides@outlook.de>

* 🎨 LPC_SOFTWARE_SPI => SOFTWARE_SPI

Co-Authored-By: Martin Turski <turningtides@outlook.de>

* 🔨 INI Updates

Co-Authored-By: Martin Turski <turningtides@outlook.de>

* 🎨 Misc. fixes, cleanup

Co-Authored-By: Martin Turski <turningtides@outlook.de>

* 🩹 Update TRONXY_V10 SPI_FLASH pins

* [cron] Bump distribution date (2023-03-25)

* 🩹 Fix Chitu3D V6 default probe pin (MarlinFirmware#25552)

* 🔧 Remove TVPM warning (MarlinFirmware#25551)

* 🐛 Fix MKS Gen L 2.1 MOSFET pins (MarlinFirmware#25542)

* 🩹 Refine MKS boards with a dedicated FAN port (MarlinFirmware#25567)

* 🎨 Rename FAN_PIN to FAN0_PIN (MarlinFirmware#25568)

* 📝 Fix spelling (MarlinFirmware#25563)

* [cron] Bump distribution date (2023-03-26)

* 🎨 Timer tweaks

* 🔧 Refactor endstop state config (MarlinFirmware#25574)

* ✨ AnyCubic Vyper / Vyper LCD (MarlinFirmware#25405)

* 🩹 Fix Touch Calibration first point (MarlinFirmware#25298)

* 🧑‍💻 Auto Fan / Cooler Fan updates (MarlinFirmware#25554)

* 🐛 Prevent divide-by-zero in calc_timer_interval (MarlinFirmware#25557)

* 🔧 Sanity-check for endstop inverting

Followup to MarlinFirmware#25574

* 🔧 Clarify axis disable / timeout (MarlinFirmware#25571)

* [cron] Bump distribution date (2023-03-27)

* 🔨 Fix thread-unsafe deque iteration

* 🐛 Fix AnyCubic Vyper ProcessPanelRequest

Followup to MarlinFirmware#25405

* 🎨 Suppress a type warning (MarlinFirmware#25575)

* ⚡️ Improve TFT DMA for STM32 (MarlinFirmware#25359)

* 🐛 Fix M23 long filename support (MarlinFirmware#25540)

* [cron] Bump distribution date (2023-03-28)

* 🎨 Misc. cleanup

* 🔧 Fix up WiFi options (MarlinFirmware#25586)

* 🔨 Update config.ini endstop states

Followup to MarlinFirmware#25574

* [cron] Bump distribution date (2023-03-29)

* 🔧 Impose Hephestos 2 Bed Kit requirements (MarlinFirmware#25585)

* 🎨 Remove unused ProUI : UBLValidMesh (MarlinFirmware#25591)

* 🔨 Improve Docker local tests support (MarlinFirmware#25583)

* 🔨 MarlinSimUI updates (MarlinFirmware#25589)

* [cron] Bump distribution date (2023-03-30)

* 🩹 Update Trigorilla V006 fan pin

Followup to MarlinFirmware#25568

* 🩹 Fix Ender-3 V2 with no fan

* 🐛 Fix _HAS_FAN for fan on Pin 0

* 🎨 Refine probe, more debug

* 🩹 Fix displayed mix percentages

* [cron] Bump distribution date (2023-03-31)

* 🔧  DGUS_LCD_UI selectable options

* 🔧 Fix SENSORLESS hit state error (MarlinFirmware#25604)

* 🧑‍💻 CardReader adjustments (MarlinFirmware#25611)

* [cron] Bump distribution date (2023-04-01)

* 🎨  HAS_SHAPING => HAS_ZV_SHAPING

* ✨ Fixed-Time Motion with Input Shaping by Ulendo (MarlinFirmware#25394)

Co-authored-by: Ulendo Alex <alex@ulendo.io>

* 🐛 Fix Long FIlename lookup (MarlinFirmware#25598)

* 🌐 Update Italian language (MarlinFirmware#25587)

* 🔨 Move Docker local test script

Followup to MarlinFirmware#25583

* 🩹 FT_MOTION Followup

* 🐛 Ensure root for 'M503 C'

* 🐛 Clean up DELTA babystep Z

* 🐛 INVERT_*_DIR for FT_MOTION (MarlinFirmware#25637)

* 🔧 Move DOGLCD options

* 🧑‍💻 Update pinsformat.js

* 📝 Update Ender # labels

* [cron] Bump distribution date (2023-04-07)

* 🚸 Support CoreXY without Z (MarlinFirmware#25630)

* 🎨 Apply const (MarlinFirmware#25643)

* update `pins_Aquila_X2.h` to new format

---------

Co-authored-by: thinkyhead <thinkyhead@users.noreply.github.com>
Co-authored-by: Hans-Christian Ebke <ebke@cs.rwth-aachen.de>
Co-authored-by: alextrical <35117191+alextrical@users.noreply.github.com>
Co-authored-by: Abdullah YILMAZ <h.abdullahyilmaz@hotmail.com>
Co-authored-by: albatorsssx <albator_ssx@hotmail.com>
Co-authored-by: Kurt Haenen <Misterke@users.noreply.github.com>
Co-authored-by: Sion Williams <sion5@hotmail.co.uk>
Co-authored-by: Evgeniy Zhabotinskiy <evg-zhabotinsky@users.noreply.github.com>
Co-authored-by: Keith Bennett <13375512+thisiskeithb@users.noreply.github.com>
Co-authored-by: tombrazier <68918209+tombrazier@users.noreply.github.com>
Co-authored-by: Neo2003 <Neo2003@users.noreply.github.com>
Co-authored-by: jbubik <jbubik@centrum.cz>
Co-authored-by: Eduard Sukharev <sukharev.eh@gmail.com>
Co-authored-by: Davide Rombolà <davide.rombola@gmail.com>
Co-authored-by: dwzg <50058606+dwzg@users.noreply.github.com>
Co-authored-by: ellensp <530024+ellensp@users.noreply.github.com>
Co-authored-by: jamespearson04 <jamespearson04@hotmail.co.uk>
Co-authored-by: Michael Hill <mhill@hillsoftware.com>
Co-authored-by: James Gilliland <neclimdul@gmail.com>
Co-authored-by: Liam Powell <liam+github@liampwll.com>
Co-authored-by: George Fu <nailao_5918@163.com>
Co-authored-by: Piotr Paczyński <ppaczyn@gmail.com>
Co-authored-by: Farva42 <100859196+Farva42@users.noreply.github.com>
Co-authored-by: John Robertson <john@cirtech.co.uk>
Co-authored-by: John Lagonikas <39417467+zeleps@users.noreply.github.com>
Co-authored-by: StevilKnevil <stevilknevil@hotmail.co.uk>
Co-authored-by: FilippoR <filippo.rossoni@gmail.com>
Co-authored-by: BIGTREETECH <38851044+bigtreetech@users.noreply.github.com>
Co-authored-by: Martin Turski <turningtides@outlook.de>
Co-authored-by: Giuliano Zaro <3684609+GMagician@users.noreply.github.com>
Co-authored-by: Bob Kuhn <bob.kuhn@att.net>
Co-authored-by: Alexander Gavrilenko <jmz52@users.noreply.github.com>
Co-authored-by: Andrew <18502096+classicrocker883@users.noreply.github.com>
Co-authored-by: John Unland <junland.foss@gmail.com>
Co-authored-by: Chris Pepper <p3p@p3psoft.co.uk>
Co-authored-by: Ulendo Alex <alex@ulendo.io>
thinkyhead pushed a commit that referenced this pull request Apr 7, 2023
EvilGremlin pushed a commit to EvilGremlin/Marlin that referenced this pull request Apr 8, 2023
thinkyhead pushed a commit that referenced this pull request Apr 10, 2023
thinkyhead pushed a commit to thinkyhead/Marlin that referenced this pull request May 16, 2023
EvilGremlin pushed a commit to EvilGremlin/Marlin that referenced this pull request May 17, 2023
tspiva pushed a commit to tspiva/Marlin that referenced this pull request May 25, 2023
Andy-Big pushed a commit to Andy-Big/Marlin_FB_Reborn that referenced this pull request Jul 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants