33 Commits

Author SHA1 Message Date
Bassam Husain
100308b81e Adjust FAQ: _globals explanation; NOTEs in misc-macros.cfg. 2025-05-19 13:10:53 -04:00
Bassam Husain
720ad095f0 Merge bedtempNotExact into master. 2025-05-17 22:32:43 -04:00
Bassam Husain
21ab5937be Minor adjustments to README download section. Add firmware v0.13.x. 2025-05-17 19:19:15 -04:00
Bassam Husain
17f4c3a21e Update OS bundles. 2025-04-20 17:55:54 -04:00
Bassam Husain
54195307bf Adjust OrcaSlicer merge. 2025-04-19 11:15:32 -04:00
Bassam
75d7f241ba Merge pull request #211 from apparle/orcaslicer_support
OrcaSlicer profiles added.
2025-04-19 10:56:49 -04:00
Apoorv Parle
b622ca4663 Reword the documentation a bit. 2025-04-19 02:52:55 -07:00
Apoorv Parle
e1bc37e009 Add initial version of OrcaSlicer and ancillary files to convert config from PrusaSlicer to OrcaSlicer 2025-04-19 02:46:02 -07:00
Bassam Husain
e712f7b8a1 Adjust bundles: PS-2.9.2. 2025-04-15 02:54:47 -04:00
Bassam Husain
e00ff1d311 Adjust scarf joint settings. 2025-04-01 16:43:21 -04:00
Bassam Husain
b02417e067 Adjust prusa bundle: improve scarf join settings; update to 2.9.1. 2025-03-29 20:18:19 -04:00
Bassam Husain
28a8d8a946 Add PS bundle 2.9.0 with 0.6 mm nozzle. 2025-02-11 03:11:50 -05:00
Bassam Husain
89904dc356 Add mcu timer too close error to special considerations. 2025-01-02 22:43:53 -05:00
Bassam Husain
9b025cde73 Adjust readme. 2024-11-25 00:47:30 -05:00
Bassam Husain
a414f1a1c3 Adjust readme header. 2024-11-25 00:03:30 -05:00
Bassam Husain
cf931af5cb New PrusaSlicer config bundle. 2024-11-24 23:48:49 -05:00
Bassam Husain
bb4dd6a403 Adjust styling. 2024-10-24 04:30:45 -04:00
Bassam Husain
f29a29fc84 Adjust styling. 2024-10-24 04:24:40 -04:00
Bassam Husain
8c3d4a7dd8 Adjust gitignore. 2024-10-03 00:23:53 -04:00
Bassam
e8436ad0c1 Delete misc/marlin-SV06V2.0.0A_2.24.bin 2024-09-11 20:07:05 -04:00
Bassam Husain
7dba6deed6 Add new klipper-v0.12.0-289-g08a1c9f1.bin, latest. 2024-09-02 14:13:48 -04:00
Bassam Husain
f174110561 Adjust before you begin section. 2024-08-28 23:50:38 -04:00
Bassam Husain
6b156cb9ae Add notices to README. 2024-08-28 23:33:07 -04:00
Bassam Husain
116f6c9aa4 Fix test_speed macro. 2024-08-28 23:01:20 -04:00
Bassam Husain
efdfd86954 Fix kamp notes link. 2024-08-12 11:34:07 -04:00
Bassam Husain
34a57ff393 Merge branch 'master' of github.com:bassamanator/Sovol-SV06-firmware 2024-07-26 00:47:41 -04:00
Bassam
acb6549a08 Update README.md
Special considerations.
2024-07-26 00:44:51 -04:00
Bassam Husain
4e3fc98cc7 Add fly-e3-pro-v3 branch to table. 2024-07-05 23:50:44 -04:00
Bassam Husain
c602f18e98 Adjust known issues. 2024-06-08 18:45:02 -04:00
Bassam Husain
f27b569d0c Add known issues section. 2024-05-15 16:00:32 -04:00
Bassam Husain
d5e46edc5e Adjust FAQs: filament sensor, KAMP. 2024-05-15 14:06:51 -04:00
Bassam Husain
2788b2f03a Adjust directory structure. 2024-05-15 11:49:04 -04:00
Bassam Husain
46b946983b Adjust PS config bundle: edit printer notes tab. 2024-05-07 01:17:21 -04:00
31 changed files with 14389 additions and 738 deletions

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
printer-*_*.cfg printer-*_*.cfg
.moonraker.conf.bkp .moonraker.conf.bkp
.directory .directory
.venv
__pycache__
crowsnest.conf.*

