156 Commits

Author SHA1 Message Date
Bassam Husain
2bf38dd416 Update OS bundles; minor improvements. 2025-11-06 15:29:56 -05:00
Bassam Husain
515b423237 Update klipper.bin. Update OS bundles; minor improvements.
Squashed commit of the following:

commit 41b619305bb09fc03c07b838d1a2c0cea717a96f
Author: Bassam Husain <bassam.husain@gmail.com>
Date:   Thu Nov 6 15:17:04 2025 -0500

    Update OS bundles; minor improvements.

commit da6b3be36abda94b21fb1bd3c10d72006cb57a4c
Author: Bassam Husain <bassam.husain@gmail.com>
Date:   Tue Oct 21 12:46:28 2025 -0400

    Update firmware: v0.13.0-114-g841a9ca2f.
2025-11-06 15:18:21 -05:00
Bassam Husain
869bbffeb9 Adjust firmware compilation instructions. 2025-10-20 13:54:58 -04:00
Bassam Husain
3ec59f3e05 Fix support settings for 0.6 nozzle; OS. 2025-07-20 20:46:03 -04:00
Bassam Husain
9e3ba15aee Fix support settings for 0.6 nozzle; OS. 2025-07-20 20:44:41 -04:00
Bassam
be9b47ece2 Update printer.cfg
Adjust `sense_resistor` values to 0.110 according to BTT wiki:
https://bttwiki.com/TMC2209.html#standalone-mode-vref-setting.
2025-06-16 14:03:21 -04:00
Bassam Husain
2fb3db4323 Add new OS bundles: added 15mm3 profiles. 2025-05-27 00:06:39 -04:00
Bassam Husain
7d9cb1d8fb Add new OS bundles: added 15mm3 profiles. 2025-05-27 00:01:07 -04:00
Bassam Husain
f6b7c3aad9 Adjust readme: differences between marlin. 2025-05-26 19:03:06 -04:00
Bassam Husain
5267b5db80 Adjust readme: differences between marlin. 2025-05-26 18:46:02 -04:00
Bassam Husain
f704ca26aa Lower stepper_z run_current to 0.900. 2025-05-26 18:28:40 -04:00
Bassam Husain
9e1cf53dc6 Turn function that allows prints to start when bed temp is 'target - 1' into a param in _globals. 2025-05-19 16:40:56 -04:00
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
9ae483ebb4 Minor adjustments to README download section. 2025-05-17 19:26:18 -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
5577fb5269 Adjust OS bundles. 2025-04-20 18:00:37 -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
46bb425e2f Squashed commit of the following:
commit e712f7b8a1
Author: Bassam Husain <bassam.husain@gmail.com>
Date:   Tue Apr 15 02:54:47 2025 -0400

    Adjust bundles: PS-2.9.2.

commit e00ff1d311
Author: Bassam Husain <bassam.husain@gmail.com>
Date:   Tue Apr 1 16:43:21 2025 -0400

    Adjust scarf joint settings.
2025-04-15 02:57:14 -04: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
038eae5798 Merge branch 'master' into skr-mini-e3-v3 2025-03-29 20:19:25 -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
ac6cf14302 Add PS bundle 2.9.0 with 0.6 mm nozzle. 2025-02-11 03:15:51 -05: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
d76f74847b Add mcu timer too close error to special considerations. 2025-01-02 22:47:05 -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
c2de4a1c57 Adjust readme header. 2024-11-25 00:37:37 -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
5d674e0422 Merge branch 'master' into skr-mini-e3-v3 2024-08-28 23:54:41 -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
f89003ae56 Merge branch 'master' into skr-mini-e3-v3 2024-08-28 23:04:44 -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
dbd777309a Merge branch 'master' into skr-mini-e3-v3 2024-07-05 23:55:33 -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
b664cca478 Squashed commit of the following:
commit f27b569d0c
Author: Bassam Husain <bassam.husain@gmail.com>
Date:   Wed May 15 16:00:32 2024 -0400

    Add known issues section.
