188 Commits

Author SHA1 Message Date
Bassam Husain
b7b32dd046 Merge branch 'kamp' into develop. Moved imports into osskc.cfg. 2023-07-07 02:26:16 -04:00
Bassam Husain
9265d9cc96 Minor adjustment to print_start for kamp. 2023-07-07 02:04:11 -04:00
Bassam Husain
c4b3f64e1a Renamed kamp/ to fix symlink issue. 2023-07-07 01:34:51 -04:00
Bassam Husain
fd7b9e3f46 Renamed kamp/ to fix symlink issue. 2023-07-07 01:33:30 -04:00
Bassam Husain
178733e0f5 Added kamp folder. 2023-07-07 01:32:00 -04:00
Bassam Husain
8f100d73f3 Deleted kamp folder. 2023-07-07 01:30:08 -04:00
Bassam Husain
82d25743fc KAMP should be ready. 2023-07-06 13:36:59 -04:00
Bassam Husain
aa935b6d57 Added kamp files. 2023-07-06 12:55:22 -04:00
Bassam Husain
49ed59dc14 Adjusted screws_tilt_adjust section. 2023-07-02 21:36:49 -04:00
Bassam Husain
ace26b692f Merge branch 'screws' into personal 2023-07-02 21:14:14 -04:00
Bassam Husain
d97cc87dc6 Adjusted screws_tilt_adjust section. 2023-07-02 21:02:41 -04:00
Bassam Husain
f1614f477a Pulled in calibration.cfg. 2023-07-01 02:52:30 -04:00
Bassam Husain
67307f5679 Adjust misc-macros.cfg, minor. 2023-07-01 02:44:47 -04:00
Bassam Husain
2da06be82e Adjusted repo title. 2023-07-01 02:33:01 -04:00
Bassam Husain
8a8229f6e8 Adjusted calibration.cfg to accept target temp. 2023-07-01 02:25:55 -04:00
Bassam Husain
7908b3d052 Adjusted calibration.cfg to accept target temp. 2023-07-01 02:12:14 -04:00
Bassam Husain
bb90be25cc More clairity to configure section. 2023-07-01 01:36:14 -04:00
Bassam Husain
5f59d5bacb Merge branch 'master' into sv06-plus 2023-07-01 01:28:54 -04:00
Bassam Husain
d6f03f7a2c Cleanup in misc-macros.cfg. Adjusted calibration.cfg to work dynamically. 2023-07-01 00:51:59 -04:00
Bassam Husain
d3cc53eafe Merge branch 'calib' into personal 2023-07-01 00:48:40 -04:00
Bassam Husain
28ba80dd29 Cleanup in misc-macros.cfg. Adjusted calibration.cfg to work dynamically. 2023-07-01 00:05:00 -04:00
Bassam Husain
82c02bbdbf Adjusted readme structure. 2023-06-22 19:29:36 -04:00
Bassam Husain
f5c533a35d Merge branch 'master' into personal 2023-06-21 19:54:53 -04:00
Bassam Husain
d405db4922 Adjusted mcu section. 2023-06-21 18:18:21 -04:00
Bassam Husain
511fcbed57 Merge branch 'ed/calibration-tools' 2023-06-21 17:50:45 -04:00
Ed Ropple
12ed1d3a9f replaced manual PID/calibration steps with reusable macros 2023-06-20 18:28:50 -04:00
Bassam Husain
4cfbe14e59 Adjust readme.md. 2023-06-19 00:58:52 -04:00
Bassam Husain
2f79fc59e3 Merge branch 'master' into sv06-plus 2023-06-18 22:41:11 -04:00
Bassam Husain
3c8a5d6a42 Adjust readme.md. 2023-06-18 22:21:27 -04:00
Bassam Husain
52c721226f Adjust readme.md. 2023-06-18 22:09:17 -04:00
Bassam Husain
089ad6a4bd Added outline. 2023-06-18 22:05:51 -04:00
Bassam Husain
9ee603e74d Many adjustments to README instructions. 2023-06-18 21:11:17 -04:00
Bassam Husain
28ac5d5260 Update dir structure. 2023-06-18 20:16:09 -04:00
Bassam Husain
b22c8a0b02 Updated readme minor. 2023-06-18 19:51:53 -04:00
Bassam Husain
7aecb64bca Updated readme minor. 2023-06-18 19:43:03 -04:00
Bassam Husain
763304e128 Adjusted links. 2023-06-18 15:34:11 -04:00
Bassam Husain
9c79ca81bb Adjusted links. 2023-06-18 15:31:57 -04:00
Bassam Husain
5c8b1f0de9 Added table for branches instead of text. 2023-06-18 15:06:58 -04:00
Bassam Husain
ccdde22c57 Added table for branches instead of text. 2023-06-18 14:51:18 -04:00
Bassam Husain
66c19cd7d8 Updated readme minor. 2023-06-18 14:41:43 -04:00
Bassam Husain
61eaab3221 Updated readme minor. 2023-06-18 14:38:18 -04:00
Bassam Husain
cd59efe4c1 Update readme minor. 2023-06-18 13:50:37 -04:00
Bassam Husain
c327345a08 Update readme minor. 2023-06-18 13:49:15 -04:00
Bassam Husain
baf505113d Update readme minor. 2023-06-18 13:45:14 -04:00
Bassam Husain
f921823acf Adjusted settings.json. 2023-06-11 01:21:53 -04:00
Bassam Husain
f385fe920e Cleanup with linter. 2023-06-11 01:21:11 -04:00
Bassam Husain
817a6771f6 Cleanup with linter. 2023-06-11 01:15:21 -04:00
Bassam Husain
fb7e7bcc6e Merge branch 'test-master' into sv06-plus 2023-06-11 01:05:42 -04:00
Bassam Husain
a6afa97f88 Changed * to _ for italics to accomodate the linter. 2023-06-11 00:53:39 -04:00
Bassam Husain
a5f72beea4 Minor update to readme.md. 2023-06-11 00:38:45 -04:00
Bassam Husain
6399c70309 Cleanup in readme. 2023-06-09 18:07:42 -04:00
Bassam Husain
9c9eb1b088 Added link to sv06plus official github. 2023-06-09 17:57:27 -04:00
Bassam Husain
40d88fe907 Bed temp over now customizable. 2023-06-09 17:31:16 -04:00
Bassam Husain
5ada85f964 Bed temp over now customizable. 2023-06-09 17:28:07 -04:00
Bassam Husain
1e60090f1e Merge branch 'bed-temp' into personal 2023-06-09 17:16:08 -04:00
Bassam Husain
fa43f570d7 Merge branch 'master' into sv06-plus 2023-05-20 20:15:29 -04:00
Bassam Husain
7ea890627a Made bedtempOver adjustable. 2023-05-20 20:12:11 -04:00
Bassam Husain
ac5426e331 Pulled in print_start from master: prints start with higher bed temp now, range 10C. 2023-05-20 20:00:23 -04:00
Bassam Husain
24a4262af2 Pulled in print_start from personal: prints start with higher bed temp now, range 10C. 2023-05-20 19:59:18 -04:00
Bassam
be1711cb68 Update README.md
Prepare flash section
2023-05-19 21:40:27 -04:00
Bassam Husain
d5de6866da Adjusted directory structure. 2023-05-12 01:04:01 -04:00
Bassam Husain
82a5603d1e Directory structure updated. 2023-05-12 00:57:51 -04:00
Bassam Husain
ad4c893fbc Moved images to correct folder. 2023-05-12 00:53:25 -04:00
Bassam Husain
a5a75f3c1e Added sv06-plus build plate model, removed sv06 build plate. 2023-05-10 21:35:55 -04:00
Bassam Husain
24610b1dee Merge branch 'bed-temp' into personal 2023-05-10 18:50:02 -04:00
Bassam Husain
9d08c418c0 Print_start adjusted: comments styling only. 2023-05-10 18:49:04 -04:00
Bassam Husain
7112c53ad8 Print_start adjusted: prints will start as long as current bed temp is not higher than 10C compared to sliced bed temp. 2023-05-10 01:43:37 -04:00
Bassam Husain
f0602b5cb2 Print_start adjusted: added back 0 bed temp possibility. 2023-05-10 01:23:35 -04:00
Bassam Husain
5242dc7276 Print_start adjusted: prints should now start even if bed temp is higher than what was set in slicer; does set sliced temp at the end though. 2023-05-10 01:11:58 -04:00
Bassam Husain
05dba3939e Adjusted PRINT_START bedtempAlmost logic. 2023-05-09 17:20:30 -04:00
Bassam Husain
d0c43f3777 Deleted SV06 marlin firmware. 2023-05-07 18:54:01 -04:00
Bassam Husain
4dcd5e3840 Adjusted mcu section. 2023-05-03 15:26:28 -04:00
Bassam Husain
53f6f75c85 Merge branch 'master' into sv06-plus 2023-05-03 15:25:35 -04:00
Bassam Husain
d062ee5bcc Adjusted initial steps on how to find the mcu. 2023-05-03 15:23:19 -04:00
Bassam Husain
aa8d3de2c7 Merge branch 'master' into sv06-plus 2023-04-23 09:43:49 -04:00
Bassam Husain
b0d122a1c1 Adjust Initial steps, step 1. 2023-04-23 09:39:20 -04:00
Bassam Husain
6ede727449 Update README.md
Flash Firmware section.
2023-04-23 08:57:17 -04:00
Bassam Husain
f4f0fd50bb Merge branch 'master' into sv06-plus 2023-04-22 16:59:00 -04:00
Bassam Husain
6eedc4bd60 Update README.md
Edit Adjust Your Slicer section.
2023-04-22 16:53:46 -04:00
Bassam Husain
3a85c0e532 Pulling in print_start from master branch. 2023-04-22 15:03:30 -04:00
Bassam Husain
940ea48541 Update README.md 2023-04-22 15:00:45 -04:00
Bassam Husain
9f69a7d355 Update README.md 2023-04-22 14:58:51 -04:00
Bassam Husain
57e6755ced Merge pull request #42 from muffix/dont-cool-down-in-print-start
Avoid cooling down the extruder in PRINT_START
2023-04-22 07:24:44 -04:00
Bassam Husain
1cdcb4934b PRINT_START adjust: don't cooldown if not necessary. 2023-04-22 07:10:06 -04:00
Björn Marschollek
835e990d88 Avoid cooling down the extruder in PRINT_START
The current `PRINT_START` macro heats the extruder to 150 degrees, then
to 170, and finally to the target temperature. If the extruder is
already hot, this unnecessarily cools it down and wastes time.