23
.vscode/settings.json vendored
View File

@@ -1,7 +1,5 @@
{ {
"editor.tabSize": 4, "editor.tabSize": 4,
// "editor.formatOnSave": false,
// "editor.defaultFormatter": null,
"editor.insertSpaces": true, "editor.insertSpaces": true,
"editor.detectIndentation": false, "editor.detectIndentation": false,
"git.mergeEditor": false, "git.mergeEditor": false,
@@ -20,20 +18,27 @@
"Klipper", "Klipper",
"Klipperized", "Klipperized",
"lrwxrwxrwx", "lrwxrwxrwx",
"microsteps",
"moonraker", "moonraker",
"normalsize", "normalsize",
"octahedroflake", "octahedroflake",
"osskc", "osskc",
"Painis",
"PARKBED", "PARKBED",
"PARKCENTER", "PARKCENTER",
"PARKFRONT", "PARKFRONT",
"PARKFRONTLOW", "PARKFRONTLOW",
"PARKREAR", "PARKREAR",
"pico", "pico",
"Printables",
"Prusa", "Prusa",
"reformats",
"runout", "runout",
"scriptsize",
"Sovol", "Sovol",
"superslicer",
"textcolor", "textcolor",
"textit",
"texttt" "texttt"
], ],
"[markdown]": { "[markdown]": {
@@ -62,4 +67,18 @@
"titleBar.inactiveForeground": "#e7e7e799" "titleBar.inactiveForeground": "#e7e7e799"
}, },
"peacock.color": "#512e0a" "peacock.color": "#512e0a"
// "[html][jinja][jinja-html]": {
// "editor.formatOnSave": false,
// "editor.defaultFormatter": "monosans.djlint",
// "editor.detectIndentation": true,
// "editor.linkedEditing": true,
// "editor.tabSize": 4,
// "djlint.enableLinting": true,
// "djlint.profile": "jinja"
// },
// "djlint.showInstallError": true,
// "djlint.useVenv": false,
// "djlint.pythonPath": "/home/bassam/.local/share/uv/tools",
// "djlint.formatLanguages": ["django-html", "jinja", "jinja-html"]
} }

137
README.md
View File