2024-05-15 16:02:20 -04:00
Bassam Husain
f27b569d0c Add known issues section. 2024-05-15 16:00:32 -04:00
Bassam Husain
e62d75cb4d Merge branch 'master' into skr-mini-e3-v3 2024-05-15 15:01:00 -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
1512fc6606 Adjust skr wiring diagram to include filament sensor. Adjust printer.cfg and misc-macros.cfg accordingly. 2024-05-15 02:36:42 -04:00
Bassam Husain
fa1cc28fa1 Adjust PS config bundle: edit printer notes tab. 2024-05-07 01:19:26 -04:00
Bassam Husain
46b946983b Adjust PS config bundle: edit printer notes tab. 2024-05-07 01:17:21 -04:00
Bassam Husain
79d6114faa Merge branch 'master' into skr-mini-e3-v3 2024-03-08 13:45:23 -05:00
Bassam Husain
cad7c3c94b Merge branch 'master' into skr-mini-e3-v3 2024-02-21 02:54:11 -05:00
bassamanator
5cc8820ee1 Merge branch 'master' into skr-mini-e3-v3 2024-01-22 23:43:51 -05:00
bassamanator
00253641c6 Merge branch 'master' into skr-mini-e3-v3 2024-01-15 23:51:56 -05:00
Bassam Husain
1f21a299a5 Merge branch 'master' into skr-mini-e3-v3 2023-12-08 19:03:58 -05:00
Bassam Husain
671e2ec375 Merge branch 'master' into skr-mini-e3-v3 2023-12-08 01:09:32 -05:00
Bassam Husain
ff037a2b5c Merge branch 'master' into skr-mini-e3-v3 2023-12-03 00:36:20 -05:00
Bassam Husain
9ad3f153e4 Merge branch 'master' into skr-mini-e3-v3 2023-12-01 15:40:57 -05:00
Bassam Husain
a399efb3b5 Merge branch 'master' into skr-mini-e3-v3 2023-12-01 14:11:01 -05:00
Bassam Husain
7f1f40c0a9 Merge branch 'master' into skr-mini-e3-v3 2023-12-01 13:59:00 -05:00
Bassam Husain
fd3de8b04c Merge branch 'master' into skr-mini-e3-v3 2023-11-27 20:33:09 -05:00
Bassam Husain
9cbe8faad3 Merge branch 'master' into skr-mini-e3-v3 2023-11-27 19:01:33 -05:00
Bassam Husain
6ec3c2595b Merge branch 'master' into skr-mini-e3-v3 2023-11-27 04:15:24 -05:00
Bassam Husain
89d3111645 Add newly compiled firmware, simplify readme. 2023-11-27 02:58:42 -05:00
Bassam Husain
ac5b983b02 Adjust readme. 2023-11-27 02:22:09 -05:00
Bassam Husain
121a7b9278 Merge branch 'master' into skr-mini-e3-v3 2023-11-27 02:00:52 -05:00
Bassam Husain
4583e008ab Add axis_twist_compensation. 2023-11-24 19:52:27 -05:00
Bassam Husain
e71b633199 Adjust config bundles. 2023-11-23 14:07:17 -05:00
Bassam Husain
9ded9c0d86 Merge branch 'master' into skr-mini-e3-v3 2023-11-23 04:47:25 -05:00
Bassam Husain
e6830263fa Merge branch 'master' into skr-mini-e3-v3 2023-11-22 19:07:38 -05:00
Bassam Husain
f832247858 Merge branch 'master' into skr-mini-e3-v3 2023-11-20 03:17:36 -05:00
Bassam Husain
9e7d728860 Merge branch 'master' into skr-mini-e3-v3 2023-11-20 02:38:35 -05:00
Bassam Husain
3fafe0409d Merge branch 'master' into skr-mini-e3-v3 2023-11-20 01:35:56 -05:00
Bassam Husain
3d4403957e Adjust printer.cfg skr. 2023-11-19 23:01:08 -05:00
Bassam Husain
ef3998aa6e Adjust PS config bundle. 2023-11-19 21:37:51 -05:00
Bassam Husain
19cac92c03 Merge branch 'master' into skr-mini-e3-v3 2023-11-19 21:10:41 -05:00
Bassam Husain
b8d51de39f Merge branch 'master' into skr-mini-e3-v3 2023-11-19 17:33:20 -05:00
Bassam Husain
9dda49ce18 Merge branch 'master' into skr-mini-e3-v3 2023-09-13 18:37:04 -04:00
Bassam Husain
e4bcd00e6a Merge branch 'master' into skr-mini-e3-v3 2023-09-13 17:22:19 -04:00
Bassam Husain
deb40aee58 Merge branch 'master' into skr-mini-e3-v3 2023-09-10 15:07:27 -04:00
Bassam Husain
af03e949a1 Merge branch 'master' into skr-mini-e3-v3 2023-08-27 19:42:03 -04:00
Bassam Husain
dbac52de8e Adjust settings. 2023-08-26 19:42:31 -04:00
Bassam Husain
f91dcf5067 Merge branch 'master' into skr-mini-e3-v3 2023-08-26 16:56:08 -04:00
Bassam Husain
8c64ff52e7 Adjust sources. 2023-08-23 20:21:20 -04:00
Bassam Husain
8cdd042af9 Adjust PS config bundle. 2023-08-23 19:39:17 -04:00
Bassam Husain
8104769a14 Adjust SS config bundle. 2023-08-23 19:22:55 -04:00
Bassam Husain
554ab9e884 Adjust PS config bundle. 2023-08-23 18:50:01 -04:00
Bassam Husain
a3bae63002 Add source. 2023-08-23 15:58:23 -04:00
Bassam Husain
5b325f866a Adjust PS config bundle. 2023-08-23 15:42:16 -04:00
Bassam Husain
5ccc09caed Added PS/SS config bundles. 2023-08-23 01:20:06 -04:00
Bassam Husain
483acf0eda Add colour to README.md. 2023-08-16 00:53:50 -04:00
Bassam Husain
54b2f42da8 Merge branch 'master' into skr-mini-e3-v3 2023-08-13 16:12:28 -04:00
Bassam Husain
1b0d5e8f04 Merge branch 'master' into skr-mini-e3-v3 2023-08-05 18:36:16 -04:00
Bassam Husain
6fe0cdc1d7 Merge branch 'master' into skr-mini-e3-v3 2023-08-05 02:00:34 -04:00
Bassam Husain
a15d9b1258 Merge branch 'master' into skr-mini-e3-v3 2023-07-27 16:44:53 -04:00
Bassam Husain
f90b3842e4 Adjusted screws_tilt_adjust section. 2023-07-02 21:39:21 -04:00
Bassam Husain
cdea66a59d Adjusted repo title. 2023-07-01 02:32:21 -04:00
Bassam Husain
b5d8755e59 Merge branch 'master' into skr-mini-e3-v3 2023-07-01 02:26:48 -04:00
Bassam Husain
b9a67cf09b Adjusted configure your printer section. 2023-07-01 01:58:25 -04:00
Bassam Husain
f65c0e6e7f Adjusted outline. 2023-07-01 01:54:32 -04:00
Bassam Husain
d343f37e15 Merge branch 'master' into skr-mini-e3-v3 2023-07-01 01:42:20 -04:00
Bassam Husain
d3713903a3 formatOnSave set to false. 2023-06-24 20:44:55 -04:00
Bassam Husain
a060db3eae Minor adjustment to misc-macros.cfg. 2023-06-19 00:55:29 -04:00
Bassam Husain
1f33de5f1d Cloned master branch for easier updates. 2023-06-19 00:48:16 -04:00
Bassam Husain
56a50ae34e Many adjustments to the firmware section. 2023-06-19 00:27:08 -04:00
Bassam Husain
0a0b20cf98 Added directory structure. 2023-06-18 23:50:19 -04:00
Bassam Husain
bc28fbc448 Added outline and many other adjustments. 2023-06-18 23:45:57 -04:00
Bassam Husain
73957c211d Updated readme minor. 2023-06-18 19:46:33 -04:00
Bassam Husain
d364fe2918 Adjusted links. 2023-06-18 15:37:34 -04:00
Bassam Husain
81cc4b2696 Added table for branches instead of text. 2023-06-18 14:55:48 -04:00
Bassam Husain
b2b67f63a0 Update readme minor. 2023-06-18 13:58:10 -04:00
Bassam Husain
5adc395f65 Update readme minor. 2023-06-18 13:55:44 -04:00
Bassam Husain
ddaade5877 Cleanup with linter. 2023-06-11 01:24:54 -04:00
Bassam Husain
3cd751ba8d Bed temp over now customizable. 2023-06-09 17:32:28 -04:00
Bassam Husain
7e45ae0f2d Pulled in print_start from master: prints start with higher bed temp now, range 10C. 2023-05-20 20:00:55 -04:00
Bassam Husain
73d99d5fdf Adjust readme.md. 2023-05-12 01:07:33 -04:00
Bassam Husain
622ce6714b Skr-mini-e3-v3: set x, y, z run_current: 0.600. Added note about stepper motor run_current. 2023-05-10 22:00:45 -04:00
Bassam Husain
4df780af99 Skr-mini-e3-v3 instructions adjusted. 2023-05-09 19:46:13 -04:00
Bassam Husain
556ce2bd1f Added newly compiled skr-mini-e3-v3 firmware; untested. Adjusted instructions. Other file renaming. 2023-05-09 19:39:14 -04:00
Bassam Husain
149f628c1e Change microsteps: 64 for skr-mini-e3-v3. 2023-05-09 18:56:58 -04:00
Bassam Husain
8b941129b0 Adjust driver_SGTHRS. 2023-04-26 16:25:07 -04:00
Bassam Husain
efb0db19be Adjust README. 2023-04-26 14:02:12 -04:00
Bassam Husain
d4b9849f78 Merge branch 'master' into skr-mini-e3-v3 2023-04-26 13:17:52 -04:00
Bassam Husain
c7a3508b2e Pulling from master. 2023-04-18 08:20:52 -04:00
Bassam Husain
297ce7b437 Reversed stepper_x.dir_pin. 2023-04-13 17:41:33 -04:00
Bassam Husain
70557d38d3 Pulling in from master. 2023-04-13 17:34:34 -04:00
Bassam Husain
1a5c935c54 Merging with master. 2023-04-07 10:00:31 -04:00
Bassam Husain
1226153862 Updated readme. 2023-04-06 08:34:11 -04:00
Bassam Husain
4f499a72f5 Update printer.cfg
Set extruder.microsteps to 64.
2023-04-06 07:10:31 -04:00
Bassam Husain
ab339294b9 Simplified and made clear instructions on skr-mini-e3-v3 branch. 2023-04-02 22:50:23 -04:00
Bassam Husain
dba8b85da6 Getting skr-e3-v3 inline with master. 2023-04-02 22:24:21 -04:00
Bassam Husain
3caf21bc8b Adjusted fans and reversed stepper_x move direction. 2023-03-26 08:44:37 -04:00
Bassam Husain
5142687f98 Merge branch 'master' into skr-mini-e3-v3 2023-03-26 07:13:01 -04:00
Bassam Husain
1c86f48454 Minor fix to readme. 2023-03-11 22:11:53 -05:00
Bassam Husain
7389d7726e Minor adjustment to bed_mesh. Adjusted instructions. 2023-03-11 22:07:56 -05:00
Bassam Husain
c6d484cce1 Pulled in printer.cfg from master. 2023-03-11 21:37:25 -05:00
Bassam Husain
8007ea6d38 Added instructions to skr-mini branch readme. 2023-03-11 21:24:50 -05:00
Bassam Husain
33d3ea1b8c Renamed installation.md to README.md. 2023-03-11 20:43:56 -05:00
Bassam Husain
1c644a409d Skr-mini klipper instructions added. 2023-03-11 20:42:36 -05:00
Bassam Husain
0de06bec51 Added headings. Added installation diagram for skr-mini. 2023-03-11 19:34:17 -05:00
Bassam Husain
e1befbbcc4 Adjusted board_pins. 2023-03-10 15:08:55 -05:00
Bassam Husain
e2975975a6 Minor changes. 2023-03-10 06:12:43 -05:00
Bassam Husain
bf5abed9a3 Minor changes. 2023-03-10 06:05:54 -05:00
Bassam Husain
bccf585446 Pulled in changes from master. 2023-03-10 05:30:53 -05:00
Bassam Husain
0aa2f8edb3 Many changes to skr mini printer.cfg. 2023-03-10 04:42:57 -05:00
Bassam Husain
7e1cf54240 Getting ready to include the printer.cfg for the SKR-Mini-E3-V3 by @transistor1. 2023-03-08 16:42:15 -05:00
Steve Russo
a6a0f9cf33 Create printer-skr-mini-e3-v3.cfg 2023-03-06 22:15:08 -05:00
48 changed files with 13564 additions and 3092 deletions

1
.gitignore vendored
View File

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

24
.vscode/settings.json vendored
View File

@@ -1,7 +1,7 @@
{ {
"editor.tabSize": 4, "editor.tabSize": 4,
// "editor.formatOnSave": false, // "editor.formatOnSave": false,
// "editor.defaultFormatter": null, // "editor.defaultFormatter": "mervin.markdown-formatter",
"editor.insertSpaces": true, "editor.insertSpaces": true,
"editor.detectIndentation": false, "editor.detectIndentation": false,
"git.mergeEditor": false, "git.mergeEditor": false,
@@ -20,20 +20,28 @@
"Klipper", "Klipper",
"Klipperized", "Klipperized",
"lrwxrwxrwx", "lrwxrwxrwx",
"menuconfig",
"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 +70,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"]
} }

505
README.md
View File