This change only cools down the hotend if it's above the target
temperature and then only to that temperature.

If the extruder was colder than 150 degrees, this change maintains the
current behaviour.
2023-04-22 12:20:01 +02:00
Bassam Husain
45434cde14 Merge pull request #41 from muffix/add-rpi2040-with-2x-adxl345
Add config for 2 ADXL345 via RasPi pico
2023-04-21 16:41:58 -04:00
Bassam Husain
51fd3f0b19 Update adxl-rpi-pico-2x.cfg
Minor adjustments to adxl-rpi-pico-2x.cfg.
2023-04-21 16:41:26 -04:00
Björn Marschollek
4df5ef2db3 Add config for 2 ADXL345 via RasPi pico
This adds a configuration supporting two ADXL345 sensors at the same
time though a Raspberry Pi pico.

Resonance measurements for both the head and the bed can be done without
having to change the sensors.
2023-04-21 20:26:11 +02:00
Bassam Husain
23d24aab17 Merge branch 'master' of github.com:bassamanator/Sovol-SV06-firmware 2023-04-20 17:09:58 -04:00
Bassam Husain
43d067acab Merge pull request #39 from muffix/add-minimum-for-bed-temperature
Add a minimum bed temperature of 0 degrees in `PRINT_START`.
2023-04-20 17:04:35 -04:00
Bassam Husain
498e0d4a4d PRINT_START bedtemp fix, 2nd try. 2023-04-20 16:56:25 -04:00
Björn Marschollek
4a38d34a0e Add a minimum bed temperature of 0 degrees
If the bed temperature is less than 2, the print job fails with an
error message complaining about an invalid temperature. This happens,
for instance, when printing ABS where the bed is not supposed to be
heated.