@@ -1,15 +1,23 @@
# 🚨 _One-Stop-Shop_ Klipper Configuration <p align="center">
Please consider
<a href="https://ko-fi.com/bassamanator" target="_blank">donating</a> to
support my open source work ❤️
</p>
This branch contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer. # One-Stop-Shop Klipper Configuration
| Printer | Branch | | Printer | Branch |
| --------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | ------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| ${\normalsize{\textcolor{darkturquoise}{\texttt{Sovol SV06}}}}$ | ⚡ ${\small{\textcolor{darkturquoise}{\texttt{YOU ARE HERE}}}}$ ⚡ | | ${\normalsize{\textcolor{darkturquoise}{\text{Sovol SV06}}}}$ | ⚡ ${\scriptsize{\textcolor{darkturquoise}{\text{YOU ARE HERE}}}}$ ⚡ |
| Sovol SV06 Skr-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) | | Sovol SV06 SKR-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) |
| Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) | | Sovol SV06 Fly-E3-Pro-V3 | [fly-e3-pro-v3](https://github.com/ElPainis/Fly-E3-Pro-v3) \*\* |
| All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) | | Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) |
| All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) |
I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk. ${\small{\textit{** Maintained by ElPainis}}}$
> [!WARNING]
> I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk.
## Outline ## Outline
@@ -26,6 +34,7 @@ I am creating these files for my personal use and cannot be held responsible for
- [Adjust Your Slicer](#adjust-your-slicer) - [Adjust Your Slicer](#adjust-your-slicer)
- [Support Me](#support-me) - [Support Me](#support-me)
- [Directory Structure](#directory-structure) - [Directory Structure](#directory-structure)
- [Special Considerations](#special-considerations)
- [FAQ](#faq) - [FAQ](#faq)
- [Useful Resources](#useful-resources) - [Useful Resources](#useful-resources)
- [Sovol Official Links](#sovol-official-links) - [Sovol Official Links](#sovol-official-links)
@@ -39,7 +48,8 @@ I am creating these files for my personal use and cannot be held responsible for
- Pre-configured configuration bundles based on the [Ellis SuperSlicer Print Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles): - Pre-configured configuration bundles based on the [Ellis SuperSlicer Print Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles):
- SuperSlicer - SuperSlicer
- PrusaSlicer - PrusaSlicer
- Printer profiles: SV06/Plus; SV07/Plus - 🚀 OrcaSlicer 🚀
- Printer profiles: `SV06/Plus`; `SV07/Plus`
- Bed model and texture to use in SuperSlicer/PrusaSlicer. - Bed model and texture to use in SuperSlicer/PrusaSlicer.
- Macros: - Macros:
- **Improved** mechanical gantry calibration/`G34` macro that provides the user audio feedback, and time to check the calibration. - **Improved** mechanical gantry calibration/`G34` macro that provides the user audio feedback, and time to check the calibration.
@@ -48,7 +58,7 @@ I am creating these files for my personal use and cannot be held responsible for
- Load/unload filament macros. - Load/unload filament macros.
- `PURGE_LINE` macro. - `PURGE_LINE` macro.
- `TEST_SPEED` macro. Find instructions [here](#how-do-i-use-the-test_speed-macro). - `TEST_SPEED` macro. Find instructions [here](#how-do-i-use-the-test_speed-macro).
- Klipper Adaptive Meshing & Purging (KAMP) integrated. Read about it [here](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging). - Klipper Adaptive Meshing & Purging (KAMP) integrated. Read about it [here](#what-do-i-need-to-know-about-kamp).
[🔼 Back to top](#outline) [🔼 Back to top](#outline)
@@ -58,7 +68,7 @@ ${\normalsize{\textcolor{goldenrod}{\texttt{Star ⭐ this project.}}}}$
Watch for [updates](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/37). Watch for [updates](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/37).
<img src="./images/githubstar.gif" width="500" alt='github star'/> <img src="./misc/images/githubstar.gif" width="500" alt='github star'/>
[🔼 Back to top](#outline) [🔼 Back to top](#outline)
@@ -73,10 +83,8 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p
## Before You Begin ## Before You Begin
- This entire page is a **9 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully. - This entire page is a **9 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully.
- ⚠️ Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md).
- ⚠️ [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin.
- Follow the steps in order. If an error was reported at a step, do no proceed to the next step. - Follow the steps in order. If an error was reported at a step, do no proceed to the next step.
- It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a data USB cable. 💡 Most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it is not possible to tell just by looking. - It is assumed that you are connected to your host Raspberry Pi (or other host device) via SSH, and that your printer motherboard is connected to the host via a _data_ USB cable.
- It is also assumed that the username on the host device is `pi`. If that is not the case, edit `moonraker.conf` and `cfgs/misc-macros.cfg` to change any mentions of `/home/pi` to `/home/yourUserName`. - It is also assumed that the username on the host device is `pi`. If that is not the case, edit `moonraker.conf` and `cfgs/misc-macros.cfg` to change any mentions of `/home/pi` to `/home/yourUserName`.
- Klipper _must_ be installed on the host beforehand. Easiest is to use [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest). [KIAUH](https://github.com/th33xitus/kiauh) is another option. - Klipper _must_ be installed on the host beforehand. Easiest is to use [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest). [KIAUH](https://github.com/th33xitus/kiauh) is another option.
- Klipper _must_ be up to date. - Klipper _must_ be up to date.
@@ -86,7 +94,16 @@ In many ways, this entire repository can be considered _my opinion_ on the `3D p
- It is assumed that there is one instance of Klipper installed. If that is not the case, the steps in this guide will not work _perfectly_ for you. - It is assumed that there is one instance of Klipper installed. If that is not the case, the steps in this guide will not work _perfectly_ for you.
- Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section. - Your question has probably been answered already, but if it hasn't, please post in the [Discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions) section.
- I would recommend searching for the word `NOTE` in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of. - I would recommend searching for the word `NOTE` in this configuration. There are roughly half a dozen short points amongst the various files that you should be aware of.
<!-- - Link to recommended parts. --> - Consider [these](https://github.com/bassamanator/everything-sovol-sv06/blob/main/parts/README.md#printed-upgrades) printable parts, and also see my [Printables](https://www.printables.com/@bassamanator) page.
> [!TIP]
> Most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it is not possible to tell just by looking.
> [!CAUTION]
> Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_. Beginners would be wise to run through [these steps](https://github.com/bassamanator/everything-sovol-sv06/blob/main/initialsteps.md).
> [!CAUTION]
> [Disable](https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#disable-usb-cable-5v-pin) the USB cable's 5V pin.
[🔼 Back to top](#outline) [🔼 Back to top](#outline)
@@ -102,7 +119,9 @@ Please note:
- The firmware file is located in the `misc` folder. - The firmware file is located in the `misc` folder.
- Flashing will only work if current firmware filename is _different from previous flashing procedure_. The `.bin` is also important. - Flashing will only work if current firmware filename is _different from previous flashing procedure_. The `.bin` is also important.
- You may find this [video](https://youtu.be/p6l253OJa34) useful. - You may find this [video](https://youtu.be/p6l253OJa34) useful.
- ⚠️ Many users have reported having issues flashing Klipper using the Sovol microSD card.
> [!WARNING]
> Many users have reported having issues flashing Klipper using the Sovol microSD card.
#### 1. Prepare the microSD Card for Flashing with These Parameters #### 1. Prepare the microSD Card for Flashing with These Parameters
@@ -120,7 +139,8 @@ Please note:
5. Turn on the printer and wait a minute (usually takes 10 seconds). 5. Turn on the printer and wait a minute (usually takes 10 seconds).
6. Turn off the printer and remove the microSD. 6. Turn off the printer and remove the microSD.
⏲️ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide. > [!IMPORTANT]
> ⏲️ At this point, it's not possible to tell with certainty whether your flash was successful, continue on with the guide.
[🔼 Back to top](#outline) [🔼 Back to top](#outline)
@@ -130,11 +150,12 @@ Please note:
💡 Make sure `git` is installed (`sudo apt update && sudo apt install git`). 💡 Make sure `git` is installed (`sudo apt update && sudo apt install git`).
1. `cd ~/printer_data/config` 1. `ssh` into the Klipper host.
2. Empty entire `~/printer_data/config` folder. 2. `cd ~/printer_data/config`
3. Empty entire `~/printer_data/config` folder.
- In linux, you can delete files via `rm fileName` and directories via `rmdir directoryName`. - In linux, you can delete files via `rm fileName` and directories via `rmdir directoryName`.
- In linux, you can list files and folders via `ls -lah`. - In linux, you can list files and folders via `ls -lah`.
3. `git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .` ⚠️ Don't miss the period! 4. `git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .` ⚠️ Don't miss the period!
#### Method 2: Download the ZIP #### Method 2: Download the ZIP
@@ -168,7 +189,7 @@ Please note:
restart_method: command restart_method: command
``` ```
3. Do a `FIRMWARE_RESTART`. 3. Do a `FIRMWARE_RESTART` in the Klipper console.
If the Klipper flash that you did earlier was successful, and you've done everything else correctly, you should see no errors or warnings in the `Mainsail`/`Fluidd` dashboard. 🎉 **Your printer has been Klipperized!** 🎉 If the Klipper flash that you did earlier was successful, and you've done everything else correctly, you should see no errors or warnings in the `Mainsail`/`Fluidd` dashboard. 🎉 **Your printer has been Klipperized!** 🎉
@@ -186,7 +207,8 @@ If the Klipper flash that you did earlier was successful, and you've done everyt
💡 I recommend no filament be loaded for any of these steps. 💡 I recommend no filament be loaded for any of these steps.
📝 You will be pasting/typing these commands into the `Mainsail`/`Fluidd` console. > [!NOTE]
> You will be pasting/typing these commands into the `Mainsail`/`Fluidd` console.
1. Check to see if `X` and `Y` max positions can be reached, and adjust `position_max`, if necessary. You might be able to go further, which is great, but I recommend leaving a 2mm gap for safety. 1. Check to see if `X` and `Y` max positions can be reached, and adjust `position_max`, if necessary. You might be able to go further, which is great, but I recommend leaving a 2mm gap for safety.
1. `G28` 1. `G28`
@@ -217,7 +239,8 @@ _But first_, adjust your slicer.
## Adjust Your Slicer ## Adjust Your Slicer
📝 If you are using the slicer bundles found on this repo, you can skip this section. > [!NOTE]
> If you are using the slicer bundles found on this repo, you can skip this section.
### Start G-Code ### Start G-Code
@@ -234,7 +257,10 @@ PRINT_END
If you would like to print a purge line before your print starts, at the end of your start gcode, on a new line, add one of the following: If you would like to print a purge line before your print starts, at the end of your start gcode, on a new line, add one of the following:
- `PURGE_LINE`; prints a standard purge line. - `PURGE_LINE`; prints a standard purge line.
- `LINE_PURGE`; prints KAMP's purge line. ⚠️ Do not attempt to use without reading [this section](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging). - `LINE_PURGE`; prints KAMP's purge line.
> [!WARNING]
> Do not attempt to use `LINE_PURGE` without reading [this section](#what-do-i-need-to-know-about-kamp).
```yaml ```yaml
# 📝 This is just an example Start G-Code # 📝 This is just an example Start G-Code
@@ -248,7 +274,7 @@ PURGE_LINE
Please ⭐ star this repository! Please ⭐ star this repository!
Support [open source](https://en.wikipedia.org/wiki/Open_source), and buy me a [<img src="./images/logo_white_stroke.png" height="20" alt='Ko-fi'/>](https://ko-fi.com/bassamanator). Support [open source](https://en.wikipedia.org/wiki/Open_source), and buy me a [<img src="./misc/images/logo_white_stroke.png" height="20" alt='Ko-fi'/>](https://ko-fi.com/bassamanator).
[🔼 Back to top](#outline) [🔼 Back to top](#outline)
@@ -268,7 +294,6 @@ This repository contains many files and folders. Some are _necessary_ for this K
├── .git/ ✅❔ ├── .git/ ✅❔
├── .github/ 💠 ├── .github/ 💠
├── .gitignore ✅❔ ├── .gitignore ✅❔
├── images/ 💠
├── LICENSE 💠 ├── LICENSE 💠
├── misc/ 💠 ├── misc/ 💠
├── moonraker.conf ✅ ├── moonraker.conf ✅
@@ -281,6 +306,28 @@ This repository contains many files and folders. Some are _necessary_ for this K
[🔼 Back to top](#outline) [🔼 Back to top](#outline)
## Special Considerations
### Sequential printing
If enabled, cancelling, or resuming a print from pause, could lead to collisions with previously printed objects. In order to prevent collisions, in your slicer, ensure that objects are printed from the back of the build plate to the front.
In PrusaSlicer, please see Printer Settings > Notes, for extruder clearances.
### Renamed GCODE Commands
#### BED_MESH_CALIBRATE
Renamed to `_BED_MESH_CALIBRATE`.
### Errors
#### MCU 'mcu' shutdown: Timer too close
This error often occurs when the `mcu` is unable to generate the required `microsteps`. Lower power Klipper hosts might be especially susceptible. Reducing `microsteps` to `64`, or even `32` can resolve the issue.
[🔼 Back to top](#outline)
## FAQ ## FAQ
### What are some settings that I can change? ### What are some settings that I can change?
@@ -291,11 +338,13 @@ Edit the relevant file according to your needs.
| ---------------------- | ------------------------ | | ---------------------- | ------------------------ |
| `cfgs/misc-macros.cfg` | `[gcode_macro _globals]` | | `cfgs/misc-macros.cfg` | `[gcode_macro _globals]` |
| Variable | Disable | Enable | Notes | | Variable | Disable | Enable | Notes |
| ---------------------------------- | ------------- | ------------- | ------------------------------------------------------------------- | | ---------------------------------- | ------------- | -------------- | ---------------------------------------------- |
| `variable_beeping_enabled` | `0` | `1` (default) | | `variable_beeping_enabled` | `0` | `1` (default) |
| `variable_filament_sensor_enabled` | `0` (default) | `1` | | `variable_filament_sensor_enabled` | `0` (default) | `1` |
| `variable_kamp_enable` | `0` (default) | `1` | See [here](#how-do-i-enable-kamp-klipper-adaptive-meshing--purging) | | `variable_kamp_enable` | `0` (default) | `1` | See [here](#what-do-i-need-to-know-about-kamp) |
| `variable_bed_temp_over` | `0` | `10` (default) | Speeds up print start |
| `variable_bed_temp_not_exact` | `0` | `1` (default) | Speeds up print start |
### How do I import a configuration bundle into SuperSlicer/PrusaSlicer? ### How do I import a configuration bundle into SuperSlicer/PrusaSlicer?
@@ -318,6 +367,8 @@ The printer will beep upon:
You can find information about the physical setup [here](https://github.com/bassamanator/everything-sovol-sv06#filament-sensor). You can find information about the physical setup [here](https://github.com/bassamanator/everything-sovol-sv06#filament-sensor).
You can test the sensor via `QUERY_FILAMENT_SENSOR SENSOR=filament_sensor`.
### My filament runout sensor works, but I just started a print without any filament loaded. What gives? ### My filament runout sensor works, but I just started a print without any filament loaded. What gives?
A simple runout sensor can only detect a change in state. So, if you start a print without filament loaded, the printer will not know that there is no filament loaded. You should test your sensor by having filament loaded, starting a print, then cutting the filament. The expected behaviour is that the print will pause, and as long as you have beeping enabled, you will hear 3 annoying beeps. A simple runout sensor can only detect a change in state. So, if you start a print without filament loaded, the printer will not know that there is no filament loaded. You should test your sensor by having filament loaded, starting a print, then cutting the filament. The expected behaviour is that the print will pause, and as long as you have beeping enabled, you will hear 3 annoying beeps.
@@ -339,7 +390,8 @@ _If_ you have a working filament sensor, the same behaviour as `M600`/colour cha
### How do I resume a print after a colour change or filament runout? ### How do I resume a print after a colour change or filament runout?
⚠️ Do not disable the stepper motors during this process! > [!WARNING]
> Do not disable the stepper motors during this process!
The printhead is now parked front center waiting for you to insert filament. You will: The printhead is now parked front center waiting for you to insert filament. You will:
@@ -350,21 +402,28 @@ The printhead is now parked front center waiting for you to insert filament. You
- OR, you can push some filament by hand _making sure to first disengage the extruder's spring loaded arm_. - OR, you can push some filament by hand _making sure to first disengage the extruder's spring loaded arm_.
3. Hit resume in your Klipper dashboard. 3. Hit resume in your Klipper dashboard.
### How do I enable KAMP (Klipper Adaptive Meshing & Purging)? ### What do I need to know about KAMP?
⚠️ No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero. > [!WARNING]
> No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero.
⚠️ If KAMP is disabled, and there is no `default` mesh, `PRINT_START` will crash. > [!WARNING]
> If KAMP is disabled, and there is no `default` mesh, `PRINT_START` will crash.
📝 The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work. > [!IMPORTANT]
> The [Label objects setting](https://docs.mainsail.xyz/overview/features/exclude-objects#enable-the-label-objects-setting-in-your-slicer) in your slicer must be enabled for KAMP to work.
📝 `LINE_PURGE` is useable (on appropriate devices) even if KAMP is disabled. > [!NOTE]
> `LINE_PURGE` is useable _on appropriate devices_ even if KAMP is disabled.
This repo contains all the code from the KAMP repository, however, only the `adaptive meshing` and `LINE_PURGE` functionality of KAMP has been configured and tested for use. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`. This repo contains all the code from the KAMP repository, however, only the `adaptive meshing` and `LINE_PURGE` functionality of KAMP has been configured and tested for use. To enable other functionality, adjust `/cfgs/kamp/KAMP_Settings.cfg`.
Read [KAMP official docs](https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging) to learn more.
### How do I use the `TEST_SPEED` macro? ### How do I use the `TEST_SPEED` macro?
⚠️ This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful. ☠️ **You have been warned** ☠️. > [!WARNING]
> This is for advanced users only, with well oiled machines. You can cause serious damage to your printer if you're not careful.
Find full instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/determining_max_speeds_accels.html). Find full instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/determining_max_speeds_accels.html).

View File

@@ -1,10 +1,12 @@
# NOTE Find how to use instructions here: https://ellis3dp.com/Print-Tuning-Guide/articles/determining_max_speeds_accels.html # NOTE Find how to use instructions here: https://ellis3dp.com/Print-Tuning-Guide/articles/determining_max_speeds_accels.html
[gcode_macro TEST_SPEED]
# Home, get position, throw around toolhead, home again. # Home, get position, throw around toolhead, home again.
# If MCU stepper positions (first line in GET_POSITION) are greater than a full step different (your number of microsteps), then skipping occured. # If MCU stepper positions (first line in GET_POSITION) are greater than a full step different (your number of microsteps), then skipping occured.
# We only measure to a full step to accomodate for endstop variance. # We only measure to a full step to accomodate for endstop variance.
# Example: TEST_SPEED SPEED=300 ACCEL=5000 ITERATIONS=10 # Example: TEST_SPEED SPEED=300 ACCEL=5000 ITERATIONS=10
[gcode_macro TEST_SPEED] description: Test for max speed and acceleration parameters for the printer. Procedure: Home -> ReadPositionFromMCU -> MovesToolhead@Vel&Accel -> Home -> ReadPositionfromMCU
gcode: gcode:
# Speed # Speed
{% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %}
@@ -12,6 +14,8 @@ gcode:
{% set iterations = params.ITERATIONS|default(5)|int %} {% set iterations = params.ITERATIONS|default(5)|int %}
# Acceleration # Acceleration
{% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %}
# Minimum Cruise Ratio
{% set min_cruise_ratio = params.MIN_CRUISE_RATIO|default(0.5)|float %}
# Bounding inset for large pattern (helps prevent slamming the toolhead into the sides after small skips, and helps to account for machines with imperfectly set dimensions) # Bounding inset for large pattern (helps prevent slamming the toolhead into the sides after small skips, and helps to account for machines with imperfectly set dimensions)
{% set bound = params.BOUND|default(20)|int %} {% set bound = params.BOUND|default(20)|int %}
# Size for small pattern box # Size for small pattern box
@@ -64,7 +68,11 @@ gcode:
G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60}
# Set new limits # Set new limits
SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% if printer.configfile.settings.printer.minimum_cruise_ratio is defined %}
SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} MINIMUM_CRUISE_RATIO={min_cruise_ratio}
{% else %}
SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2}
{% endif %}
{% for i in range(iterations) %} {% for i in range(iterations) %}
# Large pattern diagonals # Large pattern diagonals
@@ -80,7 +88,7 @@ gcode:
G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60}
# Small pattern diagonals # Small pattern diagonals
G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60}
@@ -89,7 +97,7 @@ gcode:
G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60}
# Small patternbox # Small pattern box
G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60}
@@ -97,7 +105,11 @@ gcode:
{% endfor %} {% endfor %}
# Restore max speed/accel/accel_to_decel to their configured values # Restore max speed/accel/accel_to_decel to their configured values
SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} {% if printer.configfile.settings.printer.minimum_cruise_ratio is defined %}
SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} MINIMUM_CRUISE_RATIO={printer.configfile.settings.printer.minimum_cruise_ratio}
{% else %}
SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel}
{% endif %}
# Re-home and get position again for comparison: # Re-home and get position again for comparison:
M400 # Finish moves - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/66 M400 # Finish moves - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/66
@@ -109,4 +121,5 @@ gcode:
GET_POSITION GET_POSITION
# Restore previous gcode state (absolute/relative, etc) # Restore previous gcode state (absolute/relative, etc)
RESTORE_GCODE_STATE NAME=TEST_SPEED RESTORE_GCODE_STATE NAME=TEST_SPEED