@@ -1,20 +1,497 @@
# 🚨 _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 my personal settings. # One-Stop-Shop Klipper Configuration
## Switch to a More Appropriate Branch | Printer | Branch |
| ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- |
| Sovol SV06 | [master](https://github.com/bassamanator/Sovol-SV06-firmware/tree/master) |
| ${\normalsize{\textcolor{darkturquoise}{\text{Sovol SV06 SKR-Mini-E3-V3.0}}}}$ | ⚡ ${\small{\textcolor{darkturquoise}{\text{YOU ARE HERE}}}}$ ⚡ |
| Sovol SV06 Fly-E3-Pro-V3 | [fly-e3-pro-v3](https://github.com/ElPainis/Fly-E3-Pro-v3) \*\* |
| 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) |
| Printer | Branch | ${\small{\textit{** Maintained by ElPainis}}}$
| --------------------------- | ----------------------------------------------------------------------------------------- |
| Sovol SV06 | [master](https://github.com/bassamanator/Sovol-SV06-firmware/tree/master) |
| 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) |
| All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) |
# Speedrun > [!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.
<a href="https://youtu.be/jGplZnNoT4I?si=1e3BTfP3vhhEvGNs" target="_blank"> 🙏🏻🙌🏻 Big thanks to [transistor1](https://github.com/transistor1) for getting the `printer.cfg` up an running to begin with.
<img src="https://img.youtube.com/vi/jGplZnNoT4I/maxresdefault.jpg" alt="Watch the video" width="100%"/>
</a>
<img src="./images/octahedroflake.jpg" /> ## Outline
- [Features](#features)
- [Stay Up-to-Date](#stay-up-to-date)
- [Preface](#preface)
- [Before You Begin](#before-you-begin)
- [Electronic Wiring](#electronic-wiring)
- [⚠️ Important Note About Stepper Motor Current](#important-note-about-stepper-motor-current)
- [Klipper Installation](#klipper-installation)
- [Flash Firmware](#flash-firmware)
- [Download OSS Klipper Configuration](#download-oss-klipper-configuration)
- [Initial Steps](#initial-steps)
1. [Adjust Configuration with MCU Path](#adjust-configuration-with-mcu-path)
2. [Configure Your Printer](#configure-your-printer)
- [Adjust Your Slicer](#adjust-your-slicer)
- [Support Me](#support-me)
- [Directory Structure](#directory-structure)
- [Special Considerations](#special-considerations)
- [FAQ](#faq)
- [Useful Resources](#useful-resources)
- [Sovol Official Links](#sovol-official-links)
- [Sources](#sources)
## Features
- 💥 This Klipper configuration is an _endpoint_, meaning that it contains **everything** that you could possibly need in order to have an excellent Klipper experience! 💥
- Filament runout sensor usage implemented.
- Minimum configuration settings for `Mainsail` and `Fluidd`.
- Pre-configured configuration bundles based on the [Ellis SuperSlicer Print Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles):
- SuperSlicer
- PrusaSlicer
- 🚀 OrcaSlicer 🚀
- Printer profiles: `SV06/Plus`; `SV07/Plus`
- Bed model and texture to use in SuperSlicer/PrusaSlicer.
- Macros:
- **Improved** mechanical gantry calibration/`G34` macro that provides the user audio feedback, and time to check the calibration.
- Misc macros: `PRINT_START`, `CANCEL_PRINT`, `PRINT_END`, `PAUSE`, `RESUME`.
- Parking macros (parks the printhead at various locations): `PARKFRONT`, `PARKFRONTLOW`, `PARKREAR`, `PARKCENTER`, `PARKBED`.
- Load/unload filament macros.
- `PURGE_LINE` 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](#what-do-i-need-to-know-about-kamp).
[🔼 Back to top](#outline)
## Stay Up-to-Date
${\normalsize{\textcolor{goldenrod}{\texttt{Star ⭐ this project.}}}}$
Watch for [updates](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/37).
<img src="./misc/images/githubstar.gif" width="500" alt='github star'/>
[🔼 Back to top](#outline)
## Preface
Although I've made switching over to Klipper as easy as is possible, it can still be a challenge for some, especially considering that most of you have likely never used GNU+Linux. Save yourself the frustration, and fully read this documentation. Also note that Klipper is not a _must_, and is not for everyone. You can stick with Marlin, and have a fine 3D printing experience.
In many ways, this entire repository can be considered _my opinion_ on the `3D printing experience` and this has been _my attempt_ to share that experience. Some factors, such as _accuracy_ and _testing_, have been at the forefront of my thoughts during this process. I hope you find this repository suitable. Cheers.
[🔼 Back to top](#outline)
## Before You Begin
- This entire page is a **9 minute read**. Save yourself _hours of troubleshooting_ and read this documentation fully.
- 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.
- 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 up to date.
- In `Fluidd`, you can do this from `Settings` > `Software Updates`.
- In `Mainsail`, you can do this from `Machine` > `Update Manager`.
- Robert Redford's performance in _Spy Game (2001)_ was superb!
- 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.
- 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.
- 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)
## Electronic Wiring
Wire cables according to the following diagram:
<img src="./misc/skr-mini/skr-mini-e3-v3.0-v1715751911501.png" alt='skr-mini-e3-v3.0 installation instructions'/>
### Important Note About Stepper Motor Current
For the SKR-Mini-E3-V3.0, the `run_current` for x, y, z stepper motors has been reduced in the `printer.cfg`, because the standard current seems to make the steppers dangerously hot. You may have to increase the current, or if the motors are still too hot, you may have to decrease it.
💡 Although stepper motors can withstand upwards of 125C, they should at the most get hot to the touch (~55C), not _very hot_.
[🔼 Back to top](#outline)
## Klipper Installation
### Flash Firmware
💡 If you flashed Klipper onto your motherboard in the past, you can skip this step.
Please note:
- For the sake of simplicity, I will refer to the klipper firmware file as `firmware.bin` even though the actual filename is something along the lines of `firmware-v0.12.0-10-gea2f6bc0-UNTESTED.bin`.
- The firmware file **must** be named `firmware.bin`.
- The firmware file is located in `misc/skr-mini`.
> [!WARNING]
> Many users have reported having issues flashing Klipper using the Sovol microSD card.
#### 1. Prepare the microSD Card for Flashing with These Parameters
- Size: `16GB` maximum.
- File system: `FAT32`.
- Allocation unit size: `4096 bytes`.
- Must not contain any files _except_ the firmware file.
#### 2. Flashing Procedure
1. Disconnect any USB cables that might be connected to the motherboard.
2. Copy `firmware.bin` to the microSD card.
3. Make sure the printer is off.
4. Insert the microSD card into printer.
5. Turn on the printer and wait a minute (usually takes 10 seconds).
6. Turn off the printer and remove the microSD.
> [!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)
### Download OSS Klipper Configuration
#### Method 1: Clone the Repository
💡 Make sure `git` is installed (`sudo apt update && sudo apt install git`).
1. `ssh` into the Klipper host.
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 list files and folders via `ls -lah`.
4. `git clone -b skr-mini-e3-v3 --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .` ⚠️ Don't miss the period!
#### Method 2: Download the ZIP
1. [Download](https://github.com/bassamanator/Sovol-SV06-firmware/archive/refs/heads/skr-mini-e3-v3.zip) the `ZIP` file containing the Klipper configuration.
2. See Step 2 in Method 1.
3. The parent folder in the `ZIP` is `Sovol-SV06-firmware-skr-mini-e3-v3`. This is relevant in the next step.
4. Extract **only** the _contents_ of the parent folder into `~/printer_data/config`.
[🔼 Back to top](#outline)
## Initial Steps
### Adjust Configuration with MCU Path
💡 Make sure the host and printer are connected via USB.
1. Find what port the `mcu` (printer motherboard) is connected to via _one_ of the following commands:
- `ls /dev/serial/by-id/*`
- `ls /dev/serial/by-path/*`
1. The output will be something along the lines of
- `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0`
2. Adjust the `[mcu]` section in `printer.cfg` accordingly.
```yaml
# 📝 This is just an example
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: command
```
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!** 🎉
[🔼 Back to top](#outline)
### Configure Your Printer
❗☠️ **Your finger should be on the power switch for most of these steps** ☠️❗
❗☠️ **Power off if there is a collision/problem** ☠️❗
💡 The ${\small{\textcolor{red}{\texttt{EMERGENCY STOP}}}}$ button in your dashboard works faster than hitting the power switch.
💡 Do a practice emergency stop.
💡 I recommend no filament be loaded for any of these steps.
> [!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. `G28`
2. `G90`
3. `G1 X223 F3000`
4. `G1 Y223 F3000`
2. Do a mechanical gantry calibration; `G34`. After the controlled collision against the beam at the top, there will be a 10 second pause for you to verify that both sides of the gantry are pressed up against the `stoppers` at the top. You will hear a succession of beeps.
1. Figure out your `Z` `position_max` by baby stepping your way up to the beam, and adjust `position_max`, if necessary.
3. PID tune the bed. Ideally, all PID tuning should occur at the temperatures that you print most at.
1. `PID_TEST_BED TEMP=70`
2. `SAVE_CONFIG` (once completed)
4. PID tune the extruder while part cooling fan runs at 25%.
1. `PID_TEST_HOTEND TEMP=245`
2. `SAVE_CONFIG` (once completed)
5. Adjust `z_offset`. Make sure your nozzle if very clean. Do the [Paper test](https://www.klipper3d.org/Bed_Level.html?h=probe_calibrate#the-paper-test).
1. `DO_PROBE_CALIBRATE`
2. Follow `z_offset` setup in `Mainsail`/`Fluidd`.
3. `SAVE_CONFIG` (once completed)
6. Create a bed mesh.
1. `DO_CREATE_MESH`
2. `SAVE_CONFIG` (once completed)
🏁 If you've made it here, then your Klipperized printer is ready to print! 🏁
_But first_, adjust your slicer.
[🔼 Back to top](#outline)
## Adjust Your Slicer
> [!NOTE]
> If you are using the slicer bundles found on this repo, you can skip this section.
### Start G-Code
It varies depending on your slicer. Find instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code).
### End G-Code
```
PRINT_END
```
### Line Purge
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.
- `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
# 📝 This is just an example Start G-Code
PRINT_START ...
PURGE_LINE
```
[🔼 Back to top](#outline)
## Support Me
Please ⭐ star this repository!
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)
## Directory Structure
This repository contains many files and folders. Some are _necessary_ for this Klipper configuration to work, others are not.
- **Necessary** items are marked with a ✅.
- Items that can _optionally_ be deleted are marked with a 💠.
<!-- tree -a -C -I '.directory' -L 1 -F -->
```sh
/home/pi/printer_data/config
├── cfgs/ ✅
├── CODE_OF_CONDUCT.md 💠
├── CONTRIBUTING.md 💠
├── .git/ ✅❔
├── .github/ 💠
├── .gitignore ✅❔
├── LICENSE 💠
├── misc/ 💠
├── moonraker.conf ✅
├── osskc.cfg ✅
├── printer.cfg ✅
├── README.md 💠
├── SECURITY.md 💠
└── .vscode/ 💠
```
[🔼 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
### What are some settings that I can change?
Edit the relevant file according to your needs.
| File | Section |
| ---------------------- | ------------------------ |
| `cfgs/misc-macros.cfg` | `[gcode_macro _globals]` |
| Variable | Disable | Enable | Notes |
| ---------------------------------- | ------------- | -------------- | ---------------------------------------------- |
| `variable_beeping_enabled` | `0` | `1` (default) |
| `variable_filament_sensor_enabled` | `0` (default) | `1` |
| `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 |
### Any differences between this configuration and Sovol's Marlin firmware?
| Property | Marlin | OSS Klipper Config |
| ------------------------- | ------ | ------------------ |
| `stepper_x` `run_current` | 0.860 | 0.600 |
| `stepper_y` `run_current` | 0.900 | 0.600 |
| `stepper_z` `run_current` | 0.800 | 0.600 |
| `microsteps` | 16 | 64 |
### How do I import a configuration bundle into SuperSlicer/PrusaSlicer?
Please see this [discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/13).
### How do I print using SuperSlicer/PrusaSlicer?
Please see this [discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/14).
### When does beeping occur?
The printer will beep upon:
- Filament runout.
- Filament change/`M600`.
- Upon `PRINT_END`.
- `MECHANICAL_GANTRY_CALIBRATION`/`G34`.
### I want to use a filament sensor. How do I set it up?
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?
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.
### What happens when I put in `M600`/colour change at a certain layer?
1. The printer will beep 3 times (not annoyingly).
2. Printing will stop.
3. The printhead will park itself front center.
4. The hotend will turn off, but the bed will remain hot.
### What happens when I pause a print?
Same behaviour as `M600`/colour change _except_ there won't be any beeping.
### What happens when filament runs out?
_If_ you have a working filament sensor, the same behaviour as `M600`/colour change will occur _except_ the beeps will be fairly annoying.
### How do I resume a print after a colour change or filament runout?
> [!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:
1. Heat up the hotend to the desired temperature.
- Use your Klipper dashboard.
2. Purge (push) some filament through the nozzle.
- Use your Klipper dashboard, and extrude maybe 50mm (for a colour change you probably want to extrude more).
- 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.
### What do I need to know about KAMP?
> [!WARNING]
> No KAMP functionality can be used on low-powered devices such as the Raspberry Pi Zero.
> [!WARNING]
> If KAMP is disabled, and there is no `default` mesh, `PRINT_START` will crash.
> [!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.
> [!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`.
Read [KAMP official docs](https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging) to learn more.
### How do I use the `TEST_SPEED` macro?
> [!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).
Some tips:
- Before running with `ITERATIONS=40` with an untested speed/accel value, run with `ITERATIONS=1`.
- Pay close attention throughout the run, so that you can click ${\small{\textcolor{red}{\texttt{EMERGENCY STOP}}}}$ at a moment's notice.
- This macro will simply help you determine the maximum speed your printhead and bed can reliably move at, not necessarily print at. The bottleneck for my SV06, for example, is the 15mm/s^2 that the hotend maxes out at (well under 200mm/s actual print speed).
### How do I compile my own firmware?
Please see this [discussion](https://github.com/bassamanator/Sovol-SV06-firmware/discussions/117).
[🔼 Back to top](#outline)
## Useful Resources
- [Everything Sovol SV06](https://github.com/bassamanator/everything-sovol-sv06)
- [RP2040-Zero ADXL345 Connection Klipper](https://github.com/bassamanator/rp2040-zero-adxl345-klipper)
- ⭐⭐⭐⭐⭐ [Ellis' Print Tuning Guide](https://ellis3dp.com/Print-Tuning-Guide)
- [Simplify3D Print Quality Troubleshooting Guide](https://www.simplify3d.com/resources/print-quality-troubleshooting/)
[🔼 Back to top](#outline)
## Sovol Official Links
- [SV06 Marlin Source Code](https://github.com/Sovol3d/Sv06-Source-Code)
- [SV06 Models](https://github.com/Sovol3d/SV06-Fully-Open-Source)
- [SV06 Plus Marlin Source Code and Models](https://github.com/Sovol3d/SV06-PLUS)
[🔼 Back to top](#outline)
## Sources
- [https://www.klipper3d.org](https://www.klipper3d.org)
- [Ellis' Print Tuning Guide](https://ellis3dp.com/Print-Tuning-Guide)
- [Mechanical Gantry Calibration Macro](https://github.com/strayr/strayr-k-macros)
- [SV06 printer.cfg](https://github.com/spinixguy/Sovol-SV06-firmware)
- [SV06 Buildplate and Texture](https://www.printables.com/model/378915-sovol-sv06-buildplate-texture-and-model-for-prusas)
- [Ellis' SuperSlicer Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles)
- [Klipper Adaptive Meshing & Purging](https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging)
- [PrusaSlicer Print Settings](https://github.com/mjonuschat/PrusaSlicer-Profiles)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/H2H0HIHTH)
[🔼 Back to top](#outline)

View File

@@ -1,52 +0,0 @@
# Author FatalBulletHit, https://github.com/FatalBulletHit
[gcode_macro GET_VARIABLE]
gcode:
{% set names = (params.NAME).split('.')|list %}
{% set join = (params.JOIN)|default(1)|int %}
{% set _dummy0 = namespace( break = 0 ) %}
{% set _dummy1 = namespace( out = printer[names|first] ) %}
{% for name in names if _dummy0.break == 0 %}
{% if loop.index > 1 %}
{% if name in _dummy1.out %}
{% set _dummy1.out = _dummy1.out[name] %}
{% elif name[0] in '0123456789' and _dummy1.out is iterable and _dummy1.out is not string and _dummy1.out is not mapping and _dummy1.out|length > name[0]|int %}
{% set _dummy1.out = _dummy1.out[name|int] %}
{% else %}
{% set _dummy0.break = loop.index0 %}
{% endif %}
{% endif %}
{% endfor %}
{% if _dummy1.out is boolean %}
{ action_respond_info('Type: boolean') }
{% elif _dummy1.out is float %}
{ action_respond_info('Type: float') }
{% elif _dummy1.out is integer %}
{ action_respond_info('Type: integer') }
{% elif _dummy1.out is mapping %}
{ action_respond_info('Type: mapping') }
{% elif _dummy1.out is string %}
{ action_respond_info('Type: string') }
{% elif _dummy1.out is iterable %}
{ action_respond_info('Type: iterable') }
{% elif _dummy1.out is none %}
{ action_respond_info('Type: none') }
{% elif _dummy1.out is undefined %}
{ action_respond_info('Type: undefined') }
{% elif _dummy1.out is callable %}
{ action_respond_info('Type: callable') }
{% else %}
{ action_respond_info('Type: unknown') }
{% endif %}
{% if join and _dummy1.out is iterable and _dummy1.out is not string and _dummy1.out is not mapping %}
{ action_respond_info('%s' % _dummy1.out|join("\n")) }
{% else %}
{ action_respond_info('%s' % _dummy1.out) }
{% endif %}
{% if _dummy0.break != 0 %}
{ action_respond_info('"printer.%s" does not contain "%s"!' % (names[0:_dummy0.break]|join('.'), names[_dummy0.break])) }
{% endif %}

View File

@@ -5,13 +5,13 @@ timeout: 600
enable_force_move: True enable_force_move: True
# NOTE If you're using a Raspberry Pi, you can uncomment the next 2 lines, optionally. # NOTE If you're using a Raspberry Pi, you can uncomment the next 2 lines, optionally.
#[temperature_sensor raspberry_pi] # [temperature_sensor raspberry_pi]
#sensor_type: temperature_host # sensor_type: temperature_host
# NOTE If you're using a an Orange Pi, you can uncomment the next 3 lines, optionally. # NOTE If you're using a an Orange Pi, you can uncomment the next 3 lines, optionally.
[temperature_sensor Orange_Pi] # [temperature_sensor Orange_Pi]
sensor_type: temperature_host # sensor_type: temperature_host
sensor_path: /sys/class/thermal/thermal_zone0/temp # sensor_path: /sys/class/thermal/thermal_zone0/temp
[virtual_sdcard] [virtual_sdcard]
path: /home/pi/printer_data/gcodes path: /home/pi/printer_data/gcodes
@@ -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]
variable_filament_sensor_enabled: 1 # NOTE Enable(1) or disable(0) the filament sensor, if one is connected # NOTE 0 = false; 1 = true
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]
@@ -189,19 +199,14 @@ gcode:
M400 ; wait for buffer to clear M400 ; wait for buffer to clear
G92 E0 ; zero the extruder G92 E0 ; zero the extruder
G1 E-{PRE_PURGE_PRIME_LENGTH} F400 ; retract filament
{% if printer['pause_resume'].is_paused|int == 0 %}
CONDITIONAL_BEEP i=3 dur=300 freq=400
G1 E-{PRE_PURGE_PRIME_LENGTH} F400 ; retract filament
{% endif %}
G91 ; relative positioning G91 ; relative positioning
# 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 %}

View File

@@ -1,424 +0,0 @@
# Timelapse klipper macro definition
#
# Copyright (C) 2021 Christoph Frei <fryakatkop@gmail.com>
# Copyright (C) 2021 Alex Zellner <alexander.zellner@googlemail.com>
#
# This file may be distributed under the terms of the GNU GPLv3 license
#
# Macro version 1.14
#
##### DO NOT CHANGE ANY MACRO!!! #####
##########################################################################
# #
# GET_TIMELAPSE_SETUP: Print the Timelapse setup to console #
# #
##########################################################################
[gcode_macro GET_TIMELAPSE_SETUP]
description: Print the Timelapse setup
gcode:
{% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %}
{% set output_txt = ["Timelapse Setup:"] %}
{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}
{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}
{% if tl.park.enable %}
{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}
{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}
{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}
{% endif %}
{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}
{% if not tl.extruder.fw_retract %}
{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}
{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}
{% endif %}
{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}
{action_respond_info(output_txt|join("\n"))}
################################################################################################
# #
# Use _SET_TIMELAPSE_SETUP [ENABLE=value] [VERBOSE=value] [PARK_ENABLE=value] [PARK_POS=value] #
# [PARK_TIME=value] [CUSTOM_POS_X=value] [CUSTOM_POS_Y=value] #
# [CUSTOM_POS_DZ=value][TRAVEL_SPEED=value] [RETRACT_SPEED=value] #
# [EXTRUDE_SPEED=value] [EXTRUDE_DISTANCE=value] #
# [RETRACT_DISTANCE=value] [FW_RETRACT=value] #
# #
################################################################################################
[gcode_macro _SET_TIMELAPSE_SETUP]
description: Set user parameters for timelapse
gcode:
{% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %}
##### get min and max bed size #####
{% set min = printer.toolhead.axis_minimum %}
{% set max = printer.toolhead.axis_maximum %}
{% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
else False %}
{% set park = {'min' : {'x': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),
'y': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},
'max' : {'x': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),
'y': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},
'center': {'x': (max.x-(max.x-min.x)/2)|round(3),
'y': (max.y-(max.y-min.y)/2)|round(3)}} %}
##### set new values #####
{% if params.ENABLE %}
{% if params.ENABLE|lower is in ['true', 'false'] %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == 'true' else False}
{% else %}
{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}
{% endif %}
{% endif %}
{% if params.VERBOSE %}
{% if params.VERBOSE|lower is in ['true', 'false'] %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == 'true' else False}
{% else %}
{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}
{% endif %}
{% endif %}
{% if params.CUSTOM_POS_X %}
{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}
{% set _dummy = tl.park.custom.update({'x':params.CUSTOM_POS_X|float|round(3)}) %}
{% else %}
{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}
{% endif %}
{% endif %}
{% if params.CUSTOM_POS_Y %}
{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}
{% set _dummy = tl.park.custom.update({'y':params.CUSTOM_POS_Y|float|round(3)}) %}
{% else %}
{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}
{% endif %}
{% endif %}
{% if params.CUSTOM_POS_DZ %}
{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}
{% set _dummy = tl.park.custom.update({'dz':params.CUSTOM_POS_DZ|float|round(3)}) %}
{% else %}
{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}
{% endif %}
{% endif %}
{% if params.PARK_ENABLE %}
{% if params.PARK_ENABLE|lower is in ['true', 'false'] %}
{% set _dummy = tl.park.update({'enable':True if params.PARK_ENABLE|lower == 'true' else False}) %}
{% else %}
{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}
{% endif %}
{% endif %}
{% if params.PARK_POS %}
{% if params.PARK_POS|lower is in ['center','front_left','front_right','back_left','back_right','custom','x_only','y_only'] %}
{% set dic = {'center' : {'x': park.center.x , 'y': park.center.y , 'dz': 1 },
'front_left' : {'x': park.min.x , 'y': park.min.y , 'dz': 0 },
'front_right' : {'x': park.max.x , 'y': park.min.y , 'dz': 0 },
'back_left' : {'x': park.min.x , 'y': park.max.y , 'dz': 0 },
'back_right' : {'x': park.max.x , 'y': park.max.y , 'dz': 0 },
'custom' : {'x': tl.park.custom.x, 'y': tl.park.custom.y, 'dz': tl.park.custom.dz},
'x_only' : {'x': tl.park.custom.x, 'y': 'none' , 'dz': tl.park.custom.dz},
'y_only' : {'x': 'none' , 'y': tl.park.custom.y, 'dz': tl.park.custom.dz}} %}
{% set _dummy = tl.park.update({'pos':params.PARK_POS|lower}) %}
{% set _dummy = tl.park.update({'coord':dic[tl.park.pos]}) %}
{% else %}
{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"
% params.PARK_POS|upper)}
{% endif %}
{% endif %}
{% if params.PARK_TIME %}
{% if params.PARK_TIME|float >= 0.0 %}
{% set _dummy = tl.park.update({'time':params.PARK_TIME|float|round(3)}) %}
{% else %}
{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"
{% if params.TRAVEL_SPEED %}
{% if params.TRAVEL_SPEED|float > 0.0 %}
{% set _dummy = tl.speed.update({'travel':params.TRAVEL_SPEED|float|round(3)}) %}
{% else %}
{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}
{% endif %}
{% endif %}
{% if params.RETRACT_SPEED %}
{% if params.RETRACT_SPEED|float > 0.0 %}
{% set _dummy = tl.speed.update({'retract':params.RETRACT_SPEED|float|round(3)}) %}
{% else %}
{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}
{% endif %}
{% endif %}
{% if params.EXTRUDE_SPEED %}
{% if params.EXTRUDE_SPEED|float > 0.0 %}
{% set _dummy = tl.speed.update({'extrude':params.EXTRUDE_SPEED|float|round(3)}) %}
{% else %}
{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"
{% if params.EXTRUDE_DISTANCE %}
{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}
{% set _dummy = tl.extruder.update({'extrude':params.EXTRUDE_DISTANCE|float|round(3)}) %}
{% else %}
{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}
{% endif %}
{% endif %}
{% if params.RETRACT_DISTANCE %}
{% if params.RETRACT_DISTANCE|float >= 0.0 %}
{% set _dummy = tl.extruder.update({'retract':params.RETRACT_DISTANCE|float|round(3)}) %}
{% else %}
{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}
{% endif %}
{% endif %}
{% if params.FW_RETRACT %}
{% if params.FW_RETRACT|lower is in ['true', 'false'] %}
{% if 'firmware_retraction' in printer.configfile.settings %}
{% set _dummy = tl.extruder.update({'fw_retract': True if params.FW_RETRACT|lower == 'true' else False}) %}
{% else %}
{% set _dummy = tl.extruder.update({'fw_retract':False}) %}
{% if params.FW_RETRACT|capitalize == 'True' %}
{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}
{% endif %}
{% endif %}
{% else %}
{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"
{% if printer.configfile.settings['gcode_macro pause'] is defined %}
{% set _dummy = tl.macro.update({'pause': printer.configfile.settings['gcode_macro pause'].rename_existing}) %}
{% endif %}
{% if printer.configfile.settings['gcode_macro resume'] is defined %}
{% set _dummy = tl.macro.update({'resume': printer.configfile.settings['gcode_macro resume'].rename_existing}) %}
{% endif %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"
##########################################################################
# #
# TIMELAPSE_TAKE_FRAME: take the next picture #
# #
##########################################################################
######################### definition #########################
## enable: enable or disable the next frame. Valid inputs: [True, False]
## takingframe: internal use. Valid inputs: [True, False]
##
## park.enable: enable or disable to park the head while taking a picture. Valid inputs: [True, False]
## park.pos : used position for parking. Valid inputs: [center, front_left, front_right, back_left, back_right, custom, x_only, y_only]
## park.time : used for the debug macro. Time in s
## park.custom.x, park.custom.y: coordinates of the custom parkposition. Unit [mm]
## park.custom.dz : custom z hop for the picture. Unit [mm]
## park.coord : internal use
##
## extruder.fw_retract: enable disable fw retraction [True,False]
## extruder.extrude : filament extruded at the end of park. Unit [mm]
## extruder.retract : filament retract at the start of park. Unit [mm]
##
## speed.travel : used speed for travel from and to the park positon. Unit: [mm/min]
## speed.retract: used speed for retract [mm/min]
## speed.extrude: used speed for extrude [mm/min]
##
## verbose: Enable mesage output of TIMELAPSE_TAKE_FRAME
##
## restore.absolute.coordinates: internal use
## restore.absolute.extrude : internal use
## restore.speed : internal use
## restore.e : internal use
## restore.factor.speed : internal use
## restore.factor.extrude : internal use
##
## macro.pause : internal use
## macro.resume : internal use
##
## is_paused: internal use
###############################################################
[gcode_macro TIMELAPSE_TAKE_FRAME]
description: Take Timelapse shoot
variable_enable: False
variable_takingframe: False
variable_park: {'enable': False,
'pos' : 'center',
'time' : 0.1,
'custom': {'x': 0, 'y': 0, 'dz': 0},
'coord' : {'x': 0, 'y': 0, 'dz': 0}}
variable_extruder: {'fw_retract': False,
'retract': 1.0,
'extrude': 1.0}
variable_speed: {'travel': 100,
'retract': 15,
'extrude': 15}
variable_verbose: True
variable_restore: {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}
variable_macro: {'pause': 'PAUSE', 'resume': 'RESUME'}
variable_is_paused: False
gcode:
{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower =='true' else False %}
{% if enable %}
{% if (hyperlapse and printer['gcode_macro HYPERLAPSE'].run) or
(not hyperlapse and not printer['gcode_macro HYPERLAPSE'].run) %}
{% if park.enable %}
{% set pos = {'x': 'X' + park.coord.x|string if park.pos != 'y_only' else '',
'y': 'Y' + park.coord.y|string if park.pos != 'x_only' else '',
'z': 'Z'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}
{% set restore = {'absolute': {'coordinates': printer.gcode_move.absolute_coordinates,
'extrude' : printer.gcode_move.absolute_extrude},
'speed' : printer.gcode_move.speed,
'e' : printer.gcode_move.gcode_position.e,
'factor' : {'speed' : printer.gcode_move.speed_factor,
'extrude': printer.gcode_move.extrude_factor}} %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"
{% if not printer[printer.toolhead.extruder].can_extrude %}
{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}
{% else %}
{% if extruder.fw_retract %}
G10
{% else %}
M83 ; insure relative extrusion
G0 E-{extruder.retract} F{speed.retract * 60}
{% endif %}
{% endif %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True
{macro.pause} ; execute the klipper PAUSE command
SET_GCODE_OFFSET X=0 Y=0 ; this will insure that the head parks always at the same position in a multi setup
G90 ; insure absolute move
{% if "xyz" not in printer.toolhead.homed_axes %}
{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}
{% else %}
G0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}
{% endif %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True
UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION=0.5
M400
{% endif %}
_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}
{% endif %}
{% else %}
{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}
{% endif %}
[gcode_macro _TIMELAPSE_NEW_FRAME]
description: action call for timelapse shoot. must be a seperate macro
gcode:
{action_call_remote_method("timelapse_newframe",
macropark=printer['gcode_macro TIMELAPSE_TAKE_FRAME'].park,
hyperlapse=params.HYPERLAPSE)}
[delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME]
gcode:
{% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %}
{% set factor = {'speed': printer.gcode_move.speed_factor, 'extrude': printer.gcode_move.extrude_factor} %}
{% if tl.takingframe %}
UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION=0.5
{% else %}
{tl.macro.resume} VELOCITY={tl.speed.travel} ; execute the klipper RESUME command
SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False
{% if not printer[printer.toolhead.extruder].can_extrude %}
{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}
{% else %}
{% if tl.extruder.fw_retract %}
G11
{% else %}
G0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}
G0 F{tl.restore.speed}
{% if tl.restore.absolute.extrude %}
M82
G92 E{tl.restore.e}
{% endif %}
{% endif %}
{% endif %}
{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}
{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}
{% if not tl.restore.absolute.coordinates %} G91 {% endif %}
{% endif %}
####################################################################################################
# #
# HYPERLAPSE: Starts or stops a Hyperlapse video #
# Usage: HYPERLAPSE ACTION=START [CYCLE=time] starts a hyperlapse with cycle time (default 30 sec) #
# HYPERLAPSE ACTION=STOP stops the hyperlapse recording #
# #
####################################################################################################
######################### definition #########################
## cycle: cycle time in seconds
## run: internal use [True/False]
###############################################################
[gcode_macro HYPERLAPSE]
description: Start/Stop a hyperlapse recording
variable_cycle: 0
variable_run: False
gcode:
{% set cycle = params.CYCLE|default(30)|int %}
{% if params.ACTION and params.ACTION|lower == 'start' %}
{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}
SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True
SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}
UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}
TIMELAPSE_TAKE_FRAME HYPERLAPSE=True
{% elif params.ACTION and params.ACTION|lower == 'stop' %}
{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}
SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False
UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0
{% else %}
{action_raise_error("Hyperlapse: No valid input parameter
Use:
- HYPERLAPSE ACTION=START [CYCLE=time]
- HYPERLAPSE ACTION=STOP")}
{% endif %}
[delayed_gcode _HYPERLAPSE_LOOP]
gcode:
UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}
TIMELAPSE_TAKE_FRAME HYPERLAPSE=True
##########################################################################
# #
# TIMELAPSE_RENDER: Render the video at print end #
# #
##########################################################################
######################### definition #########################
## render: internal use. Valid inputs: [True, False]
## run_identifier: internal use. Valid input [0 .. 3]
###############################################################
[gcode_macro TIMELAPSE_RENDER]
description: Render Timelapse video and wait for the result
variable_render: False
variable_run_identifier: 0
gcode:
{action_respond_info("Timelapse: Rendering started")}
{action_call_remote_method("timelapse_render", byrendermacro="True")}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True
{printer.configfile.settings['gcode_macro pause'].rename_existing} ; execute the klipper PAUSE command
UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5
[delayed_gcode _WAIT_TIMELAPSE_RENDER]
gcode:
{% set ri = printer['gcode_macro TIMELAPSE_RENDER'].run_identifier % 4 %}
SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}
{% if printer['gcode_macro TIMELAPSE_RENDER'].render %}
M117 Rendering {['-','\\','|','/'][ri]}
UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5
{% else %}
{action_respond_info("Timelapse: Rendering finished")}
M117
{printer.configfile.settings['gcode_macro resume'].rename_existing} ; execute the klipper RESUME command
{% endif %}
##########################################################################
# #
# TEST_STREAM_DELAY: Helper macro to find stream and park delay #
# #
##########################################################################
[gcode_macro TEST_STREAM_DELAY]
description: Helper macro to find stream and park delay
gcode:
{% set min = printer.toolhead.axis_minimum %}
{% set max = printer.toolhead.axis_maximum %}
{% set act = printer.toolhead.position %}
{% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %}
{% if act.z > 5.0 %}
G0 X{min.x + 5.0} F{tl.speed.travel|int * 60}
G0 X{(max.x-min.x)/2}
G4 P{tl.park.time|float * 1000}
_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE
G0 X{max.x - 5.0}
{% else %}
{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}
{% endif %}

View File

@@ -1,60 +0,0 @@
#### crowsnest.conf
#### This is a typical default config.
#### Also used as default in mainsail / MainsailOS
#### See:
#### https://github.com/mainsail-crew/crowsnest/blob/master/README.md
#### for details to configure to your needs.
#####################################################################
#### #####
#### Information about ports and according URL's #####
#### #####
#####################################################################
#### #####
#### Port 8080 equals /webcam/?action=[stream/snapshot] #####
#### Port 8081 equals /webcam2/?action=[stream/snapshot] #####
#### Port 8082 equals /webcam3/?action=[stream/snapshot] #####
#### Port 8083 equals /webcam4/?action=[stream/snapshot] #####
#### #####
#####################################################################
#### RTSP Stream URL: ( if enabled and supported ) #####
#### rtsp://<ip>:<rtsp_port>/stream.h264 #####
#####################################################################
[crowsnest]
log_path: /home/pi/printer_data/logs/crowsnest.log
log_level: verbose # Valid Options are quiet/verbose/debug
delete_log: false # Deletes log on every restart, if set to true
no_proxy: false
[cam 1]
mode: ustreamer # ustreamer - Provides mjpg and snapshots. (All devices)
# camera-streamer - Provides webrtc, mjpg and snapshots. (rpi + Raspi OS based only)
enable_rtsp: false # If camera-streamer is used, this enables also usage of an rtsp server
rtsp_port: 8554 # Set different ports for each device!
port: 8080 # HTTP/MJPG Stream/Snapshot Port
device: /dev/video0 # See Log for available ...
# resolution: 640x480 # 4:3
# resolution: 800x600 # 4:3
# resolution: 960x720 # 4:3
# resolution: 1024x768 # 4:3
# resolution: 1152x864 # 4:3
# resolution: 1280x960 # 4:3
# resolution: 1400x1050 # 4:3
# resolution: 1440x1080 # 4:3
# resolution: 1600x1200 # 4:3
# resolution: 1856x1392 # 4:3
# resolution: 1920x1440 # 4:3
# resolution: 640x360 # 16:9 nHD
# resolution: 854x480 # 16:9 FWVGA
# resolution: 960x540 # 16:9 qHD
# resolution: 1024x576 # 16:9 WSVGA
resolution: 1280x720 # 16:9 HD
# resolution: 1366x768 # 16:9 FWXGA
# resolution: 1600x900 # 16:9 HD+
# resolution: 1920x1080 # 16:9 Full HD
max_fps: 30 # If Hardware Supports this it will be forced, otherwise ignored/coerced.
#custom_flags: # You can run the Stream Services with custom flags.
#v4l2ctl: # Add v4l2-ctl parameters to setup your camera, see Log what your cam is capable of.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 510 KiB

View File

@@ -1,63 +1,48 @@
Recv: echo:; Linear Units: echo:; Linear Units:
Recv: echo: G21 ; (mm) echo: G21 ; (mm)
Recv: echo:; Temperature Units: echo:; Temperature Units:
Recv: echo: M149 C ; Units in Celsius echo: M149 C ; Units in Celsius
Recv: echo:; Filament settings (Disabled): echo:; Filament settings (Disabled):
Recv: echo: M200 S0 D1.75 echo: M200 S0 D1.75
Recv: echo:; Steps per unit: echo:; Steps per unit:
Recv: echo: M92 X80.00 Y80.00 Z800.00 E691.50 echo: M92 X80.00 Y80.00 Z800.00 E691.50
Recv: echo:; Max feedrates (units/s): echo:; Max feedrates (units/s):
Recv: echo: M203 X200.00 Y200.00 Z12.00 E120.00 echo: M203 X500.00 Y500.00 Z10.00 E30.00
Recv: echo:; Max Acceleration (units/s2): echo:; Max Acceleration (units/s2):
Recv: echo: M201 X1000.00 Y1000.00 Z200.00 E5000.00 echo: M201 X500.00 Y500.00 Z100.00 E5000.00
Recv: echo:; Acceleration (units/s2) (P<print-accel> R<retract-accel> T<travel-accel>): echo:; Acceleration (units/s2) (P<print-accel> R<retract-accel> T<travel-accel>):
Recv: echo: M204 P1000.00 R1250.00 T1500.00 echo: M204 P500.00 R500.00 T1000.00
Recv: echo:; Advanced (B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> J<junc_dev>): echo:; Advanced (B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk>):
Recv: echo: M205 B20000.00 S0.00 T0.00 J0.01 echo: M205 B20000.00 S0.00 T0.00 X8.00 Y8.00 Z0.40 E5.00
Recv: echo:; Home offset: echo:; Home offset:
Recv: echo: M206 X0.00 Y0.00 Z0.00 echo: M206 X0.00 Y0.00 Z0.00
Recv: echo:; Unified Bed Leveling: echo:; Auto Bed Leveling:
Recv: echo: M420 S1 Z10.00 ; Leveling ON echo: M420 S0 Z10.00 ; Leveling OFF
Recv: Unified Bed Leveling System v1.01 active echo:; Material heatup parameters:
Recv: echo:Active Mesh Slot 0 echo: M145 S0 H185.00 B60.00 F255
Recv: echo:EEPROM can hold 2 meshes. echo: M145 S1 H240.00 B80.00 F255
Recv: echo:; X-Twist Correction: echo:; Hotend PID:
Recv: M423 A0.00 I110.00 echo: M301 P15.95 I1.30 D48.96
Recv: M423 X0 Z0.00 echo:; Bed PID:
Recv: M423 X1 Z0.00 echo:echo: M304 P110.38 I6.12 D497.30
Recv: M423 X2 Z0.00 echo:; User thermistors:
Recv: echo:; Material heatup parameters: echo: M305 P0 R4700.0 T94162.0 B4160.0 C0.000000000 ; HOTEND 0
Recv: echo: M145 S0 H200.00 B60.00 F0 echo:; Power-loss recovery:
Recv: echo: M145 S1 H240.00 B70.00 F0 echo: M413 S1 ; ON
Recv: echo: M145 S2 H205.00 B45.00 F0 echo:; Z-Probe Offset:
Recv: echo: M145 S3 H260.00 B70.00 F0 echo: M851 X25.00 Y-25.00 Z0.00 ; (mm)
Recv: echo:; Hotend PID: echo:; Stepper driver current:
Recv: echo: M301 P23.48 I2.99 D46.09 echo: M906 X860 Y900 Z800
Recv: echo:; Bed PID: echo: M906 T0 E550
Recv: echo: M304 P163.96 I28.03 D639.32 echo:; Hybrid Threshold:
Recv: echo:; User thermistors: echo: M913 X183 Y183 Z41
Recv: echo: M305 P0 R4700.0 T94162.0 B4160.0 C0.000000000 ; HOTEND 0 echo: M913 T0 E60
Recv: echo:; Power-loss recovery: echo:; StallGuard threshold:
Recv: echo: M413 S0 ; OFF echo: M914 X68 Y70
Recv: echo:; Z-Probe Offset: echo:; Driver stepping mode:
Recv: echo: M851 X28.00 Y-20.00 Z-2.02 ; (mm) echo: M569 S1 X Y Z
Recv: echo:; Stepper driver current: echo: M569 S1 T0 E
Recv: echo: M906 X860 Y900 Z1000 echo:; Linear Advance:
Recv: echo: M906 T0 E550 echo: M900 K0.04
Recv: echo:; Hybrid Threshold: echo:; Filament load/unload:
Recv: echo: M913 X183 Y183 Z41 echo: M603 L0.00 U50.00 ; (mm)
Recv: echo: M913 T0 E60
Recv: echo:; StallGuard threshold:
Recv: echo: M914 X65 Y68
Recv: echo:; Driver stepping mode:
Recv: echo: M569 S1 X Y Z
Recv: echo: M569 S1 T0 E
Recv: echo:; Input Shaping:
Recv: echo: M593 X F40.00 D0.15
Recv: echo: M593 Y F40.00 D0.15
Recv: echo:; Linear Advance:
Recv: echo: M900 K0.05
Recv: echo:; Filament load/unload:
Recv: echo: M603 L0.00 U50.00 ; (mm)
Recv: echo:; Filament runout sensor:
Recv: echo: M412 S0 ; Sensor OFF

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

View File

@@ -23,8 +23,6 @@ You have to decide what camp you want to be apart off.
##### Update Klipper repo first ##### Update Klipper repo first
\*\* _For those coming from the_ ${\small{\textcolor{WildStrawberry}{\texttt{Before You B.egin}}}}$ _section (installing Klipper for the first time), complete_ **only** _this section_. No need to compile the firmware, etc.
It's always best to update the Klipper repository that lives on the host before compiling. This ensures that your `klipper.bin` will be as 'fresh' as possible. It's always best to update the Klipper repository that lives on the host before compiling. This ensures that your `klipper.bin` will be as 'fresh' as possible.
- In `Fluidd`, you can do this from `Settings` > `Software Updates`. - In `Fluidd`, you can do this from `Settings` > `Software Updates`.
@@ -37,9 +35,13 @@ It's always best to update the Klipper repository that lives on the host before
1. `ssh` into the Klipper host (i.e., RPi, OrangePi, etc.). 1. `ssh` into the Klipper host (i.e., RPi, OrangePi, etc.).
2. `cd ~/klipper` 2. `cd ~/klipper`
3. `make menuconfig` 3. `make menuconfig`
4. Set things up to look as follows: - Adjusts compilation settings via terminal GUI.
![make-menuconfig](https://github.com/bassamanator/Sovol-SV06-firmware/assets/61985779/22298d47-2604-4231-ad10-7d6793be7904) 5. Set things up to look as follows:
5. `make clean` <div align='center'>
<img width="561" height="323" alt="image" src="https://github.com/user-attachments/assets/868f89f7-29a2-42b6-bf08-e7a59e8c8510" />
</div>
6. `make clean`
- Clears `~/klipper/out/` - Clears `~/klipper/out/`
6. `make` 7. `make`
- Compiles `klipper.bin` and puts it in `~/klipper/out/` - Compiles `klipper.bin` and puts it in `~/klipper/out/`

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 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.

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"
}

Binary file not shown.

Binary file not shown.

BIN
misc/skr-mini/ls-output.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 901 KiB

View File

@@ -1,73 +0,0 @@
\*\* _Flashing the firmware is not required for any method_
## Should You Update?
I treat this config like software, and like any piece of modern software, it will require periodic updates to fix issues, add features, improve functionality, etc. So, if you want to have the latest and greatest, I recommend you periodically pull the changes from this repo.
### What Changes Should You Be Concerned With
The only changes you need to be concerned with relate to the `.cfg` and `.conf` files; all changes to `.md` files (these are markdown files, the text that you see when you visit this repo) can be ignored.
### Git Users
If you do a `git diff origin/master --name-only` and it shows you that a `.cfg` file has changed, you might want to pull in those changes (but you don't have to).
### Non-Git Users
Unfortunately, there's no simple way for you to ascertain whether there have been changes. I simply recommend that you update your config via the instructions below from time to time.
## Hot to Update
There are three methods to accomplish this:
1. The correct method, using `git`.
2. The mostly acceptable method, without using `git`.
3. The start-from-scratch method. _Recommended for non-git users and those who haven't made many changes to their configuration._
### The `git` method.
⚠️ This method is only intended for those who already know how to use `git`.
🗒️ In this example, I'm using the `master` branch which applies to SV06 users only. Be sure to use the appropriate branch for your printer.
🗒️ The assumption is that you didn't change branches after the initial setup, so you are in `master`, and there are many untracked changes.
1. `ssh` into your Klipper host.
2. `cd ~/printer_data/config`
3. `git checkout -b my-settings`
4. `git add .`
5. `git commit -m "Saving my settings."`
6. `git checkout master`
7. `git pull`
8. `git checkout my-settings`
9. `git merge master --no-ff --no-commit`
10. Deal with comparing and pulling in incoming changes from `master` using your favourite code editor. You can also do this from the command line via `git commit --interactive`, however, only advanced `git` users should attempt this, though it is easy enough.
11. Add all welcomed changes to the staging area, and discard all other changes.
12. `git commit -m "Update with upstream."`
You should push your branch to your own fork of this repo.
For any future updates, you can run through the same process again, however, you cannot re-create the `my-settings` branch as you did in `step 3`, because it already exists. Simply omit the `-b` flag in `step 3` next time you update.
### The mostly acceptable method.
This method has shortcomings, because it relies on the user's memory, and requires more manual edits. Perfectly functional method, however.
1. Read all the documentation.
2. Backup your current configuration, essentially everything inside `~/printer_data/config`.
3. Repeat steps in [Download OSS Klipper Configuration](https://github.com/bassamanator/Sovol-SV06-firmware#download-oss-klipper-configuration), and [Adjust Configuration with MCU Path](https://github.com/bassamanator/Sovol-SV06-firmware#adjust-configuration-with-mcu-path).
4. Copy everything from `#*# <---------------------- SAVE_CONFIG ---------------------->` onward and paste into new `printer.cfg`, inclusive.
5. Copy any other changes you might have made into the new configuration. Maybe you had adjusted the size of your printer (`position_max`), or other such changes.
### The start-from-scratch method.
1. Delete the folder `~/printer_data/config`.
2. Recreate the folder `~/printer_data/config` via `mkdir ~/printer_data/config`.
3. Start the Klipper installation process starting from `Download OSS Klipper Configuration` in the appropriate branch.
## Linux Tips
- 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`.
You are now up-to-date with this repo, and have added your personal settings on top.

View File

@@ -39,22 +39,3 @@ path: ~/mainsail
# NOTE Cancel objects feature is enabled. If you're using a low powered device, set to False. # NOTE Cancel objects feature is enabled. If you're using a low powered device, set to False.
# Also see [exclude_object] section in printer.cfg. # Also see [exclude_object] section in printer.cfg.
enable_object_processing: True enable_object_processing: True
# Crowsnest update_manager entry
[update_manager crowsnest]
type: git_repo
path: ~/crowsnest
origin: https://github.com/mainsail-crew/crowsnest.git
managed_services: crowsnest
install_script: tools/pkglist.sh
[update_manager timelapse]
type: git_repo
primary_branch: main
path: ~/moonraker-timelapse
origin: https://github.com/mainsail-crew/moonraker-timelapse.git
managed_services: klipper moonraker
[timelapse]
output_path: ~/printer_data/timelapse/
frame_path: /tmp/timelapse/printer

View File

@@ -4,10 +4,8 @@
[include ./cfgs/CALIBRATION.cfg] [include ./cfgs/CALIBRATION.cfg]
[include ./cfgs/kamp/KAMP_Settings.cfg] [include ./cfgs/kamp/KAMP_Settings.cfg]
[include ./cfgs/TEST_SPEED.cfg] [include ./cfgs/TEST_SPEED.cfg]
[include ./cfgs/GET_VARIABLE.cfg]
[include ./cfgs/timelapse.cfg]
# NOTE Uncomment the ONE of the following lines if you're using an adxl345 # NOTE Uncomment the ONE of the following lines if you're using an adxl345
# [include ./cfgs/adxl-rp2040.cfg] # [include ./cfgs/adxl-rp2040.cfg]
# [include ./cfgs/adxl-rpi-pico-2x.cfg] # [include ./cfgs/adxl-rpi-pico-2x.cfg]
# [include ./cfgs/adxl-rpi-direct.cfg] # [include ./cfgs/adxl-direct.cfg]

View File

@@ -1,4 +1,4 @@
# This file contains pin mappings for the stock Sovol SV06. # This file contains pin mappings for the Sovol SV06 using the BTT SKR Mini E3 V3.0.
# #
# Find installation instructions at https://github.com/bassamanator/Sovol-SV06-firmware # Find installation instructions at https://github.com/bassamanator/Sovol-SV06-firmware
# #
@@ -8,15 +8,13 @@
[mcu] [mcu]
# NOTE Obtain definition by "ls -l /dev/serial/by-path/" or "ls -l /dev/serial/by-id/" # NOTE Obtain definition by "ls -l /dev/serial/by-path/" or "ls -l /dev/serial/by-id/"
#serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2:1.0-port0 serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2:1.0-port0
#serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.1:1.0-port0
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: command restart_method: command
[printer] [printer]
kinematics: cartesian kinematics: cartesian
max_velocity: 300 max_velocity: 200
max_accel: 11000 max_accel: 3000
max_z_velocity: 15 max_z_velocity: 15
max_z_accel: 45 max_z_accel: 45
square_corner_velocity: 8.0 square_corner_velocity: 8.0
@@ -26,10 +24,10 @@ square_corner_velocity: 8.0
##################################################################### #####################################################################
[stepper_x] [stepper_x]
step_pin: PC2 step_pin: PB13
dir_pin: !PB9 dir_pin: PB12
enable_pin: !PC3 enable_pin: !PB14
microsteps: 128 microsteps: 64
rotation_distance: 40 rotation_distance: 40
endstop_pin: tmc2209_stepper_x:virtual_endstop endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 0 position_endstop: 0
@@ -38,20 +36,21 @@ homing_speed: 40
homing_retract_dist: 0 homing_retract_dist: 0
[tmc2209 stepper_x] [tmc2209 stepper_x]
uart_pin: PC1 uart_pin: PC11
run_current: 0.900 tx_pin: PC10
run_current: 0.600
stealthchop_threshold: 0 stealthchop_threshold: 0
interpolate: False interpolate: False
sense_resistor: 0.150 sense_resistor: 0.110
uart_address: 3 uart_address: 0
driver_SGTHRS: 81 driver_SGTHRS: 81
diag_pin: PA5 diag_pin: PC0
[stepper_y] [stepper_y]
step_pin: PB8 step_pin: PB10
dir_pin: PB7 dir_pin: !PB2
enable_pin: !PC3 enable_pin: !PB11
microsteps: 128 microsteps: 64
rotation_distance: 40 rotation_distance: 40
endstop_pin: tmc2209_stepper_y:virtual_endstop endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: 0 position_endstop: 0
@@ -60,62 +59,68 @@ homing_speed: 40
homing_retract_dist: 0 homing_retract_dist: 0
[tmc2209 stepper_y] [tmc2209 stepper_y]
uart_pin: PC0 uart_pin: PC11
run_current: 0.900 tx_pin: PC10
run_current: 0.600
stealthchop_threshold: 0 stealthchop_threshold: 0
interpolate: False interpolate: False
sense_resistor: 0.150 sense_resistor: 0.110
uart_address: 3 uart_address: 2
driver_SGTHRS: 81 driver_SGTHRS: 81
diag_pin: PA6 diag_pin: PC1
[stepper_z] [stepper_z]
step_pin: PB6 step_pin: PB0
dir_pin: !PB5 dir_pin: PC5
enable_pin: !PC3 enable_pin: !PB1
microsteps: 128 microsteps: 64
rotation_distance: 4 rotation_distance: 4
endstop_pin: probe:z_virtual_endstop endstop_pin: probe:z_virtual_endstop
position_min: -3 position_min: -4
position_max: 258 # NOTE You can adjust this if you have more room position_max: 258 # NOTE You can adjust this if you have more room
homing_speed: 5 homing_speed: 5
[tmc2209 stepper_z] [tmc2209 stepper_z]
uart_pin: PA15 uart_pin: PC11
run_current: 0.900 tx_pin: PC10
run_current: 0.600
stealthchop_threshold: 0 stealthchop_threshold: 0
interpolate: False interpolate: False
sense_resistor: 0.150 sense_resistor: 0.110
uart_address: 3 uart_address: 1
diag_pin: PA7 # diag_pin: PC2 # Should not be needed
##################################################################### #####################################################################
# Extruder # Extruder
##################################################################### #####################################################################
[extruder] [extruder]
step_pin: PB4 step_pin: PB3
dir_pin: !PB3 dir_pin: PB4
enable_pin: !PC3 enable_pin: !PD1
microsteps: 128 microsteps: 64
rotation_distance: 4.65 # NOTE Calibrate e-steps https://www.klipper3d.org/Rotation_Distance.html#calibrating-rotation_distance-on-extruders, https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#calibrate-esteps rotation_distance: 4.65 # NOTE Calibrate e-steps https://www.klipper3d.org/Rotation_Distance.html#calibrating-rotation_distance-on-extruders, https://github.com/bassamanator/everything-sovol-sv06/blob/main/howto.md#calibrate-esteps
nozzle_diameter: 0.400 nozzle_diameter: 0.400
filament_diameter: 1.750 filament_diameter: 1.750
heater_pin: PA1 heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5 sensor_pin: PA0
control: pid
pid_kd: 86.991
pid_kp: 21.479
pid_ki: 1.326
min_temp: 0 min_temp: 0
max_temp: 300 max_temp: 300
max_extrude_only_distance: 150.0 max_extrude_only_distance: 150.0
max_extrude_cross_section: 5 # NOTE Needed for KAMP purge max_extrude_cross_section: 5 # NOTE Needed for KAMP purge
pressure_advance: 0.031 # 0.0435 # 0.0465 # 0.044
[tmc2209 extruder] [tmc2209 extruder]
uart_pin: PC14 uart_pin: PC11
tx_pin: PC10
run_current: 0.550 run_current: 0.550
stealthchop_threshold: 0 stealthchop_threshold: 0
interpolate: False interpolate: False
sense_resistor: 0.150 sense_resistor: 0.110
uart_address: 3 uart_address: 3
##################################################################### #####################################################################
@@ -123,9 +128,13 @@ uart_address: 3
##################################################################### #####################################################################
[heater_bed] [heater_bed]
heater_pin: PA2 heater_pin: PC9
sensor_type: EPCOS 100K B57560G104F sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4 sensor_pin: PC4
control: pid
pid_kp: 64.440
pid_ki: 0.773
pid_kd: 1343.571
min_temp: 0 min_temp: 0
max_temp: 110 max_temp: 110
@@ -134,10 +143,10 @@ max_temp: 110
##################################################################### #####################################################################
[probe] [probe]
pin: PB1 pin: PC14
x_offset: 27 x_offset: 27
y_offset: -20 y_offset: -20
# z_offset: 0 z_offset: 0
samples: 3 samples: 3
samples_result: median samples_result: median
samples_tolerance: 0.01 samples_tolerance: 0.01
@@ -168,8 +177,22 @@ calibrate_y: 115
# Fans # Fans
##################################################################### #####################################################################
# FAN1
[fan] [fan]
pin: PA0 pin: PC6
# FAN2
[controller_fan electronic_enclosure_fan]
pin: PB15
idle_timeout: 60
idle_speed: 0
stepper: stepper_x, stepper_y, stepper_z
# FAN0
[heater_fan hotend_fan]
pin: PC7
heater: extruder
heater_temp: 50.0
##################################################################### #####################################################################
# Misc # Misc
@@ -177,17 +200,11 @@ pin: PA0
[display] [display]
lcd_type: st7920 lcd_type: st7920
cs_pin: PB12 cs_pin: PB8
sclk_pin: PB13 sclk_pin: PB9
sid_pin: PB15 sid_pin: PD6
encoder_pins: ^PB14, ^PB10 encoder_pins: ^PA10, ^PA9
click_pin: ^!PB2 click_pin: ^!PA15
[input_shaper]
shaper_freq_x: 50.4 # 55.8 # 55.2 # 53.4 # 56.0 # 56.6 # 55.0 ; recommend accel <7500; 9200
shaper_type_x: mzv
shaper_freq_y: 41.4 # 42.4 # 43.2 # 45.4 # 48.4 ; recommend accel < 5000;5300
shaper_type_y: mzv
[bed_screws] [bed_screws]
screw1_name: front left screw1_name: front left
@@ -214,99 +231,27 @@ horizontal_move_z: 10
screw_thread: CCW-M4 screw_thread: CCW-M4
[output_pin beeper] [output_pin beeper]
pin: PC6 pin: PB5
value: 0 value: 0
shutdown_value: 0 shutdown_value: 0
pwm: True pwm: True
cycle_time: 0.0005 ; Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz) cycle_time: 0.0005 # Default beeper tone in kHz. 1 / 0.0005 = 2000Hz (2kHz)
# The E0-Stop port: PC15 | GND | +5V
# Full pinout: https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/blob/9b13018d639cf4fbecf004493517f72443d22bb0/hardware/BTT%20SKR%20MINI%20E3%20V3.0/Hardware/BTT%20E3%20SKR%20MINI%20V3.0_PIN.pdf
# First tester: https://www.reddit.com/r/Sovol/comments/1631jk5/comment/k18rmcy/?utm_source=share&utm_medium=web2x&context=3
# https://github.com/bassamanator/everything-sovol-sv06?tab=readme-ov-file#filament-sensor
[filament_switch_sensor filament_sensor] [filament_switch_sensor filament_sensor]
switch_pin: !PA4 # "Pulled-high" switch_pin: PC15 # NOTE Add a ! to the pin to reverse if you're getting the opposite behaviour; !PC15
pause_on_runout: True pause_on_runout: True
insert_gcode: insert_gcode:
M117 Insert Detected
{ action_respond_info("Insert Detected") } { action_respond_info("Insert Detected") }
runout_gcode: runout_gcode:
M117 Runout Detected
{ action_respond_info("Runout Detected") } { action_respond_info("Runout Detected") }
CONDITIONAL_BEEP i=3 dur=300 freq=400 CONDITIONAL_BEEP i=3 dur=300 freq=400
#*# <---------------------- SAVE_CONFIG ----------------------> [board_pins]
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. aliases:
#*# # EXP1 header
#*# [extruder] EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
#*# control = pid EXP1_2=PA15, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PD6, EXP1_10=<5V>
#*# pid_kp = 29.273
#*# pid_ki = 3.049
#*# pid_kd = 70.256
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 67.629
#*# pid_ki = 1.338
#*# pid_kd = 854.657
#*#
#*# [probe]
#*# z_offset = 1.300
#*#
#*# [axis_twist_compensation]
#*# z_compensations = 0.083802, -0.029167, -0.054635
#*# compensation_start_x = 27.0
#*# compensation_end_x = 195.0
#*#
#*# [bed_mesh default-1]
#*# version = 1
#*# points =
#*# 0.017700, 0.039838, 0.034162, 0.012223, -0.046875
#*# -0.056675, -0.012819, 0.009631, -0.006839, -0.086094
#*# -0.116831, -0.054850, -0.040056, -0.055433, -0.120625
#*# -0.121362, -0.051100, -0.034588, -0.050745, -0.111094
#*# -0.059643, 0.010619, 0.036506, 0.014255, -0.039375
#*# min_x = 27.0
#*# max_x = 222.0
#*# min_y = 6.0
#*# max_y = 203.0
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*#
#*# [bed_mesh default-0]
#*# version = 1
#*# points =
#*# 0.038482, 0.061556, 0.047131, 0.009098, -0.055469
#*# -0.033862, 0.002963, 0.008381, -0.014808, -0.099375
#*# -0.095737, -0.047819, -0.040213, -0.062620, -0.132031
#*# -0.102768, -0.048131, -0.042088, -0.064808, -0.124688
#*# -0.036206, 0.030931, 0.037131, 0.011598, -0.052656
#*# min_x = 27.0
#*# max_x = 222.0
#*# min_y = 6.0
#*# max_y = 203.0
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.037145, 0.055020, 0.034770, -0.006886, -0.072291
#*# -0.035980, -0.003730, 0.000395, -0.026104, -0.109323
#*# -0.095512, -0.047480, -0.047261, -0.073292, -0.135573
#*# -0.091918, -0.042793, -0.043824, -0.073136, -0.132760
#*# -0.026449, 0.032520, 0.031801, -0.001886, -0.079010
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*# min_x = 27.0
#*# max_x = 222.0
#*# min_y = 6.0
#*# max_y = 203.0

View File

@@ -1 +0,0 @@
/home/pi/moonraker-timelapse/klipper_macro/timelapse.cfg