This change makes sure that the bed temperature cannot be negative.
2023-04-20 22:53:19 +02:00
Bassam Husain
9b712df594 PRINT_START bedtemp fix. 2023-04-20 16:43:43 -04:00
Bassam Husain
e888ac0882 Added orange pi temp section. 2023-04-20 12:37:03 -04:00
Bassam Husain
323e8df221 Merge branch 'master' into sv06-plus: update download section. 2023-04-20 12:30:07 -04:00
Bassam Husain
40534f3788 Pulling in print_start from master branch. 2023-04-20 12:22:52 -04:00
Bassam Husain
5e342261c8 Pulling in print_start from personal branch. 2023-04-20 12:19:06 -04:00
Bassam Husain
89fbb10154 variable_pre_purge_prime_length reverted. 2023-04-20 12:10:00 -04:00
Bassam Husain
1823d0ca37 Updated readme: Download section. 2023-04-19 22:59:32 -04:00
Bassam Husain
6eb152e58d Adjust PRINT_START: safe_z_home startX, startY. 2023-04-19 10:53:08 -04:00
Bassam Husain
c1672c9a42 Fixed sense_resistor according to specs. 2023-04-19 07:47:24 -04:00
Bassam Husain
2e5764f295 Adjusted print_start start x, y positions conditionally. 2023-04-18 10:39:22 -04:00
Bassam Husain
581ff9da48 Adjusted SS config bundle for Plus. Spelling fix. 2023-04-18 07:56:34 -04:00
Bassam Husain
4ecb37cf9f Pulling from master. 2023-04-18 07:50:15 -04:00
Bassam Husain
8bfed9c573 Spelling fixes. 2023-04-18 07:44:09 -04:00
Bassam Husain
7e5aeb6654 Print_start adjusted. 2023-04-17 02:13:19 -04:00
Bassam Husain
f5d3499da7 Getting safe_z_home info in print_start. 2023-04-17 01:02:20 -04:00
Bassam Husain
2c8a4e5aa0 Print_start improvements. 2023-04-17 00:55:51 -04:00
Bassam Husain
b051707f52 Print_start improvements. 2023-04-17 00:42:57 -04:00
Bassam Husain
807c91507a Pulling in from personal branch. 2023-04-17 00:41:03 -04:00
Bassam Husain
a30d367d1d Commented out raspberry pi temperature section. 2023-04-17 00:21:03 -04:00
Bassam Husain
b8d246762f Added print_start heating. 2023-04-14 07:39:46 -04:00
Bassam Husain
9fc09eef43 Added more steps to heating in print_start. 2023-04-13 19:48:11 -04:00
Bassam Husain
02eb713930 Added more steps to heating in print_start. 2023-04-13 18:06:36 -04:00
Bassam Husain
5abaf73b9c Comment cleanup in print_end. 2023-04-13 17:32:44 -04:00
Bassam Husain
a71ba1569a Pulling in from master. 2023-04-13 17:31:24 -04:00
Bassam Husain
238091d860 Minor speedup in print_start. 2023-04-13 17:28:55 -04:00
Bassam Husain
f0729bfc2e New z_offset. 2023-04-11 15:54:19 -04:00
Bassam Husain
9352cbc3d0 New z_offset. 2023-04-09 15:21:18 -04:00
Bassam Husain
0ce30e2d23 Manual mesh edit; center; b11. 2023-04-09 12:06:06 -04:00
Bassam Husain
bc612db077 Manual bed mesh edit b10. 2023-04-09 10:50:23 -04:00
Bassam Husain
ef774efde3 Manual bed mesh edit b9. 2023-04-09 10:17:54 -04:00
Bassam Husain
44a1db591b Set microsteps to 128; MCU can't handle generate those microsteps in all conditions. 2023-04-08 21:21:38 -04:00
Bassam Husain
6dc119cf99 Added pause/runout/m600 to faq. Reduced speed in print_start. 2023-04-07 19:44:30 -04:00
Bassam Husain
9e68610908 Update README.md 2023-04-07 18:07:24 -04:00
Bassam Husain
b3040f4244 Create CODE_OF_CONDUCT.md 2023-04-07 14:04:00 -04:00
Bassam Husain
8c6ebbca2c Create CONTRIBUTING.md 2023-04-07 13:56:28 -04:00
Bassam Husain
1f3707123a Update issue templates 2023-04-07 13:47:17 -04:00
Bassam Husain
4c3ae83f19 Merging with master. 2023-04-07 09:57:21 -04:00
Bassam Husain
953daefa32 Adjusted PRINT_START sequence to save time, and to prevent oozing. Increased microsteps to 128, and added square_corner_velocity. 2023-04-07 09:52:06 -04:00
Bassam Husain
d53a6d822a Adjusted PRINT_START: travel speeds. 2023-04-06 09:31:15 -04:00
Bassam Husain
3f06eebe42 Adjusted PRINT_START temperature heating sequence. 2023-04-06 09:16:18 -04:00
Bassam Husain
85b2ca15e8 Set microsteps to 256. 2023-04-06 08:28:35 -04:00
Bassam Husain
688193903b Updated readme. 2023-04-06 07:00:12 -04:00
Bassam Husain
7da9a83924 Fixed typo. 2023-04-06 06:45:07 -04:00
Bassam Husain
d0b426d5b0 Updated readme. 2023-04-06 06:44:26 -04:00
Bassam Husain
3c98d99665 Adjusted plus instructions. 2023-04-06 06:42:20 -04:00
Bassam Husain
4b90c7abc5 Added G90 to steps after homing. 2023-04-06 06:22:01 -04:00
Bassam Husain
0358cb6304 Update MECHANICAL_GANTRY_CALIBRATION.cfg
Removed menu section.
2023-04-05 15:59:45 -04:00
Bassam Husain
2c49bf8396 Added sv06-plus marlin firmware. 2023-04-05 01:17:28 -04:00
Bassam Husain
dc85ec05c6 Adjusted default PID settings. 2023-04-05 01:02:37 -04:00
Bassam Husain
cc57e07c62 Pulled in readme from master. 2023-04-05 00:51:22 -04:00
Bassam Husain
e501bdac3f Updated readme. 2023-04-05 00:44:38 -04:00
Bassam Husain
f810abf9f7 Adjusted bump sensitivity to stock values; plus. 2023-04-05 00:32:05 -04:00
Bassam Husain
69071df396 Adjusted run_current for plus based on official sovol specs. 2023-04-04 16:53:10 -04:00
Bassam Husain
daa07e37c0 Merge branch 'master' of github.com:bassamanator/Sovol-SV06-firmware. 2023-04-03 14:49:03 -04:00
Bassam Husain
758a3f8b77 Update README.md
Added instructions for adjusting slicer start/end gcode.
2023-04-03 12:51:49 -04:00
Bassam Husain
c1427d9418 Update README.md 2023-04-03 08:28:35 -04:00
Bassam Husain
371e0d604a Update README.md 2023-04-03 08:09:36 -04:00
Bassam Husain
857a8fdd3b New shaper x. 2023-04-03 05:26:46 -04:00
Bassam Husain
e2ec5b8d49 Added image to readme in personal branch. 2023-04-02 22:56:54 -04:00
Bassam Husain
f9832b60c3 Adjusted print_start to start heating first, then home x and y. 2023-04-02 20:38:14 -04:00
Bassam Husain
3b59b534c9 Adjust max accel and velocity. 2023-04-02 20:11:15 -04:00
Bassam Husain
761650bf80 Reversed switch_pint in filament sensor pinout section based on facebook user feedback. 2023-04-02 20:02:40 -04:00
Bassam Husain
c89d69e678 Added printer title to printer.cfg. 2023-04-02 19:56:12 -04:00
Bassam Husain
5afbf002c2 Removed bed_screws locations from plus. Enabled filament sensor. Adjusted safe_z_home. 2023-04-02 19:50:24 -04:00
Bassam Husain
1805a999b1 Adjusted start position for purge_line. 2023-04-02 18:47:41 -04:00
Bassam Husain
060a9334ee Adjusted filament sensor to use action_respond_info for plus users. 2023-04-02 11:04:06 -04:00
Bassam Husain
c215540a0c Added M503-plus output. 2023-04-02 10:44:27 -04:00
Bassam Husain
a19df40bed Adjusted stepper_x.run_current: 0.900. 2023-03-31 19:31:45 -04:00
Bassam Husain
57f4aa303f Merge branch 'temp-ms-good-mesh-edited' into personal 2023-03-30 08:27:31 -04:00
Bassam Husain
2ad0456132 Adjusted mesh manually. Increase currents x and y. 2023-03-30 07:55:38 -04:00
Bassam Husain
64825fda41 New edited mesh, mostly good. New z_offset. 2023-03-30 07:39:40 -04:00
Bassam Husain
5ba208b674 Adjusted mesh manually. 2023-03-30 05:51:42 -04:00
Bassam Husain
baa31179a3 Adjusted mesh manually. 2023-03-29 20:08:11 -04:00
Bassam Husain
6dafba0ab8 Adjusted mesh manually. 2023-03-29 02:04:09 -04:00
Bassam Husain
837f6d1e19 Adjusted mesh manually. 2023-03-29 02:00:38 -04:00
Bassam Husain
efddacb0cb Merge branch 'personal' into temp-ms-good-mesh-edited 2023-03-29 01:23:20 -04:00
Bassam Husain
40c32cab69 Adjusted readme for personal branch. 2023-03-27 23:27:52 -04:00
Bassam Husain
ad78f3f759 Merge branch 'purge' into personal 2023-03-27 17:02:55 -04:00
Bassam Husain
d227fcb58f Re-added temperature_wait. 2023-03-27 16:57:42 -04:00
Bassam Husain
d08bbb7f23 Adjust purge_line. 2023-03-27 16:50:43 -04:00
Bassam Husain
c462eb819c Adjust purge_line. 2023-03-26 15:04:35 -04:00
Bassam Husain
4528151bc1 Adjusted print_end to fix speed calculation error. 2023-03-26 14:35:04 -04:00
Bassam Husain
aff79ff8de Merge remote-tracking branch 'origin/temp-ms' into personal 2023-03-26 14:24:43 -04:00
Bassam Husain
f12e2f3382 Adjusted print_end to use speeds pulled from config. 2023-03-26 14:16:24 -04:00
Bassam Husain
a671161b99 Adjusted bed_mesh. 2023-03-26 08:56:15 -04:00
Bassam Husain
cf3597f158 Merge branch 'master' into sv06-plus 2023-03-26 07:05:47 -04:00
Bassam Husain
382b4c4159 New edited mesh, mostly good. 2023-03-26 01:57:41 -04:00
Bassam Husain
dd71ed1320 Removed stealthchop_threshold. 2023-03-26 01:50:55 -04:00
Bassam Husain
e469e05a91 New mesh and z_offset. 2023-03-25 21:47:41 -04:00
Bassam Husain
3c73cf3461 Removed temperature_wait. Increased microsteps to 128. 2023-03-24 03:12:40 -04:00
Bassam Husain
104c9fca75 Increased square_corner_velocity to 8. 2023-03-23 02:40:49 -04:00
Bassam Husain
5fcb29322d Adjusted z_offset; too much squish. 2023-03-20 14:11:32 -04:00
Bassam Husain
f4ce4165d5 Added beeping on colour/filament change. 2023-03-20 01:02:56 -04:00
Bassam Husain
5930d03add Remade this branch with latest changes from master. 2023-03-16 00:39:58 -04:00
Bassam Husain
04fb184c86 New input shaper x after 5015 fan. 2023-03-14 23:21:09 -04:00
Bassam Husain
2303b4422a New pid extruder and bed. 2023-03-14 22:28:57 -04:00
16 changed files with 863 additions and 164 deletions

34
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,34 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG]"
labels: ''
assignees: ''
---
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**What kind of device are you using to host Klipper?**
- OS: [e.g. old laptop, PC, Raspberry Pi]
- Version: []
**How did you install Klipper?**
- Manual install, KIAUH, MainsailOS, FluiddPi, etc.
**Additional context**
Add any other context about the problem here.

View File

@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

30
.vscode/settings.json vendored
View File

@@ -4,5 +4,33 @@
"editor.detectIndentation": false,
"git.mergeEditor": false,
"spellright.language": ["en-GB-10-1."],
"spellright.documentTypes": ["markdown", "plaintext"]
"spellright.documentTypes": ["markdown", "plaintext"],
"cSpell.words": [
"ADXL",
"blanchas",
"cfgs",
"Fluidd",
"Fluiddpi",
"gcode",
"githubstar",
"hotend",
"KIAUH",
"Klipper",
"Klipperized",
"lrwxrwxrwx",
"moonraker",
"octahedroflake",
"PARKBED",
"PARKCENTER",
"PARKFRONT",
"PARKFRONTLOW",
"PARKREAR",
"pico",
"Prusa",
"runout",
"Sovol"
],
"[markdown]": {
"editor.formatOnSave": false
}
}

128
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
bassamanator.2cj4t@simplelogin.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

8
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,8 @@
# Contribution Guidelines
When contributing, please ...
- provide a clear and concise explanation of your pull request.
- try to make small changes, ie, make many small pull requests as opposed to a single large pull request. This allows me to check your work more quickly, thus merge more quickly.
- try to follow the patterns I've already established.
Thank you.