View File

@@ -29,9 +29,11 @@ gcode:
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
[gcode_macro _globals] [gcode_macro _globals]
# NOTE 0 = false; 1 = true
variable_filament_sensor_enabled: 0 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected variable_filament_sensor_enabled: 0 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected
variable_beeping_enabled: 1 # NOTE Enable(1) or disable(0) beeping everywhere except during gantry calibration variable_beeping_enabled: 1 # NOTE Enable(1) or disable(0) beeping everywhere except during gantry calibration
variable_bed_temp_over: 10 # NOTE Start print if bed temperature is over by this amount, otherwise wait for temperature drop variable_bed_temp_over: 10 # NOTE Start print if bed temperature is over by this amount. Set to 0 to disable, meaning, wait for temperature to drop
variable_bed_temp_not_exact: 1 # NOTE Start print if bed temperature is `target temperature - 1` (but continue to heat until target is reached)
variable_kamp_enable: 0 # NOTE Enable(1) or disable(0) KAMP (adaptive mesh) variable_kamp_enable: 0 # NOTE Enable(1) or disable(0) KAMP (adaptive mesh)
variable_pre_purge_prime_length: 1.40 variable_pre_purge_prime_length: 1.40
gcode: gcode:
@@ -75,12 +77,20 @@ gcode:
[gcode_macro M190] [gcode_macro M190]
rename_existing: M99190 rename_existing: M99190
gcode: gcode:
#Parameters # Global variables/settings
{% set bedtempNotExact = printer["gcode_macro _globals"].bed_temp_not_exact|default(1)|int %}
# Parameters
{% set s = params.S|float %} {% set s = params.S|float %}
M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set bed temp M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set bed temp
{% if s != 0 %} {% if s != 0 %}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s} MAXIMUM={s+1} ; Wait for bed temp (within 1 degree) {% if bedtempNotExact == 1 %}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s-1} MAXIMUM={s+1} ; set & wait for bed temp (within -1 or +1 degree)
M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; set & don't wait for bed temp
{% else %}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s} MAXIMUM={s+1} ; Wait for bed temp (within +1 degree)
{% endif %}
{% endif %} {% endif %}
[gcode_macro PURGE_LINE] [gcode_macro PURGE_LINE]
@@ -97,7 +107,7 @@ gcode:
# Set safe speeds # Set safe speeds
{% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %}
{% set maxVelocityAdjusted = (0.95 * maxVelocity * 60)|int %} {% set maxVelocityAdjusted = (0.95 * maxVelocity * 60)|int %}
G92 E0.0 ; reset extruder G92 E0.0 ; reset extruder
G90 ; Absolute positioning G90 ; Absolute positioning
@@ -132,7 +142,7 @@ gcode:
{% set bedtempSlicer = bedtemp %} {% set bedtempSlicer = bedtemp %}
{% set bedtempOver = printer["gcode_macro _globals"].bed_temp_over|default(0)|int %} {% set bedtempOver = printer["gcode_macro _globals"].bed_temp_over|default(0)|int %}
{% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %}
{% set maxVelocityAdjusted = (0.90 * maxVelocity * 60)|int %} {% set maxVelocityAdjusted = (0.90 * maxVelocity * 60)|int %}
{% set kampEnabled=printer["gcode_macro _globals"].kamp_enable|default(0)|int %} {% set kampEnabled=printer["gcode_macro _globals"].kamp_enable|default(0)|int %}
{% if printer.configfile.settings.safe_z_home %} {% if printer.configfile.settings.safe_z_home %}
@@ -195,8 +205,8 @@ gcode:
# Set safe speeds # Set safe speeds
{% set zVelocity = printer.configfile.settings.printer.max_z_velocity|default(15)|int %} {% set zVelocity = printer.configfile.settings.printer.max_z_velocity|default(15)|int %}
{% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %} {% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %}
{% set zVelocityAdjusted = (0.95 * zVelocity * 60)|int %} {% set zVelocityAdjusted = (0.95 * zVelocity * 60)|int %}
{% set maxVelocityAdjusted = (0.95 * maxVelocity * 60)|int %} {% set maxVelocityAdjusted = (0.95 * maxVelocity * 60)|int %}
# Get Boundaries # Get Boundaries
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %} {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
@@ -326,4 +336,4 @@ gcode:
G4 P{dur} G4 P{dur}
SET_PIN PIN=beeper VALUE=0 SET_PIN PIN=beeper VALUE=0
G4 P{dur} G4 P{dur}
{% endfor %} {% endfor %}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

View File

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,15 @@
## Converting PrusaSlicer/SuperSlicer config bundles to OrcaSlicer
OrcaSlicer configs can be converted from PrusaSlicer using [SuperSlicer_to_Orca_scripts](https://github.com/apparle/SuperSlicer_to_Orca_scripts). It is a fork of theophile's script with some enhancements which haven't been merged yet ([theophile/SuperSlicer_to_Orca_scripts#43](https://github.com/theophile/SuperSlicer_to_Orca_scripts/pull/43)). It does require a few perl modules which can be installed using `cpanminus` (or your favorite perl module manager).
Most of the script is automated, with the exception of `printer_model` field which must be manually specified with a `json`. This attribute is used by OrcaSlicer to load the appropriate build plate images & STLs.
```
perl SuperSlicer_to_Orca_scripts/superslicer_to_orca.pl --input PrusaSlicer_config_bundle-2.9.2.ini --nozzle-size 0.4 --compatible_printers_condition KEEP --skip-link-system-printer --printer-models-json printer_models_conversion_mapping.json --output-config-bundle OrcaSlicer_config_bundle-2.9.2-DEV.zip
```
## How to use OrcaSlicer bundle:
This config bundle can be imported into OrcaSlicer : `File > Import > Import configs...`
Note, OrcaSlicer reformats the `json` and adds some default attributes, so the imported files cannot be directly compared with the contents of the zipped bundle. But you can use json comparison tools like [https://www.jsondiff.com/](https://www.jsondiff.com/) to analyze the differences if needed.

View File

@@ -0,0 +1,12 @@
{
"SV06 0.4 nozzle": "Sovol SV06",
"SV06 0.6 nozzle": "Sovol SV06",
"SV06 ACE 0.4 nozzle": "Sovol SV06 ACE",
"SV06 ACE 0.6 nozzle": "Sovol SV06 ACE",
"SV06 Plus 0.4 nozzle": "Sovol SV06 Plus",
"SV06 Plus 0.6 nozzle": "Sovol SV06 Plus",
"SV07 0.4 nozzle": "Sovol SV07",
"SV07 0.6 nozzle": "Sovol SV07",
"SV07 Plus 0.4 nozzle": "Sovol SV07 Plus",
"SV07 Plus 0.6 nozzle": "Sovol SV07 Plus"
}