328
README.md
View File

@@ -1,15 +1,40 @@
# 🚨 *One-Stop-Shop* Sovol SV06 Klipper Configuration
# 🚨 _One-Stop-Shop_ Klipper Configuration
This repository contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer with completely *stock hardware*.
This branch contains the Klipper configuration and firmware for the **Sovol SV06** 3D printer.
If you wanted to use the One-Stop-Shop Klipper Configuration for a *different printer*, please switch to the [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) branch.
| Printer | Branch |
| --------------------------- | ----------------------------------------------------------------------------------------- |
| Sovol SV06 | ✨**You are here**✨ |
| Sovol SV06 Skr-Mini-E3-V3.0 | [skr-mini-e3-v3](https://github.com/bassamanator/Sovol-SV06-firmware/tree/skr-mini-e3-v3) |
| Sovol SV06 Plus | [sv06-plus](https://github.com/bassamanator/Sovol-SV06-firmware/tree/sv06-plus) |
| All other printers | [any-printer](https://github.com/bassamanator/Sovol-SV06-firmware/tree/any-printer) |
I am creating these files for my personal use and cannot be held responsible for what it might do to your printer. Use at your own risk.
# Highlights
## Outline
- 💥 This Klipper configuration is an *endpoint*, meaning that it contains **everything** that you could possibly need in order to have an excellent Klipper experience! 💥
- `NEW` <img src="./images/party_blob.gif" width="20" alt=''/> Filament runout sensor usage implemented. <img src="./images/party_blob.gif" width="20" alt=''/>
- [Features](#features)
- [Stay Up-to-Date](#stay-up-to-date)
- [Preface](#preface)
- [Before You Begin](#before-you-begin)
- [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)
- [Directory Structure](#directory-structure)
- [Support Me](#support-me)
- [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! 💥
- <img src="./images/party_blob.gif" width="20" alt=''/> Filament runout sensor usage implemented. <img src="./images/party_blob.gif" width="20" alt=''/>
- Minimum configuration settings for Mainsail/Fluiddpi to work.
- SuperSlicer config bundle that contains the printer configuration, as well as what are considered by many to be the best print settings available for any FDM printer ([Ellis' SuperSlicer Profiles](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles)). Find the differences between the different print setting profiles [here](https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles/tree/master/SuperSlicer). But basically, the 45 degree profile places the seam at the back.
- Bed model and texture to use in SuperSlicer/PrusaSlicer.
@@ -20,89 +45,102 @@ I am creating these files for my personal use and cannot be held responsible for
- Load/unload filament macros.
- Purge line macro.
## To do:
- [x] Replace M109/M190 with `TEMPERATURE_WAIT`.
- [ ] ~~Get the Ellis `TEST_SPEED` macro working.~~ Does not seem safely doable on this printer.
- [x] Add information about directory structure.
- [x] Create FAQ section.
- [x] Get filament sensor working with hotend PCB.
- [x] Finalize filament sensor config and merge into `master`.
- [ ] Create topic in Discussion section detailing how users should keep this repository in sync with their own Klipper config using `git`.
- [ ] Explain `PAUSE`/`RESUME` extruder behaviour.
- [ ] Integrate KAMP (Klipper Adaptive Meshing and Purging).
- [x] Add `BEEP` when filament needs changing/`M600`.
## Stay Up-to-Date
I work on this repository all the time and a lot of new features are coming. Watch releases of this repository to be notified for future updates:
Watch for releases and updates.
<img src="./images/githubstar.gif" width="500" alt='Raspberry Pi'/>
# Installation Steps
## 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 all documentation found on this page. 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.
## Before You Begin
- Know what you're getting into by reading this documentation *fully!*
- 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 USB.
- Read this documentation _fully!_
- Make sure your printer is in good physical condition, because print and travel speeds will be _a lot faster_ than they were before. Consider yourself warned.
- 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. Note that most of the micro USB cables that you find at home are _unlikely_ to be data cables, and it's not possible to tell just by looking.
- It is also assumed that the username on the host device is `pi`. If that is not the case, you will have to manually edit `moonraker.conf` and `cfgs/misc-macros.cfg` and change any mentions of `/home/pi` to `/home/yourUserName`.
- Klipper *must* be installed on the host Raspberry Pi for everything to work. Easiest is to use a [FluiddPi](https://docs.fluidd.xyz/installation/fluiddpi#download) or [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image.
- It is assumed that there is one instance of Klipper installed. If you have multiple instances of Klipper installed, via `KIAUH` for example, then this guide is not for you. You can still use all the configs of course, but the steps in this guide will not work for you.
- Klipper _must_ be installed on the host Raspberry Pi for everything to work. Easiest is to use a [~~FluiddPI~~](https://docs.fluidd.xyz/installation/fluiddpi#download) (⚠️ `FluiddPI` is not under active maintenance) or [MainsailOS](https://github.com/mainsail-crew/mainsail/releases/latest) image. Alternatively, you can install `Fluidd` or `Mainsail` via [KIAUH](https://github.com/th33xitus/kiauh).
- Robert Redford's performance in _Spy Game (2001)_ was superb!
- It is assumed that there is one instance of Klipper installed. If you have multiple instances of Klipper installed, via `KIAUH` for example, then this guide is not for you. You can still use all the configs of course, but the steps in this guide will likely not work 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.
- If you see any errors, or encounter any issues, please create an [Issue](https://github.com/bassamanator/Sovol-SV06-firmware/issues/new), or a [Pull request](https://github.com/bassamanator/Sovol-SV06-firmware/pulls).
- I would recommend searching for the word `NOTE` in this repository. There are roughly half a dozen short points amongst the various files that you should be aware of if you're using this configuration.
## Flash Firmware
## Klipper Installation
💡 *If you have already flashed klipper onto your motherboard in the past, you can skip this step.*
### Flash Firmware
💡 For the sake of simplicity, I will refer to the klipper firmware file as `klipper.bin` even though the actual filename is something along the lines of `klipper-v0.11.0-148-g52f4e20c.bin`.
💡 _If you have already flashed klipper onto your motherboard in the past, you can skip this step._
💡 The firmware file is located in the `misc` folder.
Please note:
### Prepare the microSD Card for Flashing
- For the sake of simplicity, I will refer to the klipper firmware file as `klipper.bin` even though the actual filename is something along the lines of `klipper-v0.11.0-148-g52f4e20c.bin`.
- The firmware file is located in the `misc` folder.
- Flashing will only work if current firmware filename is _different from previous flashing procedure_. The `.bin` is also important.
- Many users have reported having issues flashing Klipper using the Sovol microSD card.
- Size: `8GB`. According to Sovol, the largest size that you can use is `16GB`.
#### 1. Prepare the microSD Card for Flashing with These Parameters
- Size: `16GB` maximum.
- File system: `FAT32`.
- Must not contain any files *except* the firmware file.
- Allocation unit size: `4096 bytes`.
- Must not contain any files _except_ the firmware file.
### Flashing Procedure
#### 2. Flashing Procedure
1. Disconnect any USB cables that might be connected to the motherboard.
2. Copy `klipper.bin` to the microSD card.
3. Make sure the printer is off.
4. Insert the microSD card into printer.
4. Turn on the printer and wait a minute (usually takes 10 seconds).
5. Turn off the printer and remove the microSD.
5. Turn on the printer and wait a minute (usually takes 10 seconds).
6. Turn off the printer and remove the microSD.
You may find this [video](https://youtu.be/p6l253OJa34) useful.
⚠️ **Caveat**: Flashing will only work if current firmware filename is *different from previous flashing procedure*. The `.bin` is also important.
### Download OSS Klipper Configuration
## Download Klipper Configuration
You can choose _either_ of the 2 following methods.
You can choose *either* of the 2 following methods.
### Clone the Repository
#### Method 1: Clone the Repository
1. `cd ~/printer_data/config`
2. Empty entire `~/printer_data/config` folder. Unfortunately, for safety reasons I will not post this command here. However, in linux, you can delete files via `rm filename`.
3. `git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .`
2. Empty entire `~/printer_data/config` folder.
- In linux, you can delete files via `rm fileName` and directories via `rmdir directoryName`.
3. `git clone -b master --single-branch https://github.com/bassamanator/Sovol-SV06-firmware.git .` ⚠️ Don't miss the period!
### Download the ZIP
#### Method 2: Download the ZIP
1. [Download](https://github.com/bassamanator/Sovol-SV06-firmware/archive/refs/heads/master.zip) the `ZIP` file containing the Klipper configuration.
2. The parent folder in the `ZIP` is `Sovol-SV06-firmware-master`. This is relevant in the next step.
3. Extract **only** the *contents* of the parent folder into `~/printer_data/config`.
2. See `Step 2` in `Method 1`.
3. The parent folder in the `ZIP` is `Sovol-SV06-firmware-master`. This is relevant in the next step.
4. Extract **only** the _contents_ of the parent folder into `~/printer_data/config`.
## Initial Steps
### Step 1
### Adjust Configuration with MCU Path
1. Find what port the `mcu` (SV06 motherboard) is connected to via `ls -l /dev/serial/by-id/`.
1. Find what port the `mcu` (printer motherboard) is connected to via `ls -l /dev/serial/by-id/` or `ls -l /dev/serial/by-path/`.
1. The output will be something along the lines of
`lrwxrwxrwx 13 root root 22 Apr 11:10 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB0`.
2. `usb-1a86_USB2.0-Serial-if00-port0` is the relevant part.
3. Therefore, the full path to your `mcu` is either `/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0` or `/dev/serial/by-path/usb-1a86_USB2.0-Serial-if00-port0`, depending on the command you used to find the `mcu`.
2. Adjust the `[mcu]` section in `printer.cfg` accordingly.
This is just an _example_ `mcu` section:
### Step 2
```
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
restart_method: command
```
3. Do a `FIRMWARE_RESTART`.
If you've done everything correctly, you should see no errors or warnings in your Mainsail/Fluidd dashboard.
### Configure Your Printer
❗☠️ **Your finger should be on the power switch for most of these steps** ☠️❗
@@ -110,70 +148,96 @@ You can choose *either* of the 2 following methods.
💡 I recommend no filament be loaded for any of these steps.
1. Do a `G28`; home all.
1. Check to see if `X` and `Y` max positions (`G1 X223 F3000`, `G1 Y223 F3000`) can be reached, and adjust `position_max`, if necessary. You can probably go all the way up to `225` for `X` and `Y` both, however, I would not recommend it.
2. Do a `G34`; mechanical gantry calibration. 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 agaisnt 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. The range is 250 to 261 from what I've seen, could be even higher for you. Adjust `position_max`, if necessary. I can go all the way to 258 over and over again, however, I would not print anything higher than 255 probably.
3. Pid tune the bed, but first move the printhead to the center. Ideally, all Pid tuning should occur at the temperatures that you print most at.
💡 Find explanations for gcode commands at [https://marlinfw.org/](https://marlinfw.org/) and [https://www.klipper3d.org/](https://www.klipper3d.org/G-Codes.html).
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. `G1 X111 Y111 Z40 F6000`
3. `PID_CALIBRATE HEATER=heater_bed TARGET=70`
4. `SAVE_CONFIG` (once completed)
4. Pid tune the extruder while part cooling fan runs at 25%.
1. `G28`
2. `G1 X111 Y111 Z10 F6000`
3. `M106 S64`
4. `PID_CALIBRATE HEATER=extruder TARGET=245`
5. `SAVE_CONFIG` (once completed)
5. Adjust `z_offset`. Make sure your nozzle if very clean. Paper test [reference](https://www.klipper3d.org/Bed_Level.html?h=probe_calibrate#the-paper-test).
1. `SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60`
2. `SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180`
3. Proceed to next steps after both temperatures have been reached.
4. `G28`
5. `PROBE_CALIBRATE`
6. `SAVE_CONFIG` (once completed)
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. `SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60`
2. `SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180`
3. Proceed to next steps after both temperatures have been reached.
4. `G28`
5. `BED_MESH_CALIBRATE`
6. `SAVE_CONFIG` (once completed)
1. `DO_CREATE_MESH`
2. `SAVE_CONFIG` (once completed)
If you've made it here, then your printer has been Klipperized, and is ready to print!
But first, adjust your slicer.
## Adjust Your Slicer
You need to adjust the start and end gcode in your slicer. The relevant macros are `PRINT_START` and `PRINT_END`. Find instructions [here](https://ellis3dp.com/Print-Tuning-Guide/articles/passing_slicer_variables.html#slicer-start-g-code).
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 `PURGE_LINE`. Here's an example:
```
PRINT_START BED=[first_layer_bed_temperature] HOTEND={first_layer_temperature[initial_extruder]+extruder_temperature_offset[initial_extruder]} CHAMBER=[chamber_temperature]
PURGE_LINE
```
## Directory Structure
This repository contains many files and folders. Some are *necessary* for this Klipper configuration to work, others are not.
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 ❌.
- Items that can _optionally_ be deleted are marked with a ❌.
```
├── cfgs ✅
│   ├── adxl-direct.cfg
│   ├── adxl-rp2040.cfg
│   ├── beeper.cfg
│   ├── misc-macros.cfg
│   ├── MECHANICAL_GANTRY_CALIBRATION.cfg
│   ├── PARKING.cfg
│   └── TEST_SPEED.cfg [☠Not ready for use☠]
├── adxl-direct.cfg
├── adxl-rp2040.cfg
│ ├── adxl-rpi-pico-2x.cfg
│ ├── MECHANICAL_GANTRY_CALIBRATION.cfg
│ ├── misc-macros.cfg
├── PARKING.cfg
└── TEST_SPEED.cfg
├── CODE_OF_CONDUCT.md ❌
├── CONTRIBUTING.md ❌
├── .github ❌
│ ├── FUNDING.yml
│ └── ISSUE_TEMPLATE
│ ├── bug_report.md
│ └── feature_request.md
├── .gitignore ❌
├── images ❌
│   └── githubstar.gif
│ ├── cup-border.png
│ ├── githubstar.gif
│ ├── heart.gif
│ ├── logo_white_stroke.png
│ └── party_blob.gif
├── misc ❌
│   ├── cup-border.png
│   ├── klipper.bin
│   ├── logo_white_stroke.png
│   ├── M503-output.yml
│   ├── SuperSlicer_config_bundle.ini
│   ├── sv06-buildPlate.png
│   ├── SV06-buildPlate.stl
│   └── SV06-texture.svg
│ ├── klipper-v0.11.0-148-g52f4e20c.bin
│ ├── M503-output.yml
│ ├── marlin-SV06V2.0.0A_2.24.bin
│ ├── SuperSlicer_config_bundle.ini
│ ├── sv06-buildPlate.png
├── SV06-buildPlate.stl
│ └── SV06-texture.svg
├── moonraker.conf ✅
├── printer.cfg ✅
── README.md ❌
── README.md ❌
└── .vscode ❌
└── settings.json
```
## <img src="./misc/cup-border.png" width="30" alt='Ko-fi'/> Support Me <img src="./misc/cup-border.png" width="30" alt='Ko-fi'/>
## Support Me
<img src="./images/heart.gif" width="17" alt=''/> If you found my work useful, please consider buying me a [<img src="./misc/logo_white_stroke.png" height="20" alt='Ko-fi'/>](https://ko-fi.com/bassamanator).
Please ⭐ star ⭐ this repository!
If you found my work useful, please consider buying me a [<img src="./images/logo_white_stroke.png" height="20" alt='Ko-fi'/>](https://ko-fi.com/bassamanator).
## FAQ
@@ -188,6 +252,7 @@ Please see [this discussion](https://github.com/bassamanator/Sovol-SV06-firmware
##### When does beeping occur?
The printer will beep upon:
- Filament runout.
- Filament change/`M600`.
- Upon `PRINT_END`.
@@ -195,43 +260,74 @@ The printer will beep upon:
##### How do I disable beeping?
Make the following changes according to your needs. All beeping will be disabled *except* during gantry calibration.
Make the following changes according to your needs. All beeping will be disabled _except_ during gantry calibration.
| File | `cfgs/misc-macros.cfg` |
| - | - |
| Section | `[gcode_macro _globals]` |
| Variable | `variable_beeping_enabled` |
| Disable beeping | `0` |
| Enable beeping | `1` |
| File | `cfgs/misc-macros.cfg` |
| --------------- | -------------------------- |
| Section | `[gcode_macro _globals]` |
| Variable | `variable_beeping_enabled` |
| Disable beeping | `0` |
| Enable beeping | `1` |
##### 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 find information about the physical setup [here](https://github.com/bassamanator/everything-sovol-sv06#filament-sensor).
##### I have a simple filament sensor connected. How do I enable/disable it?
Make the following changes according to your needs.
| File | `cfgs/misc-macros.cfg` |
| - | - |
| Section | `[gcode_macro _globals]` |
| Variable | `variable_filament_sensor_enabled` |
| Disable sensor | `0` |
| Enable sensor | `1` |
| File | `cfgs/misc-macros.cfg` |
| -------------- | ---------------------------------- |
| Section | `[gcode_macro _globals]` |
| Variable | `variable_filament_sensor_enabled` |
| Disable sensor | `0` |
| Enable sensor | `1` |
##### 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?
⚠️ _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.
## 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)
- ⭐⭐⭐⭐⭐ [Ellis' Print Tuning Guide](https://ellis3dp.com/Print-Tuning-Guide)
- [Simplify3D Print Quality Troubleshooting Guide](https://www.simplify3d.com/resources/print-quality-troubleshooting/)
## Links
## Sovol Official Links
- [SV06 Official Marlin Source Code](https://github.com/Sovol3d/Sv06-Source-Code)
- [SV06 Official Models](https://github.com/Sovol3d/SV06-Fully-Open-Source)
- [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)
## Sources
@@ -239,7 +335,7 @@ A simple runout sensor can only detect a change in state. So, if you start a pri
- https://ellis3dp.com/Print-Tuning-Guide
- https://github.com/strayr/strayr-k-macros
- https://docs.vorondesign.com/build/software/miniE3_v20_klipper.html
- https://github.com/spinixguy/Sovol-SV06-firmware
- https://github.com/spinixguy/Sovol-SV06-firmware
- https://www.printables.com/model/378915-sovol-sv06-buildplate-texture-and-model-for-prusas
- https://github.com/AndrewEllis93/Ellis-SuperSlicer-Profiles

49
cfgs/CALIBRATION.cfg Normal file
View File

@@ -0,0 +1,49 @@
[gcode_macro PID_TEST_BED]
gcode:
# Parameters
{% set TARGETTEMP = params.TEMP|default(70)|int %}
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
G28
G90
G1 X{max_x/2} Y{max_y/2} Z40 F6000
PID_CALIBRATE HEATER=heater_bed TARGET={TARGETTEMP}
[gcode_macro PID_TEST_HOTEND]
gcode:
# Parameters
{% set TARGETTEMP = params.TEMP|default(245)|int %}
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
G28
G90
G1 X{max_x/2} Y{max_y/2} Z10 F6000
M106 S64
PID_CALIBRATE HEATER=extruder TARGET={TARGETTEMP}
# TODO test this
[gcode_macro PID_TEST_ALL]
gcode:
PID_TEST_BED
PID_TEST_HOTEND
SAVE_CONFIG
[gcode_macro DO_PROBE_CALIBRATE]
gcode:
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=60
TEMPERATURE_WAIT SENSOR=extruder MINIMUM=180
G28
PROBE_CALIBRATE
[gcode_macro DO_CREATE_MESH]
gcode:
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=60
TEMPERATURE_WAIT SENSOR=extruder MINIMUM=180
G28
_BED_MESH_CALIBRATE

43
cfgs/adxl-rpi-pico-2x.cfg Normal file
View File

@@ -0,0 +1,43 @@
#####################################################################
# Config that supports a print head and a bed sensor at the same time
# This requires a Raspberry Pi Pico.
# Instructions: https://klipper.discourse.group/t/raspberry-pi-pico-adxl345-portable-resonance-measurement/1757/9
# TLDR Instructions: The two sensors should use the spi0a (GPIO 0-3) and spi1a (GPIO 9-12) buses, respectively.
#
# Recommended mounts:
# https://www.printables.com/model/385334-sovol-sv06-adxl345-mount-printhead-and-bed
#
# ADXL345 related Settings
# https://www.klipper3d.org/Measuring_Resonances.html#adxl345
#####################################################################
[mcu RP2040]
baud: 115200
restart_method: command
# Obtain definition by "ls -l /dev/serial/by-id/"
serial: /dev/serial/by-id/usb-Klipper_rp2040_E66138935F154C28-if00
[adxl345 head]
cs_pin: RP2040:gpio1
spi_bus: spi0a
# update axes_map if your sensor is oriented differently. Note the print on your sensor.
# -y, -z, x means that
# - the x axis of your printer corresponds to the sensor's negative y axis
# - the y axis of your printer corresponds to the sensor's negative z axis
# - the z axis of your printer corresponds to the sensor's x axis
axes_map: -y, -z, x
[adxl345 bed]
cs_pin: RP2040:gpio9
spi_bus: spi1a
[resonance_tester]
accel_chip_x: adxl345 head
accel_chip_y: adxl345 bed
probe_points: 111.5, 111.5, 20
[gcode_macro ADX]
description: Shortcut to ACCELEROMETER_QUERY for both sensors
gcode:
ACCELEROMETER_QUERY CHIP=head
ACCELEROMETER_QUERY CHIP=bed

View File

@@ -0,0 +1,104 @@
# # # Klipper Adaptive Meshing # # #
# Heads up! If you have any other BED_MESH_CALIBRATE macros defined elsewhere in your config, you will need to comment out / remove them for this to work. (Klicky/Euclid Probe)
# You will also need to be sure that [exclude_object] is defined in printer.cfg, and your slicer is labeling objects.
# This macro will parse information from objects in your gcode to define a min and max mesh area to probe, creating an adaptive mesh!
# This macro will not increase probe_count values in your [bed_mesh] config. If you want richer meshes, be sure to increase probe_count. We recommend at least 5,5.
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: _BED_MESH_CALIBRATE
gcode:
{% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} # Gather all object points
{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %} # Get bed mesh min from printer.cfg
{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %} # Get bed mesh max from printer.cfg
{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %} # Get probe count from printer.cfg
{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %} # Pull verbose setting from _KAMP_Settings
{% set mesh_margin = printer["gcode_macro _KAMP_Settings"].mesh_margin | float %} # Pull mesh margin setting from _KAMP_Settings
{% set fuzz_amount = printer["gcode_macro _KAMP_Settings"].fuzz_amount | float %} # Pull fuzz amount setting from _KAMP_Settings
{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %} # If probe count is only a single number, convert it to 2. E.g. probe_count:7 = 7,7
{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %} # Determine max probe point distance
{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %} # Determine max probe point distance
{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %} # Set x_min from smallest object x point
{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %} # Set y_min from smallest object y point
{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %} # Set x_max from largest object x point
{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %} # Set y_max from largest object y point
{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %} # Set fuzz_range between 0 and fuzz_amount
{% set adapted_x_min = (bed_mesh_min[0] + fuzz_amount - mesh_margin, x_min) | max - (fuzz_range | random / 100.0) %} # Adapt x_min to margin and fuzz constraints
{% set adapted_y_min = (bed_mesh_min[1] + fuzz_amount - mesh_margin, y_min) | max - (fuzz_range | random / 100.0) %} # Adapt y_min to margin and fuzz constraints
{% set adapted_x_max = (bed_mesh_max[0] - fuzz_amount + mesh_margin, x_max) | min + (fuzz_range | random / 100.0) %} # Adapt x_max to margin and fuzz constraints
{% set adapted_y_max = (bed_mesh_max[1] - fuzz_amount + mesh_margin, y_max) | min + (fuzz_range | random / 100.0) %} # Adapt y_max to margin and fuzz constraints
{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method='ceil') | int) + 1 %} # Define probe_count's x point count and round up
{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method='ceil') | int) + 1 %} # Define probe_count's y point count and round up
{% if (([points_x, points_y]|max) > 6) %} #
{% set algorithm = "bicubic" %} #
{% set min_points = 4 %} #
{% else %} # Calculate if algorithm should be bicubic or lagrange
{% set algorithm = "lagrange" %} #
{% set min_points = 3 %} #
{% endif %} #
{% set points_x = [points_x, min_points]|max %} # Set probe_count's x points to fit the calculated algorithm
{% set points_y = [points_y, min_points]|max %} # Set probe_count's y points to fit the calculated algorithm
{% set points_x = [points_x, probe_count[0]]|min %}
{% set points_y = [points_y, probe_count[1]]|min %}
{% if verbose_enable == True %} # If verbose is enabled, print information about KAMP's calculations
{ action_respond_info( "Algorithm: {}.".format(
(algorithm),
)) }
{ action_respond_info("Default probe count: {},{}.".format(
(probe_count[0]),
(probe_count[1]),
)) }
{ action_respond_info("Adapted probe count: {},{}.".format(
(points_x),
(points_y),
)) }
{action_respond_info("Default mesh bounds: {}, {}.".format(
(bed_mesh_min[0],bed_mesh_min[1]),
(bed_mesh_max[0],bed_mesh_max[1]),
)) }
{% if mesh_margin > 0 %}
{action_respond_info("Mesh margin is {}, mesh bounds extended by {}mm.".format(
(mesh_margin),
(mesh_margin),
)) }
{% else %}
{action_respond_info("Mesh margin is 0, margin not increased.")}
{% endif %}
{% if fuzz_amount > 0 %}
{action_respond_info("Mesh point fuzzing enabled, points fuzzed up to {}mm.".format(
(fuzz_amount),
)) }
{% else %}
{action_respond_info("Fuzz amount is 0, mesh points not fuzzed.")}
{% endif %}
{ action_respond_info("Adapted mesh bounds: {}, {}.".format(
(adapted_x_min, adapted_y_min),
(adapted_x_max, adapted_y_max),
)) }
{action_respond_info("KAMP adjustments successful. Happy KAMPing!")}
{% endif %}
{% if probe_dock_enable == True %}
{attach_macro} # Attach/deploy a probe if the probe is stored somewhere outside of the print area
{% endif %}
_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}
{% if probe_dock_enable == True %}
{detach_macro} # Detach/stow a probe if the probe is stored somewhere outside of the print area
{% endif %} # End of verbose

View File

@@ -0,0 +1,31 @@
# Below you can include specific configuration files depending on what you want KAMP to do:
[include ./Adaptive_Meshing.cfg] # Include to enable adaptive meshing configuration.
# [include ./KAMP/Line_Purge.cfg] # Include to enable adaptive line purging configuration.
[gcode_macro _KAMP_Settings]
description: This macro contains all adjustable settings for KAMP
# The following variables are settings for KAMP as a whole.
variable_verbose_enable: True # Set to True to enable KAMP information output when running. This is useful for debugging.
# The following variables are for adjusting adaptive mesh settings for KAMP.
variable_mesh_margin: 0 # Expands the mesh size in millimeters if desired. Leave at 0 to disable.
variable_fuzz_amount: 0 # Slightly randomizes mesh points to spread out wear from nozzle-based probes. Leave at 0 to disable.
# The following variables are for those with a dockable probe like Klicky, Euclid, etc. # ---------------- Attach Macro | Detach Macro
variable_probe_dock_enable: False # Set to True to enable the usage of a dockable probe. # ---------------------------------------------
variable_attach_macro: 'Attach_Probe' # The macro that is used to attach the probe. # Klicky Probe: 'Attach_Probe' | 'Dock_Probe'
variable_detach_macro: 'Dock_Probe' # The macro that is used to store the probe. # Euclid Probe: 'Deploy_Probe' | 'Stow_Probe'
# Legacy Gcode: 'M401' | 'M402'
# The following variables are for adjusting adaptive purge settings for KAMP.
variable_purge_height: 0.8 # Z position of nozzle during purge, default is 0.8.
variable_tip_distance: 0 # Distance between tip of filament and nozzle before purge. Should be similar to PRINT_END final retract amount.
variable_purge_margin: 10 # Distance the purge will be in front of the print area, default is 10.
variable_purge_amount: 30 # Amount of filament to be purged prior to printing.
variable_flow_rate: 12 # Flow rate of purge in mm3/s. Default is 12.
gcode: # Gcode section left intentionally blank. Do not disturb.
{action_respond_info(" Running the KAMP_Settings macro does nothing, it is only used for storing KAMP settings. ")}

113
cfgs/kamp/Line_Purge.cfg Normal file
View File

@@ -0,0 +1,113 @@
[gcode_macro LINE_PURGE]
description: A purge macro that adapts to be near your actual printed objects
gcode:
# Get relevant printer params
{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}
{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}
# Use firmware retraction if it is defined
{% if printer.firmware_retraction is defined %}
{% set RETRACT = G10 | string %}
{% set UNRETRACT = G11 | string %}
{% else %}
{% set RETRACT = 'G1 E-.5 F2100' | string %}
{% set UNRETRACT = 'G1 E.5 F2100' | string %}
{% endif %}
# Get purge settings from _Kamp_Settings
{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}
{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}
{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}
{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}
{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}
{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}
# Calculate purge origins and centers from objects
{% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} # Get all object points
{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %} # Object x min
{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %} # Object x max
{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %} # Object y min
{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %} # Object y max
{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %} # Create center point of purge line relative to print on X axis
{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %} # Create center point of purge line relative to print on Y axis
{% set purge_x_origin = ([purge_x_min - purge_margin, 0] | max) %} # Add margin to x min, compare to 0, and choose the larger
{% set purge_y_origin = ([purge_y_min - purge_margin, 0] | max) %} # Add margin to y min, compare to 0, and choose the larger
# Calculate purge speed
{% set purge_move_speed = (flow_rate / cross_section) * 60 | float %}
{% if cross_section != 5 %}
{action_respond_info("[Extruder] max_extrude_cross_section is not configured correctly, please set it to 5. Purge skipped.")}
{% else %}
{% if verbose_enable == True %}
{action_respond_info("Moving filament tip {}mms".format(
(tip_distance),
)) }
{% endif %}
{% if printer.firmware_retraction is defined %}
{action_respond_info("KAMP purge is using firmware retraction.")}
{% else %}
{action_respond_info("KAMP purge is not using firmware retraction, it is recommended to configure it.")}
{% endif %}
{% if purge_y_origin > 0 %}
{action_respond_info("KAMP purge starting at {}, {} and purging {}mm of filament, requested flow rate is {}mm/s3.".format(
(purge_x_center),
(purge_y_origin),
(purge_amount),
(flow_rate),
)) }
{% else %}
{action_respond_info("KAMP purge starting at {}, {} and purging {}mm of filament, requested flow rate is {}mm/s3.".format(
(purge_x_origin),
(purge_y_center),
(purge_amount),
(flow_rate),
)) }
{% endif %}
{% if purge_y_origin > 0 %} # If there's room on Y, purge along X axis in front of print area
G92 E0 # Reset extruder
G0 F{travel_speed} # Set travel speed
G90 # Absolute positioning
G0 X{purge_x_center} Y{purge_y_origin} # Move to purge position
G0 Z{purge_height} # Move to purge Z height
M83 # Relative extrusion mode
G1 E{tip_distance} F{purge_move_speed} # Move filament tip
G1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed} # Purge line
{RETRACT} # Retract
G92 E0 # Reset extruder distance
M82 # Absolute extrusion mode
G0 Z{purge_height * 2} F{travel_speed} # Z hop
{% else %} # If there's room on X, purge along Y axis to the left of print area
G92 E0 # Reset extruder
G0 F{travel_speed} # Set travel speed
G90 # Absolute positioning
G0 X{purge_x_origin} Y{purge_y_center} # Move to purge position
G0 Z{purge_height} # Move to purge Z height
M83 # Relative extrusion mode
G1 E{tip_distance} F{purge_move_speed} # Move filament tip
G1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed} # Purge line
{RETRACT} # Retract
G92 E0 # Reset extruder distance
M82 # Absolute extrusion mode
G0 Z{purge_height * 2} F{travel_speed} # Z hop
{% endif %}
{% endif %}

View File

@@ -1,8 +1,14 @@
[force_move]
enable_force_move: True
[temperature_sensor raspberry_pi]
sensor_type: temperature_host
# NOTE If you're using a Raspberry Pi, you can uncomment the next 2 lines, optionally.
# [temperature_sensor raspberry_pi]
# sensor_type: temperature_host
# NOTE If you're using a an Orange Pi, you can uncomment the next 3 lines, optionally.
# [temperature_sensor Orange_Pi]
# sensor_type: temperature_host
# sensor_path: /sys/class/thermal/thermal_zone0/temp
[virtual_sdcard]
path: /home/pi/printer_data/gcodes
@@ -22,11 +28,11 @@ gcode:
[gcode_macro _globals]
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_pre_purge_prime_length: 1.4
variable_bed_temp_over: 10 # NOTE Start print if bed temperature is over by this amount, otherwise wait for temperature drop
variable_kamp_enable: 1 # NOTE Enable(1) or disable(0) KAMP (adaptive mesh)
variable_pre_purge_prime_length: 1.40
gcode:
SET_GCODE_VARIABLE MACRO=_globals VARIABLE=pre_purge_prime_length VALUE={ variable_pre_purge_prime_length }
SET_GCODE_VARIABLE MACRO=_globals VARIABLE=filament_sensor_enabled VALUE={ variable_filament_sensor_enabled }
SET_GCODE_VARIABLE MACRO=_globals VARIABLE=beeping_enabled VALUE={ variable_beeping_enabled }
# Don't delete this section
[gcode_macro CONDITIONAL_BEEP]
gcode:
@@ -79,10 +85,7 @@ gcode:
{% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %}
ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1
# Get Boundaries
{% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
{% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
{% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %}
# Misc variables
{% set extrudeAmount = 26.6 %}
{% set movementLength = 100.0 %}
{% set movementSpeed = 15 * 60 %}
@@ -100,7 +103,7 @@ gcode:
M83 ; Relative extrusion mode
G1 E{PRE_PURGE_PRIME_LENGTH} F500 ; pre-purge prime LENGTH SHOULD MATCH YOUR PRINT_END RETRACT
G1 X{xStart + movementLength} E{extrudeAmount} F{movementSpeed} ; intro line 1
#G1 E-.5 F2100 # Retract
G92 E0.0 ; reset extruder
M82 ; Absolute extrusion mode
G1 Z5.0 ; move nozzle to prevent scratch
@@ -116,31 +119,69 @@ gcode:
[gcode_macro PRINT_START]
gcode:
ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1
# Parameters
{% set bedtemp = params.BED|int %}
{% set hotendtemp = params.HOTEND|int %}
{% set chambertemp = params.CHAMBER|default(0)|int %}
ADJUST_FILAMENT_SENSOR_STATUS ENABLE=1
# Other variables
{% set bedtempSlicer = bedtemp %}
{% set bedtempOver = printer["gcode_macro _globals"].bed_temp_over|default(0)|int %}
{% set maxVelocity = printer.configfile.settings.printer.max_velocity|default(200)|int %}
{% set maxVelocityAdjusted = (0.90 * maxVelocity * 60)|int %}
{% set kampEnabled=printer["gcode_macro _globals"].kamp_enable|default(0)|int %}
{% if printer.configfile.settings.safe_z_home %}
{% set startX = printer.configfile.settings.safe_z_home.home_xy_position[0]|float %}
{% set startY = printer.configfile.settings.safe_z_home.home_xy_position[1]|float %}
{% endif %}
{% set bedtempAlmost = ((bedtemp - 2, 0, printer.heater_bed.temperature|int)|max, bedtemp)|max %}
{% set hotendtempStepOne = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 150)|max %}
{% set hotendtempStepTwo = ((hotendtemp, printer[printer.toolhead.extruder].temperature|int)|min, 170)|max %}
# If bed-temp-almost is higher than bed-temp by a maximum of bed-temp-over
{% if bedtempAlmost > bedtemp %}
{% if (bedtempAlmost - bedtempOver) <= bedtemp %}
{% set bedtemp = bedtempAlmost %}
{% endif %}
{% endif %}
G90 ; absolute positioning
M140 S{bedtempAlmost} ; set & don't wait for bed temp
M104 S{hotendtempStepOne} ; set & don't wait for hotend temp
G28 X Y
# <insert your routines here>
M140 S{bedtemp} ; set & don't wait for bed temp
M104 S{hotendtemp} ; set & don't wait for hotend temp
{% if printer.configfile.settings.safe_z_home %}
G1 X{startX} Y{startY} F{maxVelocityAdjusted}
{% endif %}
M190 S{bedtemp} ; set & wait for bed temp
# TEMPERATURE_WAIT SENSOR="temperature_sensor chamber" MINIMUM={chambertemp} ; wait for chamber temp
# <insert your routines here>
M109 S{hotendtemp} ; set & wait for hotend temp
# <insert your routines here>
G28 Z ; final z homing
BED_MESH_PROFILE LOAD=default
G1 Z20 F3000 ; move nozzle away from bed
M190 S{bedtempAlmost} ; set & wait for bed temp
{% if kampEnabled == 0 %}
M104 S{hotendtempStepTwo} ; set & don't wait for hotend temp
{% endif %}
M190 S{bedtemp} ; set & wait for bed temp
M140 S{bedtempSlicer} ; set & don't wait for bed temp ; set temp to sliced setting regardless
{% if kampEnabled == 0 %}
BED_MESH_PROFILE LOAD=default ; NOTE if not using a mesh, comment out this line
M104 S{hotendtemp} ; set & don't wait for hotend temp
G28 Z ; final z homing
{% else %}
G28 Z ; final z homing
BED_MESH_CALIBRATE ; KAMP mesh
M104 S{hotendtemp} ; set & don't wait for hotend temp
{% endif %}
G1 X0 Y0 F{maxVelocityAdjusted}
M109 S{hotendtemp} ; set & wait for hotend temp
G1 Z20 F3000 ; move nozzle away from bed
[gcode_macro PRINT_END]
gcode:
ADJUST_FILAMENT_SENSOR_STATUS ENABLE=0
CONDITIONAL_BEEP I=2 DUR=30 FREQ=8500 ; NOTE Comment out this line to stop the beeps at the end of a print
CONDITIONAL_BEEP I=2 DUR=30 FREQ=8500
{% set PRE_PURGE_PRIME_LENGTH=printer["gcode_macro _globals"].pre_purge_prime_length|default(1.40)|float %}
M400 ; wait for buffer to clear

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

10
osskc.cfg Normal file
View File

@@ -0,0 +1,10 @@
[include ./cfgs/misc-macros.cfg]
[include ./cfgs/PARKING.cfg]
[include ./cfgs/MECHANICAL_GANTRY_CALIBRATION.cfg]
[include ./cfgs/CALIBRATION.cfg]
[include ./cfgs/kamp/KAMP_Settings.cfg]
# NOTE Uncomment the ONE of the following lines if you're using an adxl345
# [include ./cfgs/adxl-rp2040.cfg]
# [include ./cfgs/adxl-rpi-pico-2x.cfg]
# [include ./cfgs/adxl-direct.cfg]

View File

@@ -4,17 +4,11 @@
#
# See https://www.klipper3d.org/Config_Reference.html for configuration reference.
[include ./cfgs/misc-macros.cfg]
[include ./cfgs/PARKING.cfg]
[include ./cfgs/MECHANICAL_GANTRY_CALIBRATION.cfg]
# NOTE Uncomment the ONE of the following lines if you're using an adxl345
# [include ./cfgs/adxl-rp2040.cfg]
# [include ./cfgs/adxl-direct.cfg]
[include ./osskc.cfg]
[mcu]
# NOTE Obtain definition by "ls -l /dev/serial/by-id/"
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
# 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
restart_method: command
[printer]
@@ -23,6 +17,7 @@ max_velocity: 200
max_accel: 3000
max_z_velocity: 15
max_z_accel: 45
square_corner_velocity: 8.0
#####################################################################
# X/Y/Z Stepper Settings
@@ -32,7 +27,7 @@ max_z_accel: 45
step_pin: PC2
dir_pin: !PB9
enable_pin: !PC3
microsteps: 64
microsteps: 128
rotation_distance: 40
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: 0
@@ -54,7 +49,7 @@ diag_pin: PA5
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 64
microsteps: 128
rotation_distance: 40
endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: 0
@@ -76,7 +71,7 @@ diag_pin: PA6
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 64
microsteps: 128
rotation_distance: 4
endstop_pin: probe:z_virtual_endstop
position_min: -4
@@ -100,7 +95,7 @@ diag_pin: PA7
step_pin: PB4
dir_pin: !PB3
enable_pin: !PC3
microsteps: 64
microsteps: 128
rotation_distance: 4.65 # NOTE Calibrate e-steps and adjust https://www.klipper3d.org/Rotation_Distance.html
nozzle_diameter: 0.400
filament_diameter: 1.750
@@ -188,27 +183,26 @@ encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2
[bed_screws]
screw1: 26.5, 31
screw1_name: front left
screw2: 196.75, 31
screw1: 26.5, 31
screw2_name: front right
screw3: 196.75, 201
screw2: 196.75, 31
screw3_name: back right
screw4: 26.5, 201
screw3: 196.75, 201
screw4_name: back left
screw4: 26.5, 201
[screws_tilt_adjust]
screw1: 111.5, 116.5
screw1_name: center
screw2: 26.5, 31
screw1: 84.50, 135
screw2_name: front left
screw3: 196.75, 31
screw2: 0, 51
screw3_name: front right
screw4: 196.75, 201
screw3: 169.75, 51
screw4_name: back right
screw5: 26.5, 201
screw4: 169.75, 221
screw5_name: back left
speed: 50
screw5: 0, 221
horizontal_move_z: 10
screw_thread: CCW-M4