Compare commits
849 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
106d1d2a2a | ||
|
|
ed5ce9cb37 | ||
|
|
c2c79ff98d | ||
|
|
1b6b7fc58c | ||
|
|
2bcf06a295 | ||
|
|
1b471b482d | ||
|
|
f8cb1e30eb | ||
|
|
abb0d8801c | ||
|
|
ac57b6522e | ||
|
|
6b23dd9ff1 | ||
|
|
bfcd5536fc | ||
|
|
11bf83b498 | ||
|
|
3a15219de3 | ||
|
|
a87e5616a0 | ||
|
|
cf6d302ac3 | ||
|
|
c0eefc0076 | ||
|
|
e5f5070dca | ||
|
|
f8c4f90c04 | ||
|
|
fac4e53e86 | ||
|
|
d53365f996 | ||
|
|
2885a4c728 | ||
|
|
cef9cc29b8 | ||
|
|
1651b18aea | ||
|
|
387fceb453 | ||
|
|
27249dc709 | ||
|
|
d317793171 | ||
|
|
930317fa2a | ||
|
|
d9af6129ea | ||
|
|
0bf0cb5b54 | ||
|
|
48b30e0f5a | ||
|
|
a8e3afd64a | ||
|
|
4d0d219716 | ||
|
|
55e20f2c19 | ||
|
|
27cefb2b38 | ||
|
|
a79c57ab29 | ||
|
|
04f9f1b44e | ||
|
|
04b822c3aa | ||
|
|
73b78af6b2 | ||
|
|
08eec0da86 | ||
|
|
b8bafcf0ed | ||
|
|
3a854cacd1 | ||
|
|
ad0b76bd4b | ||
|
|
6bba285f8e | ||
|
|
4c14063404 | ||
|
|
1af4a4ae9f | ||
|
|
cd23c95760 | ||
|
|
cb0a8f2ed9 | ||
|
|
73cd8c241c | ||
|
|
7d83aed410 | ||
|
|
760a0f8df5 | ||
|
|
a3fa11ffd4 | ||
|
|
3dc0522870 | ||
|
|
9814daa999 | ||
|
|
2447025fa6 | ||
|
|
3efb424d66 | ||
|
|
1208ec1f52 | ||
|
|
3ac636b33e | ||
|
|
7ba1a2a749 | ||
|
|
9e68105b74 | ||
|
|
6e77fd27cd | ||
|
|
98931789d8 | ||
|
|
a92d995727 | ||
|
|
054762da3d | ||
|
|
063f9a2c02 | ||
|
|
5a2f406fd1 | ||
|
|
c7ea4b89c9 | ||
|
|
1f5848fc1a | ||
|
|
9b2816477b | ||
|
|
fc85675145 | ||
|
|
13ee6032ae | ||
|
|
9197975625 | ||
|
|
c285f8b6cf | ||
|
|
1cdf0d474d | ||
|
|
09bc207189 | ||
|
|
3405095f0a | ||
|
|
2b2b610cff | ||
|
|
d69a496b83 | ||
|
|
c3e9999e0c | ||
|
|
166ce06aea | ||
|
|
5cce7f4d55 | ||
|
|
9406baf40b | ||
|
|
3bcb6970f5 | ||
|
|
08adecd226 | ||
|
|
f6dd97b784 | ||
|
|
1f3a160f47 | ||
|
|
d0ed6e5705 | ||
|
|
61fa7e82d9 | ||
|
|
81865b5940 | ||
|
|
6c872c71a7 | ||
|
|
c69527e2b0 | ||
|
|
37d7742468 | ||
|
|
7c5b108531 | ||
|
|
d0c5802fe2 | ||
|
|
99251015fa | ||
|
|
12529ef6cd | ||
|
|
1d201c3592 | ||
|
|
15853da28c | ||
|
|
a7defdcad0 | ||
|
|
08ddf25cf3 | ||
|
|
d28e148ddc | ||
|
|
0e21188cb2 | ||
|
|
b6a25393d3 | ||
|
|
2bb6b0f58f | ||
|
|
97da129793 | ||
|
|
9459549db3 | ||
|
|
37c379ddc5 | ||
|
|
ff6e879349 | ||
|
|
af43faa3f2 | ||
|
|
6763210558 | ||
|
|
37bbf161f8 | ||
|
|
bc30414362 | ||
|
|
4a6360f2af | ||
|
|
d3e41b55b7 | ||
|
|
2c76f7527d | ||
|
|
1286d3006c | ||
|
|
b691e013f0 | ||
|
|
4c5e93d51d | ||
|
|
cd7c1b8e68 | ||
|
|
80a6f59c8f | ||
|
|
2d5f9b6cda | ||
|
|
c0daf43d2f | ||
|
|
39261d884d | ||
|
|
5f47a91464 | ||
|
|
9103aaf6d5 | ||
|
|
b2c78d71b0 | ||
|
|
2caaaea9a4 | ||
|
|
b9ac6d6306 | ||
|
|
4115a77342 | ||
|
|
560d48dbc9 | ||
|
|
8fa1c97767 | ||
|
|
1bdf705524 | ||
|
|
bc904dd431 | ||
|
|
ccfcc3789b | ||
|
|
2a27093f69 | ||
|
|
9d9e5c7edc | ||
|
|
fa83b1319c | ||
|
|
7ec2ec30e3 | ||
|
|
2b0b30ccd5 | ||
|
|
1ae671f61f | ||
|
|
b0e3effb53 | ||
|
|
16a53e6918 | ||
|
|
568393c941 | ||
|
|
7289af6560 | ||
|
|
b74a5c5217 | ||
|
|
0aad2437c5 | ||
|
|
ebc79a1ee8 | ||
|
|
118ef908a5 | ||
|
|
b490848bc9 | ||
|
|
7a615b4f69 | ||
|
|
e4f3f60ea6 | ||
|
|
0c7faa978c | ||
|
|
bf221d5e26 | ||
|
|
4dcf494b97 | ||
|
|
d4dab9da5d | ||
|
|
153883c6c5 | ||
|
|
35d28e880d | ||
|
|
04bd48ca9d | ||
|
|
864d172b68 | ||
|
|
d991b4c83b | ||
|
|
efebbb9a2f | ||
|
|
ea5e76746a | ||
|
|
513582afc4 | ||
|
|
e5a3fd7cee | ||
|
|
f851cfae46 | ||
|
|
c9e7119a93 | ||
|
|
3eefc037c5 | ||
|
|
27ef58642e | ||
|
|
cde7e75139 | ||
|
|
447374f73e | ||
|
|
795bd03b33 | ||
|
|
4346d37c06 | ||
|
|
8c8b9b1812 | ||
|
|
0d930bf871 | ||
|
|
b66dd1a60f | ||
|
|
8ed1696624 | ||
|
|
8a69e5d596 | ||
|
|
605c32fc98 | ||
|
|
b9f48e634e | ||
|
|
74c0e3a484 | ||
|
|
6b1ad715aa | ||
|
|
463194b1a3 | ||
|
|
963d7c247b | ||
|
|
af39a209f3 | ||
|
|
10987003b0 | ||
|
|
fe84968bdc | ||
|
|
68e9a495dd | ||
|
|
6030551075 | ||
|
|
3143e31aca | ||
|
|
d37374974d | ||
|
|
c22d5b2444 | ||
|
|
d33a34614f | ||
|
|
0f3b1bce66 | ||
|
|
1f7c3fc8ec | ||
|
|
9213646c63 | ||
|
|
f3b980c1b2 | ||
|
|
b944666bb1 | ||
|
|
b62a0d5db5 | ||
|
|
25a9a32ecb | ||
|
|
ab923883f7 | ||
|
|
4795c0896d | ||
|
|
dbec03abd9 | ||
|
|
41eedda5d6 | ||
|
|
7c8b60b40e | ||
|
|
6458def588 | ||
|
|
8ecec4be8e | ||
|
|
db05938a5f | ||
|
|
428a8d4881 | ||
|
|
122fd88c6a | ||
|
|
d204cc1fb7 | ||
|
|
4a35d7e8bd | ||
|
|
5f2cb5436c | ||
|
|
bc488c2161 | ||
|
|
3835654116 | ||
|
|
b0901daa85 | ||
|
|
0f24406acc | ||
|
|
25b6bc2f73 | ||
|
|
1c508c38aa | ||
|
|
53092a6474 | ||
|
|
e4d0044be8 | ||
|
|
180f44b876 | ||
|
|
af981432f0 | ||
|
|
c83688b7bc | ||
|
|
5dc0c8aac0 | ||
|
|
cd8f250e84 | ||
|
|
bfbdc04c02 | ||
|
|
65ade083b2 | ||
|
|
3a57608642 | ||
|
|
4bdc11a8b3 | ||
|
|
09a3d018a8 | ||
|
|
342a230984 | ||
|
|
7bc6470082 | ||
|
|
c6b652044d | ||
|
|
541665679e | ||
|
|
2ae6c220e3 | ||
|
|
014c06f8a2 | ||
|
|
2d2c09a0a3 | ||
|
|
a342770ac5 | ||
|
|
a31dd0ff0e | ||
|
|
72962c5ca2 | ||
|
|
14ac453861 | ||
|
|
475f543790 | ||
|
|
7a8e9591e3 | ||
|
|
7cab732ae9 | ||
|
|
a4c31bafb0 | ||
|
|
755064177b | ||
|
|
b3298d8992 | ||
|
|
4c571ea9ac | ||
|
|
65ae08ef21 | ||
|
|
8d9566b945 | ||
|
|
7d8ade74e8 | ||
|
|
a1fc1ac214 | ||
|
|
40da3f406a | ||
|
|
4905667ee2 | ||
|
|
0e9aa76066 | ||
|
|
f931da1b87 | ||
|
|
6edc2946db | ||
|
|
4b231470ed | ||
|
|
8c96e9dd11 | ||
|
|
0ccf3018d5 | ||
|
|
8d8c239e47 | ||
|
|
f5cdfad333 | ||
|
|
ca2e84abba | ||
|
|
d47a5eb8b6 | ||
|
|
c4de0bba50 | ||
|
|
35bbd989e4 | ||
|
|
519c3ad5ee | ||
|
|
9465618adb | ||
|
|
467e8e6f40 | ||
|
|
68fcbe2a62 | ||
|
|
c630ecf3c7 | ||
|
|
f28c3319ed | ||
|
|
cf9627cc05 | ||
|
|
7713986ae1 | ||
|
|
1a7e4e51b3 | ||
|
|
d94dd8e9fd | ||
|
|
3dcac1308e | ||
|
|
722770f62f | ||
|
|
b0e8e84d6e | ||
|
|
06437c5892 | ||
|
|
12e3b9fa7b | ||
|
|
739e6e7396 | ||
|
|
518fe023b4 | ||
|
|
967fe1c01c | ||
|
|
a6f2fc7179 | ||
|
|
b7699d374a | ||
|
|
7912c39f9e | ||
|
|
5d26c2a08e | ||
|
|
2a66286d1c | ||
|
|
2da7d65402 | ||
|
|
c890aba45e | ||
|
|
3a3ea90ba5 | ||
|
|
4b650eccb2 | ||
|
|
9850dc75f4 | ||
|
|
38772492f9 | ||
|
|
ea9eac6c38 | ||
|
|
bceb8ddee2 | ||
|
|
634dcc7387 | ||
|
|
0cbb8fdc9a | ||
|
|
98192d710f | ||
|
|
835ec3513d | ||
|
|
b80d2f7706 | ||
|
|
5ef930454e | ||
|
|
a5b5474f69 | ||
|
|
67b554fde2 | ||
|
|
a9426d045b | ||
|
|
ab87af90a3 | ||
|
|
380ba2a618 | ||
|
|
05efccc874 | ||
|
|
4b9b705b99 | ||
|
|
bf367ad2b6 | ||
|
|
1ab41cf41d | ||
|
|
ceaf818a11 | ||
|
|
04532448bc | ||
|
|
686d557863 | ||
|
|
5afa5d3fbb | ||
|
|
b267178370 | ||
|
|
9530373ccb | ||
|
|
492cd3d99f | ||
|
|
9270cabb74 | ||
|
|
1d2746f167 | ||
|
|
c9daefd97f | ||
|
|
7b0e6725ca | ||
|
|
8fd330c54e | ||
|
|
f0c394de81 | ||
|
|
eebd7e6579 | ||
|
|
20a27c697f | ||
|
|
703490da1c | ||
|
|
c3b973319f | ||
|
|
c402b275c3 | ||
|
|
787ed452c2 | ||
|
|
8472c57b59 | ||
|
|
393f37dbfc | ||
|
|
f88117c7e4 | ||
|
|
72b3ab8b29 | ||
|
|
2d4b520260 | ||
|
|
bf4bd5cfc1 | ||
|
|
a68bb935df | ||
|
|
1fd76b7393 | ||
|
|
821df4e994 | ||
|
|
a7ca0e1670 | ||
|
|
e9e0c374d6 | ||
|
|
a11535fc86 | ||
|
|
53093a7a15 | ||
|
|
3c4091548e | ||
|
|
d759cc60d3 | ||
|
|
3e64093b81 | ||
|
|
8b8f591a05 | ||
|
|
0fd12609a6 | ||
|
|
310d583413 | ||
|
|
1e992f9d16 | ||
|
|
02ee379f82 | ||
|
|
3e6f2206b3 | ||
|
|
e5c512c8d5 | ||
|
|
f2688dbb33 | ||
|
|
0197fec202 | ||
|
|
b24465976e | ||
|
|
95919d1256 | ||
|
|
203568b909 | ||
|
|
4fd5090253 | ||
|
|
7232014657 | ||
|
|
d04476c82e | ||
|
|
33c6667881 | ||
|
|
a79096efdf | ||
|
|
12b20c6e77 | ||
|
|
947569d347 | ||
|
|
153c1cbe60 | ||
|
|
1f64ca4fd9 | ||
|
|
a13e681b2e | ||
|
|
fb16e8810b | ||
|
|
1d2bb5a412 | ||
|
|
19abe2b974 | ||
|
|
57ca91a875 | ||
|
|
d4adeda76b | ||
|
|
dce46ea053 | ||
|
|
ff6c11e827 | ||
|
|
1746148a45 | ||
|
|
5fe5e21508 | ||
|
|
c186766708 | ||
|
|
9b6010dc7b | ||
|
|
6869611147 | ||
|
|
ec0e3e710c | ||
|
|
b0d9a82718 | ||
|
|
48ebb6959d | ||
|
|
433c8c937a | ||
|
|
5a0b9d1ce8 | ||
|
|
98c9a991a3 | ||
|
|
c0796bc42d | ||
|
|
c79f135cd5 | ||
|
|
ddb8311890 | ||
|
|
1eb2d4da90 | ||
|
|
9a92b346fd | ||
|
|
7843c23b8c | ||
|
|
dac42efbd9 | ||
|
|
f8649b4ba9 | ||
|
|
e93c188766 | ||
|
|
0aa78ec76e | ||
|
|
db732e58db | ||
|
|
f4429a54a9 | ||
|
|
07e8011f51 | ||
|
|
3aacc4d6a2 | ||
|
|
b6ebf5cb09 | ||
|
|
1460e0d6f4 | ||
|
|
5c9551dc72 | ||
|
|
81e71ce8f8 | ||
|
|
8c2b62775d | ||
|
|
bf6f84b82d | ||
|
|
ced389f4f6 | ||
|
|
17123889f6 | ||
|
|
d858498a53 | ||
|
|
44f868a802 | ||
|
|
86a99cf38e | ||
|
|
c590bf7643 | ||
|
|
64031ab3d7 | ||
|
|
61524542d2 | ||
|
|
568a0da50e | ||
|
|
ed3e6b42c7 | ||
|
|
9730be8e17 | ||
|
|
3990d997de | ||
|
|
43fa41c1af | ||
|
|
fc627ec470 | ||
|
|
402110f655 | ||
|
|
ff28f33967 | ||
|
|
120331f49a | ||
|
|
8ac81fed67 | ||
|
|
c5e7985740 | ||
|
|
9e8c4770ed | ||
|
|
0b05a38361 | ||
|
|
57be62b1ca | ||
|
|
06846313fd | ||
|
|
ee9657bbf6 | ||
|
|
0ae20421d1 | ||
|
|
a7f7cc5075 | ||
|
|
c7d6d81a4d | ||
|
|
f7d7df0b46 | ||
|
|
939b575b01 | ||
|
|
03fb7961b4 | ||
|
|
4ea7b213e2 | ||
|
|
931b73d498 | ||
|
|
1758f53b9d | ||
|
|
a028aeaf78 | ||
|
|
0342c50033 | ||
|
|
b2a29c6349 | ||
|
|
5d0658b91b | ||
|
|
291fbe0801 | ||
|
|
7a67cb86d5 | ||
|
|
6d2f3ef4f1 | ||
|
|
0a20430e07 | ||
|
|
5c8d15bbee | ||
|
|
9f2a025762 | ||
|
|
2b916e79c7 | ||
|
|
5e207d2baa | ||
|
|
3646cc0140 | ||
|
|
87bfa06b9e | ||
|
|
d6034013e7 | ||
|
|
3c01b60a88 | ||
|
|
77177582cd | ||
|
|
336af2f28d | ||
|
|
d4bf61262e | ||
|
|
8f8cf7ef41 | ||
|
|
cb414ae914 | ||
|
|
8a3233b397 | ||
|
|
302cd38217 | ||
|
|
91a27ef083 | ||
|
|
886530e777 | ||
|
|
295fb7fc85 | ||
|
|
48237435b2 | ||
|
|
849cc075dc | ||
|
|
6be552f6e6 | ||
|
|
6b7e917a8e | ||
|
|
6aae62542c | ||
|
|
f3667fd453 | ||
|
|
eeee2a9a35 | ||
|
|
0c9eb519ff | ||
|
|
7543876487 | ||
|
|
df6ca2ea1d | ||
|
|
d3a7d992aa | ||
|
|
961f68629a | ||
|
|
35d951dabf | ||
|
|
acd165cbea | ||
|
|
d86bf0b927 | ||
|
|
5e39d346ed | ||
|
|
f2dd4b001d | ||
|
|
0ba83c5b04 | ||
|
|
986e9c884a | ||
|
|
3850b3d27a | ||
|
|
aa7d24b0af | ||
|
|
6d5ce309a5 | ||
|
|
d39c4fe628 | ||
|
|
2cf03ffa23 | ||
|
|
5acc181624 | ||
|
|
7fb7f0d331 | ||
|
|
b3cfe55b39 | ||
|
|
62fcc5a56f | ||
|
|
a61d483e21 | ||
|
|
e872290c47 | ||
|
|
a074af7c87 | ||
|
|
8d10379ad8 | ||
|
|
f87e29c775 | ||
|
|
79e2376993 | ||
|
|
c9cb462f90 | ||
|
|
8f8c1e2c58 | ||
|
|
271e412ae6 | ||
|
|
bc6c3ba92f | ||
|
|
d6c2e24f4c | ||
|
|
121249c999 | ||
|
|
e9e0f59204 | ||
|
|
63ba7d231e | ||
|
|
c0f72a2c38 | ||
|
|
7a3cbc1e23 | ||
|
|
f84542cd20 | ||
|
|
26523d77ba | ||
|
|
31b2c3ea7a | ||
|
|
1c06ea8afe | ||
|
|
c197fdb03d | ||
|
|
16e59511c3 | ||
|
|
16ecf15a91 | ||
|
|
245917bf03 | ||
|
|
332038ea01 | ||
|
|
c6c360c4e1 | ||
|
|
7b90830ae5 | ||
|
|
98c7c7603e | ||
|
|
e03f75e758 | ||
|
|
15f21be5ec | ||
|
|
804f95ebe4 | ||
|
|
fbbbbc85cf | ||
|
|
e3a5e2d271 | ||
|
|
0e37f8c9b3 | ||
|
|
17f2b4e960 | ||
|
|
90500c331a | ||
|
|
29c6c89327 | ||
|
|
477b83469c | ||
|
|
aa0a889b04 | ||
|
|
01d985a739 | ||
|
|
5304c4141c | ||
|
|
b6368173cf | ||
|
|
6716007420 | ||
|
|
718da75910 | ||
|
|
9415071482 | ||
|
|
740c0ae636 | ||
|
|
086c131bbf | ||
|
|
1dd952ac65 | ||
|
|
5bca4e6fa1 | ||
|
|
1aa11fed8c | ||
|
|
feb15eaf2e | ||
|
|
b23346a521 | ||
|
|
9a65a4569b | ||
|
|
049d8c2a94 | ||
|
|
b5c967acd8 | ||
|
|
c3899cefa8 | ||
|
|
fd6baa3d16 | ||
|
|
79ce3ef1c5 | ||
|
|
b0b950b7e1 | ||
|
|
9818055ac3 | ||
|
|
0cfab84e1a | ||
|
|
512ad4b3a4 | ||
|
|
4d9a36b34f | ||
|
|
cb042e749d | ||
|
|
596f5e3e3a | ||
|
|
7d76067ff9 | ||
|
|
6f4822fe96 | ||
|
|
b3a180ea77 | ||
|
|
2336d2d6ab | ||
|
|
b6779cc019 | ||
|
|
68e59528a4 | ||
|
|
67b2852249 | ||
|
|
c36fe76d69 | ||
|
|
e3dde19932 | ||
|
|
f29022499e | ||
|
|
5ca132eafa | ||
|
|
502e83725b | ||
|
|
bf3fa979f9 | ||
|
|
264aac5856 | ||
|
|
2b3ea29f30 | ||
|
|
ef4710c6e0 | ||
|
|
fe76fbe820 | ||
|
|
6e020123c6 | ||
|
|
196210cad2 | ||
|
|
2ea3631222 | ||
|
|
8ed0f7c5c3 | ||
|
|
d1972b1e9c | ||
|
|
8bf3e56301 | ||
|
|
fc6d045ded | ||
|
|
0160a7db9a | ||
|
|
ff0324b0c2 | ||
|
|
aea15250ae | ||
|
|
c8a93cb3bf | ||
|
|
0cd4d5d5ea | ||
|
|
5ce86bd005 | ||
|
|
a2c309a2b0 | ||
|
|
ce35ee45d6 | ||
|
|
b3c3b61387 | ||
|
|
b70416167b | ||
|
|
a34dbc7029 | ||
|
|
5238c3f872 | ||
|
|
dd77a2ec16 | ||
|
|
b562328bd0 | ||
|
|
2159f398ea | ||
|
|
774371d78d | ||
|
|
20ba396466 | ||
|
|
5fe9dd5a50 | ||
|
|
b28df43b26 | ||
|
|
730c7cfc20 | ||
|
|
5fc92ff6b7 | ||
|
|
2f8ad5e6ac | ||
|
|
46d0c6bdfc | ||
|
|
97b4eff424 | ||
|
|
edae40c36f | ||
|
|
dc51788f9a | ||
|
|
8013699c45 | ||
|
|
2a2191d201 | ||
|
|
13d16afa0c | ||
|
|
2c877e1729 | ||
|
|
a69de2be93 | ||
|
|
fe929e4696 | ||
|
|
5b20ac416c | ||
|
|
74892a7702 | ||
|
|
914f701256 | ||
|
|
ec58b23f3b | ||
|
|
3fb0b7e4bc | ||
|
|
9aab58605b | ||
|
|
005cfea5c3 | ||
|
|
ac863a95b6 | ||
|
|
a56484c98b | ||
|
|
2b6cf5b007 | ||
|
|
e43ad4c953 | ||
|
|
97d976fc53 | ||
|
|
bcf10aa990 | ||
|
|
27e6b533bc | ||
|
|
fdfa26edd6 | ||
|
|
90bc1679a2 | ||
|
|
6972b6303d | ||
|
|
baa0d2ff8c | ||
|
|
5ff45636d9 | ||
|
|
e576571340 | ||
|
|
8158dbcc21 | ||
|
|
4b6a65c1e0 | ||
|
|
dabffcc22c | ||
|
|
54149e38f9 | ||
|
|
b921b8a1c1 | ||
|
|
61bcb6b47f | ||
|
|
efc3335911 | ||
|
|
0a86190bae | ||
|
|
7532e4ccea | ||
|
|
f3b4173e6b | ||
|
|
6b6879e6bc | ||
|
|
58abd2925e | ||
|
|
9c25f42f4a | ||
|
|
abf493496c | ||
|
|
d9cd524aec | ||
|
|
46e7027bc7 | ||
|
|
9628d9b1ac | ||
|
|
7c81a16bd3 | ||
|
|
f4c4de1a24 | ||
|
|
9654816abf | ||
|
|
0e2d1a190e | ||
|
|
665323eb29 | ||
|
|
254789f4c5 | ||
|
|
ab5540bd34 | ||
|
|
1d05a34cd7 | ||
|
|
91bade5824 | ||
|
|
b1bbe97576 | ||
|
|
2721211456 | ||
|
|
4cbbe18afd | ||
|
|
04b3603a1e | ||
|
|
cff24b0220 | ||
|
|
fcee27fc19 | ||
|
|
c06618193d | ||
|
|
ab2d302b7e | ||
|
|
d1f4f18810 | ||
|
|
8663bc8192 | ||
|
|
205da598fd | ||
|
|
080ee0b512 | ||
|
|
730a6d868b | ||
|
|
8b75bddc0f | ||
|
|
139274f0bb | ||
|
|
72161d0405 | ||
|
|
10270dc7ef | ||
|
|
f82a85aad0 | ||
|
|
e17f2bac96 | ||
|
|
e557f2d0c0 | ||
|
|
98d1fee8ad | ||
|
|
8f1753c8ce | ||
|
|
8e296db410 | ||
|
|
3c526a71f9 | ||
|
|
99a74d9f07 | ||
|
|
e310e5f0e8 | ||
|
|
988ee5754e | ||
|
|
a8ad1ae726 | ||
|
|
8e87ab0939 | ||
|
|
2d97e0e218 | ||
|
|
2e7f38eadd | ||
|
|
41dd53f62c | ||
|
|
43bb45a1d3 | ||
|
|
935088ddff | ||
|
|
7bd96950cb | ||
|
|
73e84abaff | ||
|
|
ef2c7cb363 | ||
|
|
fc476f22b6 | ||
|
|
8d93d1a8ef | ||
|
|
43dfb3c9ad | ||
|
|
fb485e862d | ||
|
|
35de9b8e55 | ||
|
|
e80ced5568 | ||
|
|
401f7a879c | ||
|
|
d7ec5505a6 | ||
|
|
8f6efe5a7b | ||
|
|
f76cb92b15 | ||
|
|
bd6c25c9f8 | ||
|
|
0b0e5a911e | ||
|
|
3aad25eab9 | ||
|
|
3683273936 | ||
|
|
282af0220e | ||
|
|
982567a69a | ||
|
|
86b074e1ee | ||
|
|
93f1e6dd86 | ||
|
|
05472bb8a3 | ||
|
|
ade65b90af | ||
|
|
c188aa982f | ||
|
|
00fd6223ed | ||
|
|
89d1ab7c04 | ||
|
|
5f5896ad71 | ||
|
|
6d0c55b6c1 | ||
|
|
da06e185fb | ||
|
|
a28b29993a | ||
|
|
d00023f3bb | ||
|
|
56cd39f038 | ||
|
|
4dbe795ac2 | ||
|
|
2843c85019 | ||
|
|
7c80e8d533 | ||
|
|
430b8d0e52 | ||
|
|
d8b6ff5c5e | ||
|
|
bab27651a1 | ||
|
|
b0a158c271 | ||
|
|
9055e9f9b5 | ||
|
|
524ebbc7b3 | ||
|
|
d38aed0773 | ||
|
|
e1919e3731 | ||
|
|
503891cd0e | ||
|
|
dd529d7ad1 | ||
|
|
8efa5e2db4 | ||
|
|
9ff4f1bb2f | ||
|
|
d39142139e | ||
|
|
18b0749163 | ||
|
|
9396431c6b | ||
|
|
fa433c7f04 | ||
|
|
eed371e924 | ||
|
|
224574da4a | ||
|
|
e0e2f15498 | ||
|
|
0a39c339c7 | ||
|
|
0bf4ab66da | ||
|
|
e532b75e21 | ||
|
|
6116a5d48f | ||
|
|
77dff35fae | ||
|
|
a4995c61c9 | ||
|
|
78153ca4c3 | ||
|
|
4ca190d393 | ||
|
|
0204de46a6 | ||
|
|
0e30b862c7 | ||
|
|
bfb34e0701 | ||
|
|
f50e054bd0 | ||
|
|
064804b688 | ||
|
|
bdc7383e51 | ||
|
|
0bfb655f66 | ||
|
|
124ba12485 | ||
|
|
196a69c613 | ||
|
|
d40f951d6f | ||
|
|
2d5c761101 | ||
|
|
3665e9fc53 | ||
|
|
ed610a6600 | ||
|
|
29b5961d9f | ||
|
|
32f61b01e9 | ||
|
|
f63f68bbbb | ||
|
|
5500538fc5 | ||
|
|
72735b4552 | ||
|
|
3f338c08c1 | ||
|
|
2981bd601b | ||
|
|
86121ff79e | ||
|
|
257058981e | ||
|
|
076a66f791 | ||
|
|
7ca86f1723 | ||
|
|
1acaaa98c2 | ||
|
|
797dcfcb12 | ||
|
|
bd3c8920f6 | ||
|
|
befd263260 | ||
|
|
ef53ded6bc | ||
|
|
e6f713f1ce | ||
|
|
9845d0d103 | ||
|
|
746b928c8b | ||
|
|
4b5cbc18a4 | ||
|
|
351b565728 | ||
|
|
b792e0fdd1 | ||
|
|
7afac2b3af | ||
|
|
f3ef9c1889 | ||
|
|
d3afe4f1d8 | ||
|
|
c06f6943a6 | ||
|
|
fdbdb3c707 | ||
|
|
374eb98765 | ||
|
|
92993c062b | ||
|
|
9945cc0f46 | ||
|
|
5eb5841eaf | ||
|
|
0b90337d59 | ||
|
|
51cf244617 | ||
|
|
c11e4b74c2 | ||
|
|
0cd808cfde | ||
|
|
009d14fc3e | ||
|
|
cf6e8a2eee | ||
|
|
430ad0b658 | ||
|
|
40e2c64c82 | ||
|
|
739583a21b | ||
|
|
dcedd84fe1 | ||
|
|
e2f5e2871c | ||
|
|
d65f2e2861 | ||
|
|
43453131ac | ||
|
|
1a69f38e6e | ||
|
|
538d6ac3a2 | ||
|
|
c694da3753 | ||
|
|
4b4e309e1b | ||
|
|
5131ec5eb0 | ||
|
|
2ecc8d8f62 | ||
|
|
5da6a62759 | ||
|
|
0ba5819370 | ||
|
|
081c24326d | ||
|
|
f723a3141e | ||
|
|
6f5f2a3bc7 | ||
|
|
d6d2be66e4 | ||
|
|
9a11286327 | ||
|
|
faeaa54925 | ||
|
|
632ff9e55a | ||
|
|
0b0c47c566 | ||
|
|
a6d90bb95e | ||
|
|
2c535106ee | ||
|
|
7e090a996a | ||
|
|
7b792e40d5 | ||
|
|
a46244057c | ||
|
|
c2881f7d15 | ||
|
|
f160a3a824 | ||
|
|
ccbdb6c531 | ||
|
|
c794e11c67 | ||
|
|
b8a6160646 | ||
|
|
f07292084b | ||
|
|
e0afc74cc7 | ||
|
|
b91993d6a4 | ||
|
|
40d076cce5 | ||
|
|
ef142af785 | ||
|
|
48530db50e | ||
|
|
c7fe338bfb | ||
|
|
9cd6273d52 | ||
|
|
dd12c981ef | ||
|
|
d85b395a9c |
31
.github/workflows/stale-issue-bot.yaml
vendored
Normal file
31
.github/workflows/stale-issue-bot.yaml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
# Enable the github stale issue bot tracker
|
||||
name: "Close stale issues"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 0 * * *"
|
||||
jobs:
|
||||
stale:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/stale@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
stale-issue-message: |
|
||||
Hello,
|
||||
|
||||
It looks like there hasn't been any recent updates on this
|
||||
Klipper github issue. If you created this issue and no
|
||||
longer consider it open, then please login to github and
|
||||
close the issue. Otherwise, if there is no further activity
|
||||
on this thread then it will be automatically closed in a few
|
||||
days.
|
||||
|
||||
Best regards,
|
||||
|
||||
~ Your friendly GitIssueBot
|
||||
|
||||
PS: I'm just an automated script, not a human being.
|
||||
|
||||
exempt-issue-labels: 'enhancement,bug'
|
||||
days-before-stale: 21
|
||||
days-before-close: 7
|
||||
@@ -1,5 +1,6 @@
|
||||
# This is a travis-ci.org continuous integration configuration file.
|
||||
language: c
|
||||
dist: bionic
|
||||
|
||||
addons:
|
||||
apt:
|
||||
|
||||
2
Makefile
2
Makefile
@@ -66,7 +66,7 @@ $(OUT)%.o: %.c $(OUT)autoconf.h $(OUT)board-link
|
||||
@echo " Compiling $@"
|
||||
$(Q)$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(OUT)%.ld: %.lds.S $(OUT)board-link
|
||||
$(OUT)%.ld: %.lds.S $(OUT)autoconf.h $(OUT)board-link
|
||||
@echo " Preprocessing $@"
|
||||
$(Q)$(CPP) -I$(OUT) -P -MD -MT $@ $< -o $@
|
||||
|
||||
|
||||
81
config/example-corexz.cfg
Normal file
81
config/example-corexz.cfg
Normal file
@@ -0,0 +1,81 @@
|
||||
# This file serves as documentation for config parameters of corexz
|
||||
# style printers. One may copy and edit this file to configure a new
|
||||
# corexz printer. Only parameters unique to corexz printers are
|
||||
# described here - see the "example.cfg" file for description of common
|
||||
# config parameters.
|
||||
|
||||
# DO NOT COPY THIS FILE WITHOUT CAREFULLY READING AND UPDATING IT
|
||||
# FIRST. Incorrectly configured parameters may cause damage.
|
||||
|
||||
# The stepper_x section is used to describe the X axis as well as the
|
||||
# stepper controlling the X+Z movement.
|
||||
[stepper_x]
|
||||
step_pin: ar54
|
||||
dir_pin: ar55
|
||||
enable_pin: !ar38
|
||||
step_distance: .01
|
||||
endstop_pin: ^ar3
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: ar60
|
||||
dir_pin: ar61
|
||||
enable_pin: !ar56
|
||||
step_distance: .01
|
||||
endstop_pin: ^ar14
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
# The stepper_z section is used to describe the Z axis as well as the
|
||||
# stepper controlling the X-Z movement.
|
||||
[stepper_z]
|
||||
step_pin: ar46
|
||||
dir_pin: ar48
|
||||
enable_pin: !ar62
|
||||
step_distance: .0025
|
||||
endstop_pin: ^ar18
|
||||
position_endstop: 0.5
|
||||
position_max: 200
|
||||
|
||||
[extruder]
|
||||
step_pin: ar26
|
||||
dir_pin: ar28
|
||||
enable_pin: !ar24
|
||||
step_distance: .0022
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: ar10
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: analog13
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: ar8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog14
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: ar9
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
pin_map: arduino
|
||||
|
||||
[printer]
|
||||
kinematics: corexz
|
||||
# This option must be "corexz" for corexz printers.
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 50
|
||||
max_z_accel: 30
|
||||
@@ -107,6 +107,13 @@ delta_radius: 174.75
|
||||
# axis towers. This parameter may also be calculated as:
|
||||
# delta_radius = smooth_rod_offset - effector_offset - carriage_offset
|
||||
# This parameter must be provided.
|
||||
#print_radius:
|
||||
# The radius (in mm) of valid toolhead XY coordinates. One may use
|
||||
# this setting to customize the range checking of toolhead moves. If
|
||||
# a large value is specified here then it may be possible to command
|
||||
# the toolhead into a collision with a tower. The default is to use
|
||||
# delta_radius for print_radius (which would normally prevent a
|
||||
# tower collision).
|
||||
|
||||
# The delta_calibrate section enables a DELTA_CALIBRATE extended
|
||||
# g-code command that can calibrate the tower endstop positions and
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,203 +3,71 @@
|
||||
# The snippets in this file may be copied into the main printer.cfg file.
|
||||
# See the "example.cfg" file for description of common config parameters.
|
||||
|
||||
# Available menu elements:
|
||||
# item - purely visual element
|
||||
# command - same like 'item' but with gcode trigger
|
||||
# input - same like 'command' but has value changing capabilities
|
||||
# list - menu element container, with entry and exit gcode triggers
|
||||
# vsdcard - same as 'list' but will append files from virtual sdcard
|
||||
# deck - special container for custom screens (cards) has entry and exit gcode triggers.
|
||||
# card - special content card for custom screens. Can only be used in 'deck'!
|
||||
# Available options in menu Jinja2 template context:
|
||||
# Read-only attributes for menu element:
|
||||
# menu.width - element width (number of display columns)
|
||||
# menu.ns - element namespace
|
||||
# menu.event - name of the event that triggered the script
|
||||
# menu.input - input value, only available in input script context
|
||||
# List of actions for menu element:
|
||||
# menu.back(force, update) - will execute menu back command, optional boolean parameters <force> and <update>.
|
||||
# When <force> is set True then it will also stop editing. Default value is False
|
||||
# When <update> is set False then parent container items are not updated. Default value is True
|
||||
# menu.exit(force) - will execute menu exit command, optional boolean parameter <force> default value False
|
||||
# When <force> is set True then it will also stop editing. Default value is False
|
||||
|
||||
#[menu item1]
|
||||
#type: item
|
||||
# Type will determine menu item properties and behaviours:
|
||||
# Common parameters available for all menu config sections.
|
||||
#[menu some_name]
|
||||
#type:
|
||||
# One of command, input, list, text:
|
||||
# command - basic menu element with various script triggers
|
||||
# input - same like 'command' but has value changing capabilities.
|
||||
# Press will start/stop edit mode.
|
||||
# list - it allows for menu items to be grouped together in a scrollable list.
|
||||
# Add to the list by creating menu configurations
|
||||
# using "some_list" as a prefix - for example: [menu some_list some_item_in_the_list]
|
||||
# vsdlist - same as 'list' but will append files from virtual sdcard (will be removed in the future)
|
||||
#name:
|
||||
# This is mandatory attribute for every menu element.
|
||||
# You can use Python output formatting for parameter and transform values.
|
||||
# Quotes can be used in the beginning and end of name.
|
||||
#cursor:
|
||||
# It allows to change cursor character for selected menu element.
|
||||
# The default is >
|
||||
# This parameter is optional.
|
||||
#width:
|
||||
# This attribute accepts integer value. Element name is cut to this width.
|
||||
# This parameter is optional.
|
||||
#scroll:
|
||||
# This attribute accepts static boolean value. You can use it together with 'width'.
|
||||
# When this is enabled then names longer than width are scrolled back and forth.
|
||||
# The default is disabled. This parameter is optional.
|
||||
# Name of menu item - evaluated as a template.
|
||||
#enable:
|
||||
# This attribute accepts static boolean values and parameters (converted to boolean).
|
||||
# It accepts multiple logical expressions. Values separated by comma will return True if all elements are true.
|
||||
# Values on different lines will return True if any element is true.
|
||||
# You can use logical negation by using character ! as parameter prefix.
|
||||
#parameter:
|
||||
# This attribute accepts float values or special variables. Multiple values are delimited by comma.
|
||||
# All available parameter variables can be listed by 'MENU DO=dump' gcode, menu itself must be running.
|
||||
# This value is available for output formatting as {0}..{n} Where n is count of parameters.
|
||||
#transform:
|
||||
# This attribute allows to transform parameters value to something else.
|
||||
# More than one transformation can be added. Each transformation must be on separate line.
|
||||
# These transformed values are available for output formatting as {n+1}..{x}
|
||||
# Where n is count of parameters and x is count of transformations.
|
||||
# In order to transform the value of a particular parameter, you must add
|
||||
# an parameter index as prefix. Like this "transform: 1.choose('OFF','ON')"
|
||||
# If the index is not set then the default index 0 is used.
|
||||
#
|
||||
# map(fromLow,fromHigh,toLow,toHigh) - interpolate re-maps a parameter value from one range to another.
|
||||
# Output value type is taken from toHigh. It can be int or float.
|
||||
#
|
||||
# choose(e1,e2) - boolean chooser, converts the value of the parameter to the boolean type (0 and 1),
|
||||
# and selects the corresponding value by the index from the list.
|
||||
#
|
||||
# choose(e1,e2,...) - int chooser, converts the value of the parameter to the int type
|
||||
# and selects the corresponding value by the index from the list.
|
||||
#
|
||||
# choose({key:value,..}) - special dictionary chooser, parameter value cast type by first key type.
|
||||
# Selects the corresponding value by the key from the dictionary.
|
||||
#
|
||||
# int(), float(), bool(), str(), abs(), bin(), hex(), oct(), days(), hours(), minutes(), seconds()
|
||||
# These will convert parameter value to the special form.
|
||||
# int,float,bool,str,abs,bin,hex and oct are python functions.
|
||||
# days,hours,minutes,seconds will convert parameter value (it's taken as seconds) to time specific value
|
||||
#
|
||||
# scale(xx) - Multiplies parameter value by this xx. Pure interger or float value is excpected.
|
||||
# Template that evaluates to True or False.
|
||||
#index:
|
||||
# Position where an item needs to be inserted in list
|
||||
# By default the item is added at the end. This parameter is optional.
|
||||
|
||||
|
||||
#[menu command1]
|
||||
#type:command
|
||||
#[menu some_list]
|
||||
#type: list
|
||||
#name:
|
||||
#enable:
|
||||
|
||||
#[menu some_list some_command]
|
||||
#type: command
|
||||
#name:
|
||||
#cursor:
|
||||
#width:
|
||||
#scroll:
|
||||
#enable:
|
||||
#parameter:
|
||||
#transform:
|
||||
#gcode:
|
||||
# When menu element is clicked then gcodes on this attribute will be executed.
|
||||
# Can have multiline gcode script and supports output formatting for parameter and transform values.
|
||||
#action:
|
||||
# Special action can be executed. Supports [back, exit] menu commands
|
||||
# and [respond response_info] command. Respond command will send '// response_info' to host.
|
||||
# Script to run on button click or long click. Evaluated as a template.
|
||||
|
||||
#[menu input1]
|
||||
#[menu some_list some_input]
|
||||
#type: input
|
||||
#name:
|
||||
#cursor:
|
||||
#width:
|
||||
#enable:
|
||||
#transform:
|
||||
#parameter:
|
||||
# Value from parameter (always index 0) is taken as input value when in edit mode.
|
||||
#gcode:
|
||||
# This will be triggered in realtime mode, on exit from edit mode
|
||||
# or in edit mode this will be triggered after click button long press (>0.8sec).
|
||||
#longpress_gcode:
|
||||
# In edit mode this will be triggered after click button long press (>0.8sec).
|
||||
# The default is empty. This parameter is optional.
|
||||
#reverse:
|
||||
# This attribute accepts static boolean value.
|
||||
# When enabled it will reverse increment and decrement directions for input.
|
||||
# The default is False. This parameter is optional.
|
||||
#readonly:
|
||||
# This attribute accepts same logical expression as 'enable'.
|
||||
# When true then input element is readonly like 'item' and cannot enter to edit mode.
|
||||
# The default is False. This parameter is optional.
|
||||
#input:
|
||||
# Initial value to use when editing - evaluated as a template.
|
||||
# Result must be float.
|
||||
#input_min:
|
||||
# Minimum value of range - evaluated as a template.
|
||||
# Default -99999.
|
||||
#input_max:
|
||||
# Maximum value of range - evaluated as a template.
|
||||
# Default 99999.
|
||||
#input_step:
|
||||
# Editing step - Must be a positive integer or float value.
|
||||
# It has internal fast rate step. When (input_max - input_min) / input_step > 100
|
||||
# then fast rate step is 10 * input_step else fast rate step is same input_step
|
||||
#realtime:
|
||||
# This attribute accepts static boolean value.
|
||||
# When enabled it will execute gcode after each value change.
|
||||
# The default is False. This parameter is optional.
|
||||
#input_min:
|
||||
# It accepts integer or float value. Will set minimal bound for edit value.
|
||||
# The default is 2.2250738585072014e-308. This parameter is optional.
|
||||
#input_max:
|
||||
# It accepts integer or float value. Will set maximal bound for edit value.
|
||||
# The default is 1.7976931348623157e+308. This parameter is optional.
|
||||
#input_step:
|
||||
# This is mandatory attribute for input.
|
||||
# It accepts positive integer or float value. Will determine increment
|
||||
# and decrement steps for edit value.
|
||||
#input_step2:
|
||||
# This is optional attribute for input.
|
||||
# It accepts positive integer or float value. Will determine fast rate
|
||||
# increment and decrement steps for edit value.
|
||||
# The default is 0 (input_step will be used instead)
|
||||
|
||||
#[menu list1]
|
||||
#type:list or vsdcard
|
||||
#name:
|
||||
#cursor:
|
||||
#width:
|
||||
#scroll:
|
||||
#enable:
|
||||
#enter_gcode:
|
||||
# Will trigger gcode script when entering to this menu container.
|
||||
# This parameter is optional.
|
||||
#leave_gcode:
|
||||
# Will trigger gcode script when leaving from this menu container.
|
||||
# This parameter is optional.
|
||||
#show_back:
|
||||
# This attribute accepts static boolean value.
|
||||
# Show back [..] as first element.
|
||||
# The default is True. This parameter is optional.
|
||||
#show_title:
|
||||
# This attribute accepts static boolean value.
|
||||
# Show container name next to back [..] element.
|
||||
# The default is True. This parameter is optional.
|
||||
#items:
|
||||
# Menu elements listed in this container.
|
||||
# Each element must be on separate line.
|
||||
# Elements can be grouped on same line by separating them with comma
|
||||
#
|
||||
# When element name stars with . then menu system will add parent
|
||||
# container config name as prefix to element name (delimited by space)
|
||||
|
||||
#[menu infodeck]
|
||||
#type: deck
|
||||
#name:
|
||||
#cursor:
|
||||
#width:
|
||||
#scroll:
|
||||
#enable:
|
||||
#enter_gcode
|
||||
#leave_gcode
|
||||
#longpress_menu:
|
||||
# Entry point to menu container. When this attribute is set then
|
||||
# long press > 0.8s will initiate this menu container if not in edit mode.
|
||||
# The default is disabled. This parameter is optional.
|
||||
#items:
|
||||
# It accepts only 'card' elements. You are able to switch between different card screens
|
||||
# by using encoder or up/down buttons.
|
||||
#content:
|
||||
# It allows quickly define single card decks by adding content directly to deck.
|
||||
# You have to remove deck item attribute and use named items in content.
|
||||
# The menu functionality will then internally create one card item for this deck.
|
||||
# This is optional.
|
||||
|
||||
#[menu card1]
|
||||
#type: card
|
||||
#name:
|
||||
#content:
|
||||
# Card screen content. Each line represents display line.
|
||||
# Quotes can be used in the beginning and end of line.
|
||||
# Rendered elements are available for output formatting as {0}..{x}. It's always string type.
|
||||
# It's possible directly use menu item names in content by leaving items attribute out or empty
|
||||
# and use menu items names directly in content as {msg,xpos|ypos}. The menu functionality will then
|
||||
# internally build a item list and replace names with indexes in content.
|
||||
# This is optional.
|
||||
#items:
|
||||
# List of elements in card. Each line represents a single index for content formatting.
|
||||
# It's possible to show multiple elements in one place by separating them with comma on single line.
|
||||
# If first element is integer then timed cycle is used (integer value is cycle time in seconds)
|
||||
# If no integer element then first enabled element is shown.
|
||||
# In cycler multiple elements can be grouped into one postition by separating them with |
|
||||
# This way only simple menu items can be grouped.
|
||||
# Example: 5,prt_time, prt_progress - elements prt_time and prt_progress are switched after 5s
|
||||
# Example: msg,xpos|ypos - elements xpos and ypos are grouped and showed together when msg is disabled.
|
||||
#use_cursor:
|
||||
# This attribute accepts static boolean value.
|
||||
# When enabled the menu system uses a cursor instead of blinking to visualize item selection
|
||||
# and edit mode for this card. Cursor and placeholder is always added as item name prefix.
|
||||
# When enabled then gcode script is run after each value change.
|
||||
# The default is False. This parameter is optional.
|
||||
#gcode:
|
||||
# Script to run on button click, long click or value change. Evaluated as a template.
|
||||
# The button click will trigger the edit mode start or end.
|
||||
|
||||
130
config/example-rotary-delta.cfg
Normal file
130
config/example-rotary-delta.cfg
Normal file
@@ -0,0 +1,130 @@
|
||||
# This file serves as documentation for config parameters of rotary
|
||||
# delta style printers. One may copy and edit this file to configure a
|
||||
# new delta printer. Only parameters unique to delta printers are
|
||||
# described here - see the "example.cfg" file for description of
|
||||
# common config parameters.
|
||||
|
||||
# ROTARY DELTA KINEMATICS ARE A WORK IN PROGRESS. Homing moves may
|
||||
# timeout and some boundary checks are not implemented.
|
||||
|
||||
# The stepper_a section describes the stepper controlling the rear
|
||||
# right arm (at 30 degrees). This section also controls the homing
|
||||
# parameters (homing_speed, homing_retract_dist) for all arms.
|
||||
[stepper_a]
|
||||
step_pin: ar54
|
||||
dir_pin: ar55
|
||||
enable_pin: !ar38
|
||||
step_distance: 0.001963495
|
||||
# On a rotary delta printer the step_distance is the amount each
|
||||
# step pulse moves the upper arm in radians (for example, a directly
|
||||
# connected 1.8 degree stepper with 16 micro-steps would be 2 * pi *
|
||||
# (1.8 / 360) / 16 == 0.001963495). This parameter must be provided.
|
||||
endstop_pin: ^ar2
|
||||
homing_speed: 50
|
||||
position_endstop: 252
|
||||
# Distance (in mm) between the nozzle and the bed when the nozzle is
|
||||
# in the center of the build area and the endstop triggers. This
|
||||
# parameter must be provided for stepper_a; for stepper_b and
|
||||
# stepper_c this parameter defaults to the value specified for
|
||||
# stepper_a.
|
||||
upper_arm_length: 170.000
|
||||
# Length (in mm) of the arm connecting the "shoulder joint" to the
|
||||
# "elbow joint". This parameter must be provided for stepper_a; for
|
||||
# stepper_b and stepper_c this parameter defaults to the value
|
||||
# specified for stepper_a.
|
||||
lower_arm_length: 320.000
|
||||
# Length (in mm) of the arm connecting the "elbow joint" to the
|
||||
# "effector joint". This parameter must be provided for stepper_a;
|
||||
# for stepper_b and stepper_c this parameter defaults to the value
|
||||
# specified for stepper_a.
|
||||
#angle:
|
||||
# This option specifies the angle (in degrees) that the arm is at.
|
||||
# The default is 30 for stepper_a, 150 for stepper_b, and 270 for
|
||||
# stepper_c.
|
||||
|
||||
# The stepper_b section describes the stepper controlling the rear
|
||||
# left arm (at 150 degrees).
|
||||
[stepper_b]
|
||||
step_pin: ar60
|
||||
dir_pin: ar61
|
||||
enable_pin: !ar56
|
||||
step_distance: 0.001963495
|
||||
endstop_pin: ^ar15
|
||||
|
||||
# The stepper_c section describes the stepper controlling the front
|
||||
# arm (at 270 degrees).
|
||||
[stepper_c]
|
||||
step_pin: ar46
|
||||
dir_pin: ar48
|
||||
enable_pin: !ar62
|
||||
step_distance: 0.001963495
|
||||
endstop_pin: ^ar19
|
||||
|
||||
[extruder]
|
||||
step_pin: ar26
|
||||
dir_pin: ar28
|
||||
enable_pin: !ar24
|
||||
step_distance: .0022
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: ar10
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: analog13
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: ar8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog14
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
# Print cooling fan (omit section if fan not present).
|
||||
#[fan]
|
||||
#pin: ar9
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
pin_map: arduino
|
||||
|
||||
[printer]
|
||||
kinematics: rotary_delta
|
||||
# This option must be "rotary_delta" for rotary delta printers.
|
||||
max_velocity: 300
|
||||
# Maximum velocity (in mm/s) of the toolhead relative to the
|
||||
# print. This parameter must be specified.
|
||||
max_accel: 3000
|
||||
# Maximum acceleration (in mm/s^2) of the toolhead relative to the
|
||||
# print. This parameter must be specified.
|
||||
max_z_velocity: 50
|
||||
# For delta printers this limits the maximum velocity (in mm/s) of
|
||||
# moves with z axis movement. This setting can be used to reduce the
|
||||
# maximum speed of up/down moves (which require a higher step rate
|
||||
# than other moves on a delta printer). The default is to use
|
||||
# max_velocity for max_z_velocity.
|
||||
#minimum_z_position: 0
|
||||
# The minimum Z position that the user may command the head to move
|
||||
# to. The default is 0.
|
||||
shoulder_radius: 33.900
|
||||
# Radius (in mm) of the horizontal circle formed by the three
|
||||
# shoulder joints, minus the radius of the circle formed by the
|
||||
# effector joints. This parameter may also be calculated as:
|
||||
# shoulder_radius = (delta_f - delta_e) / sqrt(12)
|
||||
# This parameter must be provided.
|
||||
shoulder_height: 412.900
|
||||
# Distance (in mm) of the shoulder joints from the bed, minus the
|
||||
# effector toolhead height. This parameter must be provided.
|
||||
|
||||
# The delta_calibrate section enables a DELTA_CALIBRATE extended
|
||||
# g-code command that can calibrate the shoulder endstop positions.
|
||||
[delta_calibrate]
|
||||
radius: 50
|
||||
#speed: 50
|
||||
#horizontal_move_z: 5
|
||||
# See example-delta.cfg for a description of these parameters.
|
||||
@@ -30,8 +30,7 @@ dir_pin: ar55
|
||||
# parameter must be provided.
|
||||
enable_pin: !ar38
|
||||
# Enable pin (default is enable high; use ! to indicate enable
|
||||
# low). Alternatively, this may be a comma separated list of pins to
|
||||
# enable. If this parameter is not provided then the stepper motor
|
||||
# low). If this parameter is not provided then the stepper motor
|
||||
# driver must always be enabled.
|
||||
step_distance: .0225
|
||||
# Distance in mm that each step causes the axis to travel. This
|
||||
@@ -56,12 +55,17 @@ position_max: 200
|
||||
# Distance to backoff (in mm) before homing a second time during
|
||||
# homing. Set this to zero to disable the second home. The default
|
||||
# is 5mm.
|
||||
#homing_retract_speed:
|
||||
# Speed to use on the retract move after homing in case this should
|
||||
# be different from the homing speed, which is the default for this
|
||||
# parameter
|
||||
#second_homing_speed:
|
||||
# Velocity (in mm/s) of the stepper when performing the second home.
|
||||
# The default is homing_speed/2.
|
||||
#homing_positive_dir:
|
||||
# If true, homing will cause the stepper to move in a positive
|
||||
# direction (away from zero); if false, home towards zero. The
|
||||
# direction (away from zero); if false, home towards zero. It is
|
||||
# better to use the default than to specify this parameter. The
|
||||
# default is true if position_endstop is near position_max and false
|
||||
# if near position_min.
|
||||
|
||||
@@ -92,8 +96,7 @@ position_max: 200
|
||||
# The extruder section is used to describe both the stepper
|
||||
# controlling the printer extruder and the heater parameters for the
|
||||
# nozzle. The stepper configuration has the same settings as the
|
||||
# stepper_x section and the heater configuration has the same settings
|
||||
# as the heater_bed section (described below).
|
||||
# stepper_x section.
|
||||
[extruder]
|
||||
step_pin: ar26
|
||||
dir_pin: ar28
|
||||
@@ -112,6 +115,9 @@ filament_diameter: 3.500
|
||||
# If a move requests an extrusion rate that would exceed this value
|
||||
# it will cause an error to be returned. The default is: 4.0 *
|
||||
# nozzle_diameter^2
|
||||
#instantaneous_corner_velocity: 1.000
|
||||
# The maximum instantaneous velocity change (in mm/s) of the
|
||||
# extruder during the junction of two moves. The default is 1mm/s.
|
||||
#max_extrude_only_distance: 50.0
|
||||
# Maximum length (in mm of raw filament) that a retraction or
|
||||
# extrude-only move may have. If a retraction or extrude-only move
|
||||
@@ -121,7 +127,7 @@ filament_diameter: 3.500
|
||||
#max_extrude_only_accel:
|
||||
# Maximum velocity (in mm/s) and acceleration (in mm/s^2) of the
|
||||
# extruder motor for retractions and extrude-only moves. These
|
||||
# settings do not place any limit on normal printing moves. If not
|
||||
# settings do not have any impact on normal printing moves. If not
|
||||
# specified then they are calculated to match the limit an XY
|
||||
# printing move with a cross section of 4.0*nozzle_diameter^2 would
|
||||
# have.
|
||||
@@ -131,13 +137,12 @@ filament_diameter: 3.500
|
||||
# during deceleration. It is measured in millimeters per
|
||||
# millimeter/second. The default is 0, which disables pressure
|
||||
# advance.
|
||||
#pressure_advance_lookahead_time: 0.010
|
||||
# A time (in seconds) to "look ahead" at future extrusion moves when
|
||||
# calculating pressure advance. This is used to reduce the
|
||||
# application of pressure advance during cornering moves that would
|
||||
# otherwise cause retraction followed immediately by pressure
|
||||
# buildup. This setting only applies if pressure_advance is
|
||||
# non-zero. The default is 0.010 (10 milliseconds).
|
||||
#pressure_advance_smooth_time: 0.040
|
||||
# A time range (in seconds) to use when calculating the average
|
||||
# extruder velocity for pressure advance. A larger value results in
|
||||
# smoother extruder movements. This parameter may not exceed 200ms.
|
||||
# This setting only applies if pressure_advance is non-zero. The
|
||||
# default is 0.040 (40 milliseconds).
|
||||
#
|
||||
# The remaining variables describe the extruder heater.
|
||||
heater_pin: ar10
|
||||
@@ -151,28 +156,24 @@ heater_pin: ar10
|
||||
# setting may be used to limit the total power output (over extended
|
||||
# periods) to the heater. The default is 1.0.
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
# Type of sensor - this may be "EPCOS 100K B57560G104F", "ATC
|
||||
# Semitec 104GT-2", "NTC 100K beta 3950", "Honeywell 100K
|
||||
# 135-104LAG-J01", "NTC 100K MGB18-104F39050L32", "AD595", "PT100
|
||||
# INA826", "MAX6675", "MAX31855", "MAX31856", or "MAX31865".
|
||||
# Additional sensor types may be available - see the
|
||||
# example-extras.cfg file for details. This parameter must be
|
||||
# Type of sensor - common thermistors are "EPCOS 100K B57560G104F",
|
||||
# "ATC Semitec 104GT-2", "NTC 100K beta 3950", "Honeywell 100K
|
||||
# 135-104LAG-J01", "NTC 100K MGB18-104F39050L32",
|
||||
# "SliceEngineering 450", and "TDK NTCG104LH104JT1". See the
|
||||
# example-extras.cfg file for other sensors. This parameter must be
|
||||
# provided.
|
||||
sensor_pin: analog13
|
||||
# Analog input pin connected to the sensor. This parameter must be
|
||||
# provided.
|
||||
#pullup_resistor: 4700
|
||||
# The resistance (in ohms) of the pullup attached to the
|
||||
# thermistor. This parameter is only valid when the sensor is a
|
||||
# thermistor. The default is 4700 ohms.
|
||||
# The resistance (in ohms) of the pullup attached to the thermistor.
|
||||
# This parameter is only valid when the sensor is a thermistor. The
|
||||
# default is 4700 ohms.
|
||||
#inline_resistor: 0
|
||||
# The resistance (in ohms) of an extra (not heat varying) resistor
|
||||
# that is placed inline with the thermistor. It is rare to set this.
|
||||
# This parameter is only valid when the sensor is a thermistor. The
|
||||
# default is 0 ohms.
|
||||
#adc_voltage: 5.0
|
||||
# The ADC comparison voltage. This parameter is only valid when the
|
||||
# sensor is an AD595 or "PT100 INA826". The default is 5 volts.
|
||||
#smooth_time: 2.0
|
||||
# A time value (in seconds) over which temperature measurements will
|
||||
# be smoothed to reduce the impact of measurement noise. The default
|
||||
@@ -192,6 +193,11 @@ pid_Kd: 114
|
||||
#pid_integral_max:
|
||||
# The maximum "windup" the integral term may accumulate. The default
|
||||
# is to use the same value as max_power.
|
||||
#max_delta: 2.0
|
||||
# On 'watermark' controlled heaters this is the number of degrees in
|
||||
# Celsius above the target temperature before disabling the heater
|
||||
# as well as the number of degrees below the target before
|
||||
# re-enabling the heater. The default is 2 degrees Celsius.
|
||||
#pwm_cycle_time: 0.100
|
||||
# Time in seconds for each software PWM cycle of the heater. It is
|
||||
# not recommended to set this unless there is an electrical
|
||||
@@ -212,17 +218,13 @@ max_temp: 210
|
||||
# error. These parameters must be provided.
|
||||
|
||||
# The heater_bed section describes a heated bed (if present - omit
|
||||
# section if not present).
|
||||
# section if not present). It uses the same heater settings described
|
||||
# in the extruder section.
|
||||
[heater_bed]
|
||||
heater_pin: ar8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog14
|
||||
control: watermark
|
||||
#max_delta: 2.0
|
||||
# On 'watermark' controlled heaters this is the number of degrees in
|
||||
# Celsius above the target temperature before disabling the heater
|
||||
# as well as the number of degrees below the target before
|
||||
# re-enabling the heater. The default is 2 degrees Celsius.
|
||||
min_temp: 0
|
||||
max_temp: 110
|
||||
|
||||
@@ -257,8 +259,9 @@ pin: ar9
|
||||
# constrained by the implementation and may be significantly
|
||||
# different than the requested cycle_time. The default is False.
|
||||
#kick_start_time: 0.100
|
||||
# Time (in seconds) to run the fan at full speed when first enabling
|
||||
# it (helps get the fan spinning). The default is 0.100 seconds.
|
||||
# Time (in seconds) to run the fan at full speed when either first
|
||||
# enabling or increasing it by more than 50% (helps get the fan
|
||||
# spinning). The default is 0.100 seconds.
|
||||
#off_below: 0.0
|
||||
# The minimum input speed which will power the fan (expressed as a
|
||||
# value from 0.0 to 1.0). When a speed lower than off_below is
|
||||
@@ -286,15 +289,16 @@ pin_map: arduino
|
||||
# default is to not enable the aliases.
|
||||
#restart_method:
|
||||
# This controls the mechanism the host will use to reset the
|
||||
# micro-controller. The choices are 'arduino', 'rpi_usb', and
|
||||
# 'command'. The 'arduino' method (toggle DTR) is common on Arduino
|
||||
# boards and clones. The 'rpi_usb' method is useful on Raspberry Pi
|
||||
# boards with micro-controllers powered over USB - it briefly
|
||||
# disables power to all USB ports to accomplish a micro-controller
|
||||
# reset. The 'command' method involves sending a Klipper command to
|
||||
# the micro-controller so that it can reset itself. The default is
|
||||
# 'arduino' if the micro-controller communicates over a serial port,
|
||||
# 'command' otherwise.
|
||||
# micro-controller. The choices are 'arduino', 'cheetah', 'rpi_usb',
|
||||
# and 'command'. The 'arduino' method (toggle DTR) is common on
|
||||
# Arduino boards and clones. The 'cheetah' method is a special
|
||||
# method needed for some Fysetc Cheetah boards. The 'rpi_usb' method
|
||||
# is useful on Raspberry Pi boards with micro-controllers powered
|
||||
# over USB - it briefly disables power to all USB ports to
|
||||
# accomplish a micro-controller reset. The 'command' method involves
|
||||
# sending a Klipper command to the micro-controller so that it can
|
||||
# reset itself. The default is 'arduino' if the micro-controller
|
||||
# communicates over a serial port, 'command' otherwise.
|
||||
|
||||
# The printer section controls high level printer settings.
|
||||
[printer]
|
||||
@@ -315,8 +319,8 @@ max_accel: 3000
|
||||
max_z_velocity: 25
|
||||
# For cartesian printers this sets the maximum velocity (in mm/s) of
|
||||
# movement along the z axis. This setting can be used to restrict
|
||||
# the maximum speed of the z stepper motor on cartesian
|
||||
# printers. The default is to use max_velocity for max_z_velocity.
|
||||
# the maximum speed of the z stepper motor on cartesian printers.
|
||||
# The default is to use max_velocity for max_z_velocity.
|
||||
max_z_accel: 30
|
||||
# For cartesian printers this sets the maximum acceleration (in
|
||||
# mm/s^2) of movement along the z axis. It limits the acceleration
|
||||
|
||||
160
config/generic-archim2.cfg
Normal file
160
config/generic-archim2.cfg
Normal file
@@ -0,0 +1,160 @@
|
||||
# This file contains common pin mappings for Ultimachine Archim2
|
||||
# boards. To use this config, the firmware should be compiled for the
|
||||
# SAM3x8e.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC6
|
||||
dir_pin: PC5
|
||||
enable_pin: !PC9
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PD4
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
[tmc2130 stepper_x]
|
||||
cs_pin: PC7
|
||||
microsteps: 16
|
||||
run_current: .5
|
||||
sense_resistor: 0.120
|
||||
diag1_pin: !PA4
|
||||
spi_software_sclk_pin: PD2
|
||||
spi_software_mosi_pin: PD3
|
||||
spi_software_miso_pin: PD1
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC12
|
||||
dir_pin: PC11
|
||||
enable_pin: !PC14
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PD6
|
||||
position_endstop: 0
|
||||
position_max: 400
|
||||
homing_speed: 50
|
||||
|
||||
[tmc2130 stepper_y]
|
||||
cs_pin: PC13
|
||||
microsteps: 16
|
||||
run_current: .5
|
||||
sense_resistor: 0.120
|
||||
diag1_pin: !PC15
|
||||
spi_software_sclk_pin: PD2
|
||||
spi_software_mosi_pin: PD3
|
||||
spi_software_miso_pin: PD1
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PC17
|
||||
dir_pin: PC16
|
||||
enable_pin: !PC19
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA7
|
||||
position_endstop: 0
|
||||
position_max: 400
|
||||
homing_speed: 50
|
||||
|
||||
[tmc2130 stepper_z]
|
||||
cs_pin: PC18
|
||||
microsteps: 16
|
||||
run_current: .5
|
||||
sense_resistor: 0.120
|
||||
diag1_pin: PC4
|
||||
spi_software_sclk_pin: PD2
|
||||
spi_software_mosi_pin: PD3
|
||||
spi_software_miso_pin: PD1
|
||||
|
||||
[extruder]
|
||||
step_pin: PB10
|
||||
dir_pin: PC10
|
||||
enable_pin: !PB22
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PC24
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PB19
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[tmc2130 extruder]
|
||||
cs_pin: PC20
|
||||
microsteps: 16
|
||||
run_current: .5
|
||||
sense_resistor: 0.120
|
||||
diag1_pin: !PB23
|
||||
spi_software_sclk_pin: PD2
|
||||
spi_software_mosi_pin: PD3
|
||||
spi_software_miso_pin: PD1
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PB26
|
||||
#dir_pin: PB24
|
||||
#enable_pin: !PA11
|
||||
#step_distance: .002
|
||||
#nozzle_diameter: 0.400
|
||||
#filament_diameter: 1.750
|
||||
#heater_pin: PC23
|
||||
#sensor_type: ATC Semitec 104GT-2
|
||||
#sensor_pin: PB18
|
||||
#control: pid
|
||||
#pid_Kp: 22.2
|
||||
#pid_Ki: 1.08
|
||||
#pid_Kd: 114
|
||||
#min_temp: 0
|
||||
#max_temp: 250
|
||||
|
||||
#[tmc2130 extruder1]
|
||||
#cs_pin: PA10
|
||||
#microsteps: 16
|
||||
#run_current: .5
|
||||
#sense_resistor: 0.120
|
||||
#diag1_pin: PD0
|
||||
#spi_software_sclk_pin: PD2
|
||||
#spi_software_mosi_pin: PD3
|
||||
#spi_software_miso_pin: PD1
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PC21
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PB20
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PC26
|
||||
|
||||
[heater_fan nozzle_cooling_fan]
|
||||
pin: PC25
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_sam3x8e_nnn
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
|
||||
########################################
|
||||
# EXP1 / EXP2 (display) pins
|
||||
########################################
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PA14, EXP1_3=PA15, EXP1_5=PA0, EXP1_7=PA1, EXP1_9=<GND>,
|
||||
EXP1_2=PA13, EXP1_4=PA12, EXP1_6=PA16, EXP1_8=PC2, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=PA25, EXP2_3=PB27, EXP2_5=PA3, EXP2_7=PB25, EXP2_9=<GND>,
|
||||
EXP2_2=PA27, EXP2_4=PA29, EXP2_6=PA26, EXP2_8=<RST>, EXP2_10=<3.3V>
|
||||
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi0"
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
331
config/generic-bigtreetech-gtr.cfg
Normal file
331
config/generic-bigtreetech-gtr.cfg
Normal file
@@ -0,0 +1,331 @@
|
||||
# This file contains common pin mappings for the BigTreeTech GTR.
|
||||
# To use this config, the firmware should be compiled for the
|
||||
# STM32F407 with a "32KiB bootloader".
|
||||
|
||||
# The "make flash" command does not work on the GTR. Instead,
|
||||
# after running "make", copy the generated "klipper/out/klipper.bin" file to a
|
||||
# file named "firmware.bin" on an SD card and then restart the GTR
|
||||
# with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC15
|
||||
dir_pin: PF0
|
||||
enable_pin: !PF1
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!PF2
|
||||
position_endstop: 0
|
||||
position_max: 220
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PE3
|
||||
dir_pin: PE2
|
||||
enable_pin: !PE4
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!PC13
|
||||
position_endstop: 0
|
||||
position_max: 250
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB8
|
||||
dir_pin: PB7
|
||||
enable_pin: !PB9
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PE0
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 12
|
||||
second_homing_speed: 1
|
||||
|
||||
[extruder]
|
||||
step_pin: PG12
|
||||
dir_pin: PG11
|
||||
enable_pin: !PG13
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PB1 # Heat0
|
||||
sensor_pin: PC1 # T0 Header
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 290
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PD6
|
||||
#dir_pin: PD5
|
||||
#enable_pin: !PD7
|
||||
#heater_pin: PA1 # Heat1
|
||||
#sensor_pin: PC2 # T1
|
||||
#...
|
||||
|
||||
#[extruder2]
|
||||
#step_pin: PD1
|
||||
#dir_pin: PD0
|
||||
#enable_pin: !PD2
|
||||
#heater_pin: PB0 # Heat2
|
||||
#sensor_pin: PC3 # T2
|
||||
#...
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA2
|
||||
sensor_pin: PC0 # BED
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PE5 # FAN0
|
||||
|
||||
[heater_fan fan1]
|
||||
pin: PE6 # FAN1
|
||||
|
||||
#[heater_fan fan2]
|
||||
#pin: PC8 # FAN2
|
||||
|
||||
[mcu]
|
||||
baud: 250000
|
||||
restart_method: command
|
||||
serial: dev/serial0
|
||||
# setup for PA9, PA10 USART1_tx / rx directly connected to the RPI GPIO TX / RX pins
|
||||
# These are the pins the GTR uses for its built in RPI 40 pin connector
|
||||
# only connect GND, TX, RX - supply 5v power to the RPI separately
|
||||
# do not cross over TX/RX - it is done internally on the GTR PCB.
|
||||
# Use "sudo raspi-config" to disable the serial terminal - but enable the serial port.
|
||||
# When running "make menuconfig" you must un-select the USB Serial check box
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 500
|
||||
max_accel: 3000
|
||||
max_z_velocity: 12
|
||||
max_z_accel: 5
|
||||
|
||||
########################################
|
||||
# TMC2208 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2208 stepper_x]
|
||||
#uart_pin: PC14
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_y]
|
||||
#uart_pin: PE1
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_z]
|
||||
#uart_pin: PB5
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
|
||||
#[tmc2208 extruder]
|
||||
#uart_pin: PG10
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder1]
|
||||
#uart_pin: PD4
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder2]
|
||||
#uart_pin: PC12
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2130 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2130 stepper_x]
|
||||
#cs_pin: PC14
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc2130 stepper_y]
|
||||
#cs_pin: PE1
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc2130 stepper_z]
|
||||
#cs_pin: PB5
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc2130 extruder]
|
||||
#cs_pin: PG10
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc2130 extruder1]
|
||||
#cs_pin: PD4
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc2130 extruder2]
|
||||
#cs_pin: PC12
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
########################################
|
||||
# TMC5160 configuration
|
||||
########################################
|
||||
|
||||
#[tmc5160 stepper_x]
|
||||
#cs_pin: PC14
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#interpolate: True
|
||||
#run_current: 1
|
||||
#hold_current: 1
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc5160 stepper_y]
|
||||
#cs_pin: PE1
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#interpolate: True
|
||||
#run_current: 1
|
||||
#hold_current: 1
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc5160 stepper_z]
|
||||
#cs_pin: PB5
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#interpolate: True
|
||||
#run_current: 0.4
|
||||
#hold_current: 0.4
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc5160 extruder]
|
||||
#cs_pin: PG10
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#interpolate: True
|
||||
#run_current: 0.5
|
||||
#hold_current: 0.5
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc5160 extruder1]
|
||||
#cs_pin: PD4
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#interpolate: True
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
#[tmc5160 extruder2]
|
||||
#cs_pin: PC12
|
||||
#microsteps: 16
|
||||
#sense_resistor: 0.075
|
||||
#interpolate: True
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 0
|
||||
#spi_software_mosi_pin: PG15
|
||||
#spi_software_miso_pin: PB6
|
||||
#spi_software_sclk_pin: PB3
|
||||
|
||||
########################################
|
||||
# EXP1 / EXP2 (display) pins
|
||||
########################################
|
||||
|
||||
# display section not tested - pinout should be correct but my LCD did not work yet
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PC11, EXP1_3=PC10, EXP1_5=PG8, EXP1_7=PG6, EXP1_9=<GND>,
|
||||
EXP1_2=PA15, EXP1_4=PA8, EXP1_6=PG7, EXP1_8=PG5, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=PB14, EXP2_3=PD10, EXP2_5=PH10, EXP2_7=PB10, EXP2_9=<GND>,
|
||||
EXP2_2=PB13, EXP2_4=PB12, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<NC>
|
||||
# not sure on this: Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi2"
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
|
||||
#[display]
|
||||
#lcd_type: st7920
|
||||
#cs_pin: EXP1_4
|
||||
#sclk_pin: EXP1_5
|
||||
#sid_pin: EXP1_3
|
||||
#encoder_pins: ^EXP2_5, ^EXP2_3
|
||||
#click_pin: ^!EXP1_2
|
||||
#kill_pin: ^!EXP2_8
|
||||
|
||||
#[output_pin beeper]
|
||||
#pin: EXP1_1
|
||||
168
config/generic-bigtreetech-skr-e3-dip.cfg
Normal file
168
config/generic-bigtreetech-skr-e3-dip.cfg
Normal file
@@ -0,0 +1,168 @@
|
||||
# This file contains common pin mappings for the BIGTREETECH SKR E3
|
||||
# DIP. To use this config, the firmware should be compiled for the
|
||||
# STM32F103 with a "28KiB bootloader". Also, select "Enable extra
|
||||
# low-level configuration options" and configure "GPIO pins to set at
|
||||
# micro-controller startup" to "!PC13".
|
||||
|
||||
# The "make flash" command does not work on the SKR E3 DIP. Instead,
|
||||
# after running "make", copy the generated "out/klipper.bin" file to a
|
||||
# file named "firmware.bin" on an SD card and then restart the SKR E3
|
||||
# DIP with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC6
|
||||
dir_pin: !PB15
|
||||
enable_pin: !PC7
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC1
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB13
|
||||
dir_pin: !PB12
|
||||
enable_pin: !PB14
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC0
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB10
|
||||
dir_pin: PB2
|
||||
enable_pin: !PB11
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PC15
|
||||
position_endstop: 0.0
|
||||
position_max: 250
|
||||
|
||||
[extruder]
|
||||
step_pin: PB0
|
||||
dir_pin: !PC5
|
||||
enable_pin: !PB1
|
||||
step_distance: 0.010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PC8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA0
|
||||
control: pid
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PC9
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PC3
|
||||
control: pid
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA8
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[static_digital_output usb_pullup_enable]
|
||||
pins: !PC13
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2208 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2208 stepper_x]
|
||||
#uart_pin: PC10
|
||||
#microsteps: 16
|
||||
#run_current: 0.580
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_y]
|
||||
#uart_pin: PC11
|
||||
#microsteps: 16
|
||||
#run_current: 0.580
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_z]
|
||||
#uart_pin: PC12
|
||||
#microsteps: 16
|
||||
#run_current: 0.580
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 30
|
||||
|
||||
#[tmc2208 extruder]
|
||||
#uart_pin: PD2
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2130 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2130 stepper_x]
|
||||
#cs_pin: PC10
|
||||
#spi_bus: spi3
|
||||
#microsteps: 16
|
||||
#run_current: 0.580
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_y]
|
||||
#cs_pin: PC11
|
||||
#spi_bus: spi3
|
||||
#microsteps: 16
|
||||
#run_current: 0.580
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_z]
|
||||
#cs_pin: PC12
|
||||
#spi_bus: spi3
|
||||
#microsteps: 16
|
||||
#run_current: 0.580
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
|
||||
#[tmc2130 extruder]
|
||||
#cs_pin: PD2
|
||||
#spi_bus: spi3
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# EXP1 (display) pins
|
||||
########################################
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PA15, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
|
||||
EXP1_2=PB6, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB7, EXP1_10=<5V>
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
@@ -43,7 +43,7 @@ homing_speed: 50
|
||||
[tmc2209 stepper_y]
|
||||
uart_pin: PC11
|
||||
tx_pin: PC10
|
||||
uart_address: 1
|
||||
uart_address: 2
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
@@ -61,7 +61,7 @@ position_max: 250
|
||||
[tmc2209 stepper_z]
|
||||
uart_pin: PC11
|
||||
tx_pin: PC10
|
||||
uart_address: 2
|
||||
uart_address: 1
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
121
config/generic-bigtreetech-skr-mini-e3-v1.2.cfg
Normal file
121
config/generic-bigtreetech-skr-mini-e3-v1.2.cfg
Normal file
@@ -0,0 +1,121 @@
|
||||
# This file contains common pin mappings for the BIGTREETECH SKR mini
|
||||
# E3 v1.2. To use this config, the firmware should be compiled for the
|
||||
# STM32F103 with a "28KiB bootloader". Also, select "Enable extra
|
||||
# low-level configuration options" and configure "GPIO pins to set at
|
||||
# micro-controller startup" to "!PC13".
|
||||
|
||||
# The "make flash" command does not work on the SKR mini E3. Instead,
|
||||
# after running "make", copy the generated "out/klipper.bin" file to a
|
||||
# file named "firmware.bin" on an SD card and then restart the SKR
|
||||
# mini E3 with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PB13
|
||||
dir_pin: !PB12
|
||||
enable_pin: !PB14
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC0
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[tmc2209 stepper_x]
|
||||
uart_pin: PB15
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB10
|
||||
dir_pin: !PB2
|
||||
enable_pin: !PB11
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC1
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[tmc2209 stepper_y]
|
||||
uart_pin: PC6
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB0
|
||||
dir_pin: PC5
|
||||
enable_pin: !PB1
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PC2
|
||||
position_endstop: 0.0
|
||||
position_max: 250
|
||||
|
||||
[tmc2209 stepper_z]
|
||||
uart_pin: PC10
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 5
|
||||
|
||||
[extruder]
|
||||
step_pin: PB3
|
||||
dir_pin: !PB4
|
||||
enable_pin: !PD2
|
||||
step_distance: 0.010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PC8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA0
|
||||
control: pid
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[tmc2209 extruder]
|
||||
uart_pin: PC11
|
||||
microsteps: 16
|
||||
run_current: 0.650
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 5
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PC9
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PC3
|
||||
control: pid
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA8
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[static_digital_output usb_pullup_enable]
|
||||
pins: !PC13
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
|
||||
EXP1_2=PB6, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB7, EXP1_10=<5V>
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
132
config/generic-bigtreetech-skr-mini-e3-v2.0.cfg
Normal file
132
config/generic-bigtreetech-skr-mini-e3-v2.0.cfg
Normal file
@@ -0,0 +1,132 @@
|
||||
# This file contains common pin mappings for the BIGTREETECH SKR mini
|
||||
# E3 v2.0. To use this config, the firmware should be compiled for the
|
||||
# STM32F103 with a "28KiB bootloader". Also, select "Enable extra
|
||||
# low-level configuration options" and configure "GPIO pins to set at
|
||||
# micro-controller startup" to "!PA14".
|
||||
|
||||
# The "make flash" command does not work on the SKR mini E3. Instead,
|
||||
# after running "make", copy the generated "out/klipper.bin" file to a
|
||||
# file named "firmware.bin" on an SD card and then restart the SKR
|
||||
# mini E3 with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PB13
|
||||
dir_pin: !PB12
|
||||
enable_pin: !PB14
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC0
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[tmc2209 stepper_x]
|
||||
uart_pin: PC11
|
||||
tx_pin: PC10
|
||||
uart_address: 0
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB10
|
||||
dir_pin: !PB2
|
||||
enable_pin: !PB11
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC1
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[tmc2209 stepper_y]
|
||||
uart_pin: PC11
|
||||
tx_pin: PC10
|
||||
uart_address: 2
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB0
|
||||
dir_pin: PC5
|
||||
enable_pin: !PB1
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PC2
|
||||
position_endstop: 0.0
|
||||
position_max: 250
|
||||
|
||||
[tmc2209 stepper_z]
|
||||
uart_pin: PC11
|
||||
tx_pin: PC10
|
||||
uart_address: 1
|
||||
microsteps: 16
|
||||
run_current: 0.580
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 5
|
||||
|
||||
[extruder]
|
||||
step_pin: PB3
|
||||
dir_pin: !PB4
|
||||
enable_pin: !PD2
|
||||
step_distance: 0.010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PC8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA0
|
||||
control: pid
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[tmc2209 extruder]
|
||||
uart_pin: PC11
|
||||
tx_pin: PC10
|
||||
uart_address: 3
|
||||
microsteps: 16
|
||||
run_current: 0.650
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 5
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PC9
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PC3
|
||||
control: pid
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[heater_fan nozzle_cooling_fan]
|
||||
pin: PC7
|
||||
|
||||
[fan]
|
||||
pin: PC6
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[static_digital_output usb_pullup_enable]
|
||||
pins: !PA14
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
|
||||
EXP1_2=PA15, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PB15, EXP1_10=<5V>
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
@@ -46,7 +46,7 @@ step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PB1 # Heat0
|
||||
sensor_pin: PF3 # T0 Header
|
||||
sensor_pin: PF4 # T1 Header
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
@@ -60,7 +60,7 @@ max_temp: 250
|
||||
#dir_pin: PE7
|
||||
#enable_pin: !PA3
|
||||
#heater_pin: PD14 # Heat1
|
||||
#sensor_pin: PF4 # T1
|
||||
#sensor_pin: PF5 # T2
|
||||
#...
|
||||
|
||||
#[extruder2]
|
||||
@@ -68,12 +68,12 @@ max_temp: 250
|
||||
#dir_pin: PG9
|
||||
#enable_pin: !PF0
|
||||
#heater_pin: PB0 # Heat2
|
||||
#sensor_pin: PF5 # T2
|
||||
#sensor_pin: PF6 # T3
|
||||
#...
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PD12
|
||||
sensor_pin: PF6 # T3
|
||||
sensor_pin: PF3 # T0
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
|
||||
200
config/generic-bigtreetech-skr-v1.4.cfg
Normal file
200
config/generic-bigtreetech-skr-v1.4.cfg
Normal file
@@ -0,0 +1,200 @@
|
||||
# This file contains common pin mappings for the BIGTREETECH SKR V1.4
|
||||
# board. To use this config, the firmware should be compiled for the
|
||||
# LPC1768 or LPC1769(Turbo).
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: P2.2
|
||||
dir_pin: P2.6
|
||||
enable_pin: !P2.1
|
||||
step_distance: .0125
|
||||
endstop_pin: !P1.29
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: P0.19
|
||||
dir_pin: P0.20
|
||||
enable_pin: !P2.8
|
||||
step_distance: .0125
|
||||
endstop_pin: !P1.28
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: P0.22
|
||||
dir_pin: !P2.11
|
||||
enable_pin: !P0.21
|
||||
step_distance: .0025
|
||||
endstop_pin: !P1.27
|
||||
position_endstop: 0.0
|
||||
position_max: 300
|
||||
|
||||
[extruder]
|
||||
step_pin: P2.13
|
||||
dir_pin: !P0.11
|
||||
enable_pin: !P2.12
|
||||
step_distance: .010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: P2.7
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: P0.24
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 260
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: P1.15
|
||||
#dir_pin: P1.14
|
||||
#enable_pin: !P1.16
|
||||
#heater_pin: P2.4
|
||||
#sensor_pin: P0.23
|
||||
#...
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: P2.5
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: P0.25
|
||||
control: pid
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: P2.3
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 400
|
||||
max_accel: 500
|
||||
max_z_velocity: 10
|
||||
max_z_accel: 100
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2208 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2208 stepper_x]
|
||||
#uart_pin: P1.10
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
#
|
||||
#[tmc2208 stepper_y]
|
||||
#uart_pin: P1.9
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
#
|
||||
#[tmc2208 stepper_z]
|
||||
#uart_pin: P1.8
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
#
|
||||
#[tmc2208 extruder]
|
||||
#uart_pin: P1.4
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
#
|
||||
#[tmc2208 extruder1]
|
||||
#uart_pin: P1.1
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2130 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2130 stepper_x]
|
||||
#cs_pin: P1.10
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P1.17
|
||||
#spi_software_sclk_pin: P0.4
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
#diag1_pin: P1.29
|
||||
|
||||
#[tmc2130 stepper_y]
|
||||
#cs_pin: P1.9
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P1.17
|
||||
#spi_software_sclk_pin: P0.4
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
#diag1_pin: P1.28
|
||||
|
||||
#[tmc2130 stepper_z]
|
||||
#cs_pin: P1.8
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P1.17
|
||||
#spi_software_sclk_pin: P0.4
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
#diag1_pin: P1.27
|
||||
|
||||
#[tmc2130 extruder]
|
||||
#cs_pin: P1.4
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P1.17
|
||||
#spi_software_sclk_pin: P0.4
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
#diag1_pin: P1.26
|
||||
|
||||
#[tmc2130 extruder1]
|
||||
#cs_pin: P1.1
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P1.17
|
||||
#spi_software_sclk_pin: P0.4
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
#diag1_pin: P1.25
|
||||
|
||||
|
||||
########################################
|
||||
# EXP1 / EXP2 (display) pins
|
||||
########################################
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=P1.30, EXP1_3=P1.18, EXP1_5=P1.20, EXP1_7=P1.22, EXP1_9=<GND>,
|
||||
EXP1_2=P0.28, EXP1_4=P1.19, EXP1_6=P1.21, EXP1_8=P1.23, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=P0.17, EXP2_3=P3.26, EXP2_5=P3.25, EXP2_7=P1.31, EXP2_9=<GND>,
|
||||
EXP2_2=P0.15, EXP2_4=P0.16, EXP2_6=P0.18, EXP2_8=<RST>, EXP2_10=<NC>
|
||||
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp0"
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
88
config/generic-creality-v4.2.7.cfg
Normal file
88
config/generic-creality-v4.2.7.cfg
Normal file
@@ -0,0 +1,88 @@
|
||||
# This file contains pin mappings for the Creality "v4.2.7" board. To
|
||||
# use this config, during "make menuconfig" select the STM32F103 with
|
||||
# a "28KiB bootloader" and with "Use USB for communication" disabled.
|
||||
|
||||
# If you prefer a direct serial connection, in "make menuconfig"
|
||||
# select "Enable extra low-level configuration options" and select the
|
||||
# USART3 serial port, which is broken out on the 10 pin IDC cable used
|
||||
# for the LCD module as follows:
|
||||
# 3: Tx, 4: Rx, 9: GND, 10: VCC
|
||||
|
||||
# Flash this firmware by copying "out/klipper.bin" to a SD card and
|
||||
# turning on the printer with the card inserted. The firmware
|
||||
# filename must end in ".bin" and must not match the last filename
|
||||
# that was flashed.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PB9
|
||||
dir_pin: PC2
|
||||
enable_pin: !PC3
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA5
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB7
|
||||
dir_pin: PB8
|
||||
enable_pin: !PC3
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA6
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB5
|
||||
dir_pin: !PB6
|
||||
enable_pin: !PC3
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PA7
|
||||
position_endstop: 0.0
|
||||
position_max: 250
|
||||
|
||||
[extruder]
|
||||
max_extrude_only_distance: 100.0
|
||||
step_pin: PB3
|
||||
dir_pin: PB4
|
||||
enable_pin: !PC3
|
||||
step_distance: 0.010752
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PA1
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC5
|
||||
control: pid
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA2
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC4
|
||||
control: pid
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA0
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
@@ -86,7 +86,7 @@
|
||||
[stepper_x]
|
||||
step_pin: PD6
|
||||
dir_pin: PD11
|
||||
enable_pin: !PC6, tmc2660_stepper_x:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC14
|
||||
position_endstop: 0
|
||||
@@ -104,7 +104,7 @@ idle_current_percent: 20
|
||||
[stepper_y]
|
||||
step_pin: PD7
|
||||
dir_pin: !PD12
|
||||
enable_pin: !PC6, tmc2660_stepper_y:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA2
|
||||
position_endstop: 0
|
||||
@@ -122,7 +122,7 @@ idle_current_percent: 20
|
||||
[stepper_z]
|
||||
step_pin: PD8
|
||||
dir_pin: PD13
|
||||
enable_pin: !PC6, tmc2660_stepper_z:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PD29
|
||||
position_endstop: 0.5
|
||||
@@ -140,7 +140,7 @@ sense_resistor: 0.051
|
||||
[stepper_z1]
|
||||
step_pin: PD0
|
||||
dir_pin: PD16
|
||||
enable_pin: !PC6, tmc2660_stepper_z1:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0025
|
||||
|
||||
[tmc2660 stepper_z1]
|
||||
@@ -155,7 +155,7 @@ sense_resistor: 0.051
|
||||
[stepper_z2]
|
||||
step_pin: PD3
|
||||
dir_pin: !PD17
|
||||
enable_pin: !PC6, tmc2660_stepper_z2:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0025
|
||||
|
||||
[tmc2660 stepper_z2]
|
||||
@@ -170,7 +170,7 @@ sense_resistor: 0.051
|
||||
[stepper_z3]
|
||||
step_pin: PD27
|
||||
dir_pin: !PC0
|
||||
enable_pin: !PC6, tmc2660_stepper_z3:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0025
|
||||
|
||||
[tmc2660 stepper_z3]
|
||||
@@ -182,10 +182,10 @@ run_current: 1.000
|
||||
sense_resistor: 0.051
|
||||
|
||||
#On drive E0
|
||||
[extruder0]
|
||||
[extruder]
|
||||
step_pin: PD5
|
||||
dir_pin: PA1
|
||||
enable_pin: !PC6, tmc2660_extruder0:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
@@ -199,7 +199,7 @@ pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[tmc2660 extruder0]
|
||||
[tmc2660 extruder]
|
||||
cs_pin: PC17
|
||||
spi_bus: usart1
|
||||
microsteps: 16
|
||||
@@ -211,7 +211,7 @@ sense_resistor: 0.051
|
||||
[extruder1]
|
||||
step_pin: PD4
|
||||
dir_pin: PD9
|
||||
enable_pin: !PC6, tmc2660_extruder1:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
@@ -237,7 +237,7 @@ sense_resistor: 0.051
|
||||
[extruder2]
|
||||
step_pin: PD2
|
||||
dir_pin: !PD28
|
||||
enable_pin: !PC6, tmc2660_extruder2:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
@@ -263,7 +263,7 @@ sense_resistor: 0.051
|
||||
[extruder3]
|
||||
step_pin: PD1
|
||||
dir_pin: !PD22
|
||||
enable_pin: !PC6, tmc2660_extruder3:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
@@ -297,10 +297,10 @@ max_temp: 130
|
||||
[fan]
|
||||
pin: PC23
|
||||
|
||||
# Fan1 controlled by extruder0
|
||||
# Fan1 controlled by extruder
|
||||
[heater_fan nozzle_cooling_fan]
|
||||
pin: PC26
|
||||
heater: extruder0
|
||||
heater: extruder
|
||||
heater_temp: 45
|
||||
fan_speed: 1.0
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
[stepper_x]
|
||||
step_pin: PC20
|
||||
dir_pin: PC18
|
||||
enable_pin: !PA1, tmc2208_stepper_x:virtual_enable
|
||||
enable_pin: !PA1
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA24
|
||||
position_endstop: 0
|
||||
@@ -25,7 +25,7 @@ stealthchop_threshold: 250
|
||||
[stepper_y]
|
||||
step_pin: PC2
|
||||
dir_pin: PA8
|
||||
enable_pin: !PA1, tmc2208_stepper_y:virtual_enable
|
||||
enable_pin: !PA1
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PB6
|
||||
position_endstop: 0
|
||||
@@ -44,7 +44,7 @@ stealthchop_threshold: 250
|
||||
[stepper_z]
|
||||
step_pin: PC28
|
||||
dir_pin: PB4
|
||||
enable_pin: !PA1, tmc2208_stepper_z:virtual_enable
|
||||
enable_pin: !PA1
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PC10
|
||||
position_endstop: 0.5
|
||||
@@ -59,16 +59,22 @@ microsteps: 16
|
||||
run_current: 0.800
|
||||
stealthchop_threshold: 30
|
||||
|
||||
# Support analog sensor adjustments using VREF/VSSA pins
|
||||
[adc_scaled vref_scaled]
|
||||
vref_pin: PA17
|
||||
vssa_pin: PA19
|
||||
|
||||
[extruder]
|
||||
step_pin: PC4
|
||||
dir_pin: PB7
|
||||
enable_pin: !PA1, tmc2208_extruder:virtual_enable
|
||||
enable_pin: !PA1
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: !PC1
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PB0
|
||||
pullup_resistor: 2200
|
||||
sensor_pin: vref_scaled:PB0
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
@@ -91,6 +97,7 @@ stealthchop_threshold: 5
|
||||
#enable_pin: !PA1
|
||||
#heater_pin: !PA16
|
||||
#sensor_pin: PC30
|
||||
#pullup_resistor: 2200
|
||||
#...
|
||||
#[tmc2208 extruder1]
|
||||
#select_pins: !PC14, !PC16, PC17
|
||||
@@ -107,7 +114,8 @@ stealthchop_threshold: 5
|
||||
[heater_bed]
|
||||
heater_pin: !PC0
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA20
|
||||
pullup_resistor: 2200
|
||||
sensor_pin: vref_scaled:PA20
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
@@ -121,6 +129,11 @@ pin: PC23 # FAN0
|
||||
#[heater_fan board_cooling_fan]
|
||||
#pin: PC29 # FAN2
|
||||
|
||||
#[bltouch]
|
||||
#sensor_pin: PC15 # Z_PROBE_IN
|
||||
#control_pin: PC26 # Z_PROBE_MOD
|
||||
#...
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
@@ -132,7 +145,7 @@ max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[static_digital_output led]
|
||||
pins: !PC26
|
||||
pins: !PC26 # Z_PROBE_MOD / SERVO pin
|
||||
|
||||
# EXP1 / EXP2 (display) pins
|
||||
[board_pins]
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
[stepper_x]
|
||||
step_pin: PD6
|
||||
dir_pin: PD11
|
||||
enable_pin: !PC6, tmc2660_stepper_x:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PC14
|
||||
position_endstop: 0
|
||||
@@ -22,7 +22,7 @@ sense_resistor: 0.051
|
||||
[stepper_y]
|
||||
step_pin: PD7
|
||||
dir_pin: !PD12
|
||||
enable_pin: !PC6, tmc2660_stepper_y:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA2
|
||||
position_endstop: 0
|
||||
@@ -38,7 +38,7 @@ sense_resistor: 0.051
|
||||
[stepper_z]
|
||||
step_pin: PD8
|
||||
dir_pin: PD13
|
||||
enable_pin: !PC6, tmc2660_stepper_z:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PD29
|
||||
#endstop_pin: PD10 # E0 endstop
|
||||
@@ -56,7 +56,7 @@ sense_resistor: 0.051
|
||||
[extruder]
|
||||
step_pin: PD5
|
||||
dir_pin: PA1
|
||||
enable_pin: !PC6, tmc2660_extruder:virtual_enable
|
||||
enable_pin: !PC6
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
@@ -80,7 +80,7 @@ sense_resistor: 0.051
|
||||
#[extruder1]
|
||||
#step_pin: PD4
|
||||
#dir_pin: PD9
|
||||
#enable_pin: !PC6, tmc2660_extruder1:virtual_enable
|
||||
#enable_pin: !PC6
|
||||
#heater_pin: !PA16
|
||||
#sensor_pin: PC12
|
||||
#...
|
||||
|
||||
@@ -92,6 +92,12 @@ pin: PH5
|
||||
#[heater_fan nozzle_cooling_fan]
|
||||
#pin: PH3
|
||||
|
||||
[temperature_sensor board_sensor]
|
||||
sensor_pin: PF6
|
||||
sensor_type: TDK NTCG104LH104JT1
|
||||
min_temp: 0
|
||||
max_temp: 50
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
|
||||
|
||||
295
config/generic-flyboard.cfg
Normal file
295
config/generic-flyboard.cfg
Normal file
@@ -0,0 +1,295 @@
|
||||
# This file contains common pin mappings for the 9 stepper motor
|
||||
# "flymaker flyboard FLYF407ZG" board from creative3dprinter.com. To
|
||||
# use this config, the firmware should be compiled for the STM32F407
|
||||
# with a "32KiB bootloader".
|
||||
|
||||
# The "make flash" command does not work on the FLYBOARD. Instead,
|
||||
# after running "make", copy the generated "out/klipper.bin" file to a
|
||||
# file named "firmware.bin" on an SD card and then restart the FLYBOARD
|
||||
# with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PB9
|
||||
dir_pin: PE0
|
||||
enable_pin: !PE1
|
||||
step_distance: .0025
|
||||
endstop_pin: PC3
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB8
|
||||
dir_pin: PG11
|
||||
enable_pin: !PG12
|
||||
step_distance: .0025
|
||||
endstop_pin: PF2
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PA8
|
||||
dir_pin: PD6
|
||||
enable_pin: !PD7
|
||||
step_distance: .0125
|
||||
endstop_pin: PF0
|
||||
position_endstop: 0.5
|
||||
position_max: 200
|
||||
|
||||
[extruder]
|
||||
step_pin: PC7
|
||||
dir_pin: PD3
|
||||
enable_pin: !PD4
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PF7 # Heat0
|
||||
sensor_pin: PA0 # T1 Header
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 350
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PC6
|
||||
#dir_pin: PA15
|
||||
#enable_pin: !PD0
|
||||
#heater_pin: PF6 # Heat1
|
||||
#sensor_pin: PC1 # T2
|
||||
#...
|
||||
|
||||
#[extruder2]
|
||||
#step_pin: PD15
|
||||
#dir_pin: PG7
|
||||
#enable_pin: !PG8
|
||||
#heater_pin: PE6 # Heat2
|
||||
#sensor_pin: PC0 # T3
|
||||
#...
|
||||
|
||||
#[extruder3]
|
||||
#step_pin: PD14
|
||||
#dir_pin: PG4
|
||||
#enable_pin: !PG5
|
||||
#heater_pin: PE5 # Heat3
|
||||
#sensor_pin: PF10 # T4
|
||||
#...
|
||||
|
||||
#[extruder4]
|
||||
#step_pin: PD13
|
||||
#dir_pin: PD11
|
||||
#enable_pin: !PG2
|
||||
#heater_pin: PE4 # Heat4
|
||||
#sensor_pin: PF5 # T5
|
||||
#...
|
||||
|
||||
#[extruder4]
|
||||
#step_pin: PD12
|
||||
#dir_pin: PD8
|
||||
#enable_pin: !PD9
|
||||
#heater_pin: PE3 # Heat5
|
||||
#sensor_pin: PF4 # T6
|
||||
#...
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PE2
|
||||
sensor_pin: PF3 # T0
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 200
|
||||
|
||||
[fan]
|
||||
pin: PF8
|
||||
|
||||
[heater_fan fan1]
|
||||
pin: PF9
|
||||
|
||||
#[heater_fan fan2]
|
||||
#pin: PA2
|
||||
|
||||
#[heater_fan fan3]
|
||||
#pin: PA1
|
||||
|
||||
#[heater_fan fan4]
|
||||
#pin: PE13
|
||||
|
||||
#[heater_fan fan5]
|
||||
#pin: PB11
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
[printer]
|
||||
kinematics: corexy
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2208 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2208 stepper_x]
|
||||
#uart_pin: PG13
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_y]
|
||||
#uart_pin: PG10
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_z]
|
||||
#uart_pin: PD5
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
|
||||
#[tmc2208 extruder]
|
||||
#uart_pin: PD1
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder1]
|
||||
#uart_pin: PA14
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder2]
|
||||
#uart_pin: PG6
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder3]
|
||||
#uart_pin: PG3
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder4]
|
||||
#uart_pin: PD10
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder5]
|
||||
#uart_pin: PB12
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2130 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2130 stepper_x]
|
||||
#cs_pin: PG13
|
||||
##diag1_pin: PC3
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_y]
|
||||
#cs_pin: PG10
|
||||
##diag1_pin: PF2
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_z]
|
||||
#cs_pin: PBD5
|
||||
##diag1_pin: PF0
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
|
||||
#[tmc2130 extruder]
|
||||
#cs_pin: PD1
|
||||
##diag1_pin: PE15
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2130 extruder1]
|
||||
#cs_pin: PA14
|
||||
##diag1_pin: PE10
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2130 extruder2]
|
||||
#cs_pin: PG6
|
||||
##diag1_pin: PC15
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2130 extruder3]
|
||||
#cs_pin: PG3
|
||||
##diag1_pin: PC15
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2130 extruder4]
|
||||
#cs_pin: PD10
|
||||
##diag1_pin: PC15
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2130 extruder5]
|
||||
#cs_pin: PB12
|
||||
##diag1_pin: PC15
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# EXP1 / EXP2 (display) pins
|
||||
########################################
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PB10, EXP1_3=PE14, EXP1_5=PE10, EXP1_7=PE8, EXP1_9=<GND>,
|
||||
EXP1_2=PE15, EXP1_4=PE12, EXP1_6=PE9, EXP1_8=PE7, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=PB14, EXP2_3=PC5, EXP2_5=PC4, EXP2_7=PB2, EXP2_9=<GND>,
|
||||
EXP2_2=PB13, EXP2_4=PF11, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<GND>
|
||||
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi2"
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
@@ -41,7 +41,7 @@ homing_speed: 50
|
||||
[tmc2209 stepper_y]
|
||||
uart_pin: PA3
|
||||
tx_pin: PA2
|
||||
uart_address: 1
|
||||
uart_address: 2
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.500
|
||||
@@ -59,7 +59,7 @@ position_max: 200
|
||||
[tmc2209 stepper_z]
|
||||
uart_pin: PA3
|
||||
tx_pin: PA2
|
||||
uart_address: 2
|
||||
uart_address: 1
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.500
|
||||
@@ -107,6 +107,7 @@ pin: PC8
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
|
||||
restart_method: cheetah
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
|
||||
@@ -103,6 +103,7 @@ pin: PC8
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
|
||||
restart_method: cheetah
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
|
||||
@@ -181,7 +181,7 @@ pins: PB0
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_z]
|
||||
#cs_pin: PJ6
|
||||
#cs_pin: PJ7
|
||||
#diag1_pin: PB6
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
|
||||
281
config/generic-fysetc-s6.cfg
Normal file
281
config/generic-fysetc-s6.cfg
Normal file
@@ -0,0 +1,281 @@
|
||||
# This file contains common pin mappings for the Fysetc S6 board.
|
||||
# To use this config, the firmware should be compiled for the STM32F446.
|
||||
# When calling "menuconfig", enable "extra low-level configuration setup"
|
||||
# and select the "12MHz crystal" as clock reference
|
||||
# For flashing, write the compiled klipper.bin to memory location 0x08000000
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PE11
|
||||
dir_pin: PE10
|
||||
enable_pin: !PE12
|
||||
step_distance: .0125
|
||||
endstop_pin: PB14 # PA1 for X-max
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PD8
|
||||
dir_pin: PB12
|
||||
enable_pin: !PD9
|
||||
step_distance: .0125
|
||||
endstop_pin: PB13 # PA2 for Y-max
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PD14
|
||||
dir_pin: PD13
|
||||
enable_pin: !PD15
|
||||
step_distance: .0025
|
||||
endstop_pin: PA0 # PA3 for Z-max (and servo)
|
||||
position_endstop: 0
|
||||
position_max: 400
|
||||
|
||||
[extruder]
|
||||
step_pin: PD5
|
||||
dir_pin: !PD6
|
||||
enable_pin: !PD4
|
||||
step_distance: .01
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PB3
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC0
|
||||
control: pid
|
||||
pid_Kp: 22
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 260
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PE6
|
||||
#dir_pin: !PC13
|
||||
#enable_pin: !PE5
|
||||
#heater_pin: PB4
|
||||
#sensor_pin: PC1
|
||||
|
||||
#[extruder2]
|
||||
#step_pin: PE2
|
||||
#dir_pin: !PE4
|
||||
#enable_pin: !PE3
|
||||
#heater_pin: PB15
|
||||
#sensor_pin: PC2
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PC8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC3
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
#fan for printed model FAN0
|
||||
[fan]
|
||||
pin: PB0
|
||||
|
||||
#fan for hotend FAN1
|
||||
#[heater_fan my_nozzle_fan]
|
||||
#pin: PB1
|
||||
#shutdown_speed: 1
|
||||
|
||||
#fan for control board FAN2
|
||||
#[heater_fan my_control_fan]
|
||||
#pin: PB2
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
########################################
|
||||
# TMC UART configuration
|
||||
########################################
|
||||
|
||||
# For TMC UART
|
||||
# 1) Remove all jumpers below the stepper drivers.
|
||||
# 2) Place a jumper on the "PDN-EN" two-pin header.
|
||||
|
||||
# For TMC Sensorless homing / DIAG1
|
||||
# 1) Place a jumper on the two pin header near the endstop.
|
||||
|
||||
#[tmc2208 stepper_x]
|
||||
#uart_pin: PE8
|
||||
#tx_pin: PE9
|
||||
#microsteps: 16
|
||||
#run_current: 0.8
|
||||
#hold_current: 0.5
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_y]
|
||||
#uart_pin: PE13
|
||||
#tx_pin: PE14
|
||||
#microsteps: 16
|
||||
#run_current: 0.8
|
||||
#hold_current: 0.5
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_z]
|
||||
#uart_pin: PD12
|
||||
#tx_pin: PD11
|
||||
#microsteps: 16
|
||||
#run_current: 0.8
|
||||
#hold_current: 0.5
|
||||
#stealthchop_threshold: 100
|
||||
|
||||
#[tmc2208 extruder]
|
||||
#uart_pin: PA15
|
||||
#tx_pin: PD3
|
||||
#microsteps: 16
|
||||
#run_current: 0.8
|
||||
#hold_current: 0.5
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 extruder1]
|
||||
#uart_pin: PC5
|
||||
#tx_pin: PC4
|
||||
#microsteps: 16
|
||||
#run_current: 0.8
|
||||
#hold_current: 0.5
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 extruder2]
|
||||
#uart_pin: PE0
|
||||
#tx_pin: PE1
|
||||
#microsteps: 16
|
||||
#run_current: 0.8
|
||||
#hold_current: 0.5
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
########################################
|
||||
# TMC SPI configuration
|
||||
########################################
|
||||
|
||||
# For TMC SPI
|
||||
# 1) Remove four jumpers below the stepper drivers, connecting the outermost and middle pins of each row.
|
||||
|
||||
# For TMC Sensorless homing / DIAG1
|
||||
# 1) Place a jumper on the two pin header near the endstop.
|
||||
|
||||
# SPI pins:
|
||||
# SCK PA5
|
||||
# MISO PA6
|
||||
# MOSI PA7
|
||||
|
||||
#[tmc2130 stepper_x]
|
||||
#spi_bus: spi1
|
||||
#cs_pin: PE7
|
||||
#diag1_pin: PB14
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_y]
|
||||
#spi_bus: spi1
|
||||
#cs_pin: PE15
|
||||
#diag1_pin: PB13
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_z]
|
||||
#spi_bus: spi1
|
||||
#cs_pin: PD10
|
||||
#diag1_pin: PA0
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 extruder]
|
||||
#spi_bus: spi1
|
||||
#cs_pin: PD7
|
||||
#diag1_pin: PA3
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 extruder1]
|
||||
#spi_bus: spi1
|
||||
#cs_pin: PC14
|
||||
#diag1_pin: PA2
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 extruder2]
|
||||
#spi_bus: spi1
|
||||
#cs_pin: PC15
|
||||
#diag1_pin: PA1
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
########################################
|
||||
# EXP1 / EXP2 (display) pins
|
||||
########################################
|
||||
|
||||
# These must be turned 180° when compared to the default RAMPS layout.
|
||||
# The aliases below are 180° turned from what Fysetc considers pin 1,
|
||||
# but visually correspond to the plugs on the board.
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PC9, EXP1_2=PA8,
|
||||
EXP1_3=PC11, EXP1_4=PD2,
|
||||
EXP1_5=PC10, EXP1_6=PC12, # Slot in the socket on this side
|
||||
EXP1_7=PD0, EXP1_8=PD1,
|
||||
EXP1_9=<GND>, EXP1_10=<5V>,
|
||||
|
||||
# EXP2 header
|
||||
EXP2_1=PA6, EXP2_2=PA5,
|
||||
EXP2_3=PC6, EXP2_4=PA4,
|
||||
EXP2_5=PC7, EXP2_6=PA7, # Slot in the socket on this side
|
||||
EXP2_7=PB10, EXP2_8=<RST>,
|
||||
EXP2_9=<GND>, EXP2_10=<5V>
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
|
||||
########################################
|
||||
# RGB header
|
||||
########################################
|
||||
|
||||
# See the example-extras.cfg file for more information.
|
||||
|
||||
#[output_pin blue]
|
||||
#pin: PB7
|
||||
|
||||
#[output_pin red]
|
||||
#pin: PB6
|
||||
|
||||
#[output_pin green]
|
||||
#pin: PB5
|
||||
|
||||
########################################
|
||||
# Servo
|
||||
########################################
|
||||
|
||||
# See the example-extras.cfg file for more information.
|
||||
|
||||
#[servo my_servo1]
|
||||
#pin: PA3 # shared with ZMAX
|
||||
|
||||
########################################
|
||||
# AUX-3 / SPI header
|
||||
########################################
|
||||
|
||||
# <CD>, <MOSI>, SS, <RESET>
|
||||
# <5V> , MISO , SCK, <GND>
|
||||
115
config/generic-mightyboard.cfg
Normal file
115
config/generic-mightyboard.cfg
Normal file
@@ -0,0 +1,115 @@
|
||||
# This file contains common pin mappings for the Makerbot
|
||||
# Mightyboard. To use this config, the firmware should be compiled for
|
||||
# the Atmel atmega1280.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PF1
|
||||
dir_pin: !PF0
|
||||
enable_pin: !PF2
|
||||
step_distance: .010387
|
||||
endstop_pin: ^!PL1
|
||||
position_endstop: 152
|
||||
position_max: 153
|
||||
position_min: -120
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PF5
|
||||
dir_pin: !PF4
|
||||
enable_pin: !PF6
|
||||
step_distance: .010387
|
||||
endstop_pin: ^!PL3
|
||||
position_endstop: 77
|
||||
position_max: 78
|
||||
position_min: -84
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PK1
|
||||
dir_pin: !PK0
|
||||
enable_pin: !PK2
|
||||
step_distance: .0025
|
||||
endstop_pin: !PL6
|
||||
position_endstop: 0
|
||||
position_max: 230
|
||||
position_min: 0
|
||||
|
||||
[extruder]
|
||||
step_pin: PA3
|
||||
dir_pin: !PA2
|
||||
enable_pin: !PA4
|
||||
step_distance: .010387
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PH3
|
||||
sensor_type: MAX6675
|
||||
sensor_pin: PE3
|
||||
spi_software_miso_pin: PE5
|
||||
spi_software_sclk_pin: PE2
|
||||
spi_software_mosi_pin: PA1 #dummy mosi pin
|
||||
control: pid
|
||||
pid_Kp: 26.414
|
||||
pid_Ki: 1.115
|
||||
pid_Kd: 156.5054
|
||||
min_temp: 0
|
||||
max_temp: 260
|
||||
|
||||
[heater_fan extruder_fan]
|
||||
pin: PH4
|
||||
|
||||
[fan]
|
||||
pin: PL5
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PL4
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PK7
|
||||
control: pid
|
||||
pid_Kp: 70.037
|
||||
pid_Ki: 1.710
|
||||
pid_Kd: 717.000
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyAMA0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[mcp4018 x_axis_pot]
|
||||
scl_pin: PJ5
|
||||
sda_pin: PF3
|
||||
wiper: 0.50
|
||||
scale: 0.773
|
||||
|
||||
[mcp4018 y_axis_pot]
|
||||
scl_pin: PJ5
|
||||
sda_pin: PF7
|
||||
wiper: 0.50
|
||||
scale: 0.773
|
||||
|
||||
[mcp4018 z_axis_pot]
|
||||
scl_pin: PJ5
|
||||
sda_pin: PK3
|
||||
wiper: 0.50
|
||||
scale: 0.773
|
||||
|
||||
[mcp4018 a_axis_pot]
|
||||
scl_pin: PJ5
|
||||
sda_pin: PA5
|
||||
wiper: 0.50
|
||||
scale: 0.773
|
||||
|
||||
[mcp4018 b_axis_pot]
|
||||
scl_pin: PJ5
|
||||
sda_pin: PJ6
|
||||
wiper: 0.50
|
||||
scale: 0.773
|
||||
126
config/generic-mks-robin-e3.cfg
Normal file
126
config/generic-mks-robin-e3.cfg
Normal file
@@ -0,0 +1,126 @@
|
||||
# This file contains common pin mappings for MKS Robin E3 boards. To
|
||||
# use this config, the firmware should be compiled for the STM32F103.
|
||||
# When running "make menuconfig", enable "extra low-level
|
||||
# configuration setup", select the 20KiB bootloader, disable "USB for
|
||||
# communication", and select USART1 for the "Serial Port".
|
||||
|
||||
# Note that the "make flash" command does not work with MKS Robin
|
||||
# boards. After running "make", run the following command:
|
||||
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_e3.bin
|
||||
# Copy the file out/Robin_e3.bin to an SD card and then restart the
|
||||
# printer with that SD card.
|
||||
|
||||
# MKS Robin E3 has onboard TMC2209. This config can also be used for
|
||||
# MKS Robin E3D if equipped with TMC2209 stepper drivers.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC0
|
||||
dir_pin: PB2
|
||||
enable_pin: !PC13
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA12
|
||||
position_endstop: 0
|
||||
position_max: 165
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC2
|
||||
dir_pin: PB9
|
||||
enable_pin: !PB12
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA11
|
||||
position_endstop: 0
|
||||
position_max: 165
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB7
|
||||
dir_pin: !PB6
|
||||
enable_pin: !PB8
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PC6
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
|
||||
[extruder]
|
||||
step_pin: PB4
|
||||
dir_pin: PB3
|
||||
enable_pin: !PB5
|
||||
step_distance: 0.010753
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PC9
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA0
|
||||
control: pid
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[tmc2209 stepper_x]
|
||||
uart_pin: PC7
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
|
||||
[tmc2209 stepper_y]
|
||||
uart_pin: PD2
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
|
||||
[tmc2209 stepper_z]
|
||||
uart_pin: PC12
|
||||
microsteps: 16
|
||||
run_current: 0.650
|
||||
hold_current: 0.450
|
||||
stealthchop_threshold: 30
|
||||
|
||||
[tmc2209 extruder]
|
||||
uart_pin: PC11
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 5
|
||||
|
||||
[fan]
|
||||
pin: PA8
|
||||
|
||||
#[heater_bed]
|
||||
#heater_pin: PC8
|
||||
#sensor_pin: PA1
|
||||
#...
|
||||
|
||||
#[bltouch]
|
||||
#sensor_pin: ^PC6
|
||||
#control_pin: PA3
|
||||
#...
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 1500
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
# EXP1 / EXP2 (display) pins
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=PC3, EXP1_3=PA4, EXP1_5=PA6, EXP1_7=PC4, EXP1_9=<GND>,
|
||||
EXP1_2=PC1, EXP1_4=PA5, EXP1_6=PA7, EXP1_8=PC5, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=PB14, EXP2_3=PB11, EXP2_5=PB0, EXP2_7=PC10, EXP2_9=<GND>,
|
||||
EXP2_2=PB13, EXP2_4=PA15, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<NC>
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
92
config/generic-mks-robin-nano.cfg
Normal file
92
config/generic-mks-robin-nano.cfg
Normal file
@@ -0,0 +1,92 @@
|
||||
# This file contains common pin mappings for MKS Robin Nano (v1.2.004)
|
||||
# boards. To use this config, the firmware should be compiled for the
|
||||
# STM32F103. When running "make menuconfig", enable "extra low-level
|
||||
# configuration setup", select the 28KiB bootloader, disable "USB for
|
||||
# communication", and select USART3 for the "Serial Port".
|
||||
|
||||
# Note that the "make flash" command does not work with MKS Robin
|
||||
# boards. After running "make", run the following command:
|
||||
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano.bin
|
||||
# Copy the file out/Robin_nano.bin to an SD card and then restart the
|
||||
# printer with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PE3
|
||||
dir_pin: !PE2
|
||||
enable_pin: !PE4
|
||||
step_distance: .01
|
||||
endstop_pin: !PA15
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PE0
|
||||
dir_pin: !PB9
|
||||
enable_pin: !PE1
|
||||
step_distance: .01
|
||||
endstop_pin: !PA12
|
||||
position_endstop: 230
|
||||
position_max: 230
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB5
|
||||
dir_pin: PB4
|
||||
enable_pin: !PB8
|
||||
step_distance: .0025
|
||||
endstop_pin: !PA11
|
||||
position_endstop: 0.5
|
||||
position_max: 200
|
||||
|
||||
[extruder]
|
||||
step_pin: PD6
|
||||
dir_pin: !PD3
|
||||
enable_pin: !PB3
|
||||
step_distance: .0021
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PC3
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PC1
|
||||
control: pid
|
||||
pid_Kp: 14.669
|
||||
pid_Ki: 0.572
|
||||
pid_Kd: 94.068
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PA6
|
||||
#dir_pin: !PA1
|
||||
#enable_pin: !PA3
|
||||
#heater_pin: PB0
|
||||
#sensor_pin: PC2
|
||||
#...
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA0
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC0
|
||||
control: pid
|
||||
pid_Kp: 325.10
|
||||
pid_Ki: 63.35
|
||||
pid_Kd: 417.10
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PB1
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyUSB0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: corexy
|
||||
max_velocity: 250
|
||||
max_accel: 4500
|
||||
max_z_velocity: 25
|
||||
max_z_accel: 100
|
||||
196
config/generic-mks-sgenl.cfg
Normal file
196
config/generic-mks-sgenl.cfg
Normal file
@@ -0,0 +1,196 @@
|
||||
# This file contains common pin mappings for the MKS SGEN_L board. To
|
||||
# use this config, the firmware should be compiled for the LPC1768.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: P2.2
|
||||
dir_pin: !P2.3
|
||||
enable_pin: !P2.1
|
||||
step_distance: .0125
|
||||
endstop_pin: ^P1.29 # ^P1.28 for X-max
|
||||
position_endstop: 0
|
||||
position_max: 320
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: P0.19
|
||||
dir_pin: !P0.20
|
||||
enable_pin: !P2.8
|
||||
step_distance: .0125
|
||||
endstop_pin: ^P1.27 # ^P1.26 for Y-max
|
||||
position_endstop: 0
|
||||
position_max: 300
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: P0.22
|
||||
dir_pin: P2.11
|
||||
enable_pin: !P0.21
|
||||
step_distance: .0025
|
||||
endstop_pin: ^P1.25 # ^P1.24 for Z-max
|
||||
position_endstop: 0.5
|
||||
position_max: 400
|
||||
|
||||
[extruder]
|
||||
step_pin: P2.13
|
||||
dir_pin: !P0.11
|
||||
enable_pin: !P2.12
|
||||
step_distance: .010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: P2.7
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: P0.23
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 260
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: P0.1
|
||||
#dir_pin: P0.0
|
||||
#enable_pin: !P0.10
|
||||
#heater_pin: P2.6
|
||||
#sensor_pin: P0.25
|
||||
#...
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: P2.5
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: P0.24
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: P2.4
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 200
|
||||
max_accel: 2000
|
||||
max_z_velocity: 25
|
||||
max_z_accel: 100
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2208 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2208 stepper_x]
|
||||
#uart_pin: P1.1
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_y]
|
||||
#uart_pin: P1.8
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2208 stepper_z]
|
||||
#uart_pin: P1.10
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
|
||||
#[tmc2208 extruder]
|
||||
#uart_pin: P1.15
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2208 extruder1]
|
||||
#uart_pin: P1.17
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# TMC2130 configuration
|
||||
########################################
|
||||
|
||||
#[tmc2130 stepper_x]
|
||||
#cs_pin: P1.1
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P4.28
|
||||
#spi_software_sclk_pin: P0.4
|
||||
##diag1_pin: ^!P1.29
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_y]
|
||||
#cs_pin: P1.8
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P4.28
|
||||
#spi_software_sclk_pin: P0.4
|
||||
##diag1_pin: ^!P1.27
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 250
|
||||
|
||||
#[tmc2130 stepper_z]
|
||||
#cs_pin: P1.10
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P4.28
|
||||
#spi_software_sclk_pin: P0.4
|
||||
##diag1_pin: ^!P1.25
|
||||
#microsteps: 16
|
||||
#run_current: 0.650
|
||||
#hold_current: 0.450
|
||||
#stealthchop_threshold: 30
|
||||
|
||||
#[tmc2130 extruder]
|
||||
#cs_pin: P1.15
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P4.28
|
||||
#spi_software_sclk_pin: P0.4
|
||||
##diag1_pin: ^!P1.28
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
#[tmc2130 extruder1]
|
||||
#cs_pin: P1.17
|
||||
#spi_software_miso_pin: P0.5
|
||||
#spi_software_mosi_pin: P4.28
|
||||
#spi_software_sclk_pin: P0.4
|
||||
##diag1_pin: ^!P1.26
|
||||
#microsteps: 16
|
||||
#run_current: 0.800
|
||||
#hold_current: 0.500
|
||||
#stealthchop_threshold: 5
|
||||
|
||||
|
||||
########################################
|
||||
# EXP1 / EXP2 (display) pins
|
||||
########################################
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# EXP1 header
|
||||
EXP1_1=P1.31, EXP1_3=P0.18, EXP1_5=P0.15, EXP1_7=P1.0, EXP1_9=<GND>,
|
||||
EXP1_2=P1.30, EXP1_4=P0.16, EXP1_6=P0.17, EXP1_8=P1.22, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=P0.8, EXP2_3=P3.25, EXP2_5=P3.26, EXP2_7=P0.27, EXP2_9=<GND>,
|
||||
EXP2_2=P0.7, EXP2_4=P0.28, EXP2_6=P0.9, EXP2_8=<RST>, EXP2_10=<NC>
|
||||
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "ssp1"
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
@@ -2,9 +2,12 @@
|
||||
# through D). To use this config the firmware should be compiled for
|
||||
# the AVR at90usb1286.
|
||||
|
||||
# Note that the "make flash" command is unlikely to work on the
|
||||
# Printrboard. See the RepRap Printrboard wiki page for instructions
|
||||
# on flashing.
|
||||
# Note that the "make flash" command will not work for Printrboard!
|
||||
# To flash:
|
||||
# - Connect the "BOOT" jumper.
|
||||
# - Press the reset button (on board) to enter into DFU mode.
|
||||
# - Connect via USB and run:
|
||||
# avrdude -c flip1 -p usb1286 -U flash:w:out/klipper.elf.hex
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
|
||||
@@ -134,3 +134,31 @@ pin: replicape:power_fan0
|
||||
# PWM output pin controlling the servo. This parameter must be
|
||||
# provided.
|
||||
#...
|
||||
|
||||
# Providing an example of a switch filament sensor using the Linux MCU for replicape, instead of the PRU which does not have enough memory:
|
||||
#[filament_switch_sensor switch_sensor]
|
||||
#switch_pin: HOST_X2_STOP
|
||||
|
||||
# providing board pin aliases for PRU firmware
|
||||
[board_pins]
|
||||
aliases:
|
||||
# step/dir pins
|
||||
X_DIR=P8_26, X_STEP=P8_17, Y_DIR=P8_19, Y_STEP=P8_12, Z_DIR=P8_14, Z_STEP=P8_13,
|
||||
E_DIR=P8_15, E_STEP=P9_12, H_DIR=P8_16, H_STEP=P8_11,
|
||||
# stepper fault pins
|
||||
FAULT_X=P8_10, FAULT_Y=P8_9, FAULT_Z=P9_24, FAULT_E=P8_18, FAULT_H=P8_8,
|
||||
# endstops
|
||||
STOP_X1=P9_25, STOP_X2=P9_11, STOP_Y1=P9_23, STOP_Y2=P9_28, STOP_Z1=P9_13, STOP_Z2=P9_18,
|
||||
# enable steppers (all on one pin)
|
||||
STEPPER_ENABLE=P9_41,
|
||||
# servos
|
||||
SERVO_0=P9_14, SERVO_1=P9_16,
|
||||
|
||||
[board_pins host]
|
||||
aliases:
|
||||
# Host aliases for Linux MCU
|
||||
HOST_X2_STOP=gpio30, HOST_Y2_STOP=gpio113, HOST_Z2_STOP=gpio4
|
||||
# Thermistors
|
||||
THERM_E=analog4, THERM_H=analog5, THERM_BED=analog6
|
||||
# D1W pin
|
||||
DALLAS=gpio2
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
# Support for internal testing with the "simulavr" program. To use
|
||||
# this config, compile the firmware for an AVR atmega644p, disable the
|
||||
# AVR watchdog timer, set the MCU frequency to 20000000, and set the
|
||||
# serial baud rate to 250000.
|
||||
# This file contains example pin mappings for testing with the
|
||||
# "simulavr" program. To use this config, compile the firmware for an
|
||||
# AVR atmega644p, enable "low-level configuration options", and enable
|
||||
# "simulavr software emulation". Further details are in
|
||||
# docs/Debugging.md.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
# Pins: PA5, PA4, PA1
|
||||
123
config/generic-ultimaker-ultimainboard-v2.cfg
Normal file
123
config/generic-ultimaker-ultimainboard-v2.cfg
Normal file
@@ -0,0 +1,123 @@
|
||||
# This file contains common pin mappings for Ultimaker UltiMainboard v2
|
||||
# boards. To use this config, the firmware should be compiled for the
|
||||
# AVR atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: ar25
|
||||
dir_pin: !ar23
|
||||
enable_pin: !ar27
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!ar22
|
||||
position_endstop: 0
|
||||
position_max: 230
|
||||
homing_speed: 50.0
|
||||
|
||||
[stepper_y]
|
||||
step_pin: ar32
|
||||
dir_pin: ar33
|
||||
enable_pin: !ar31
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!ar26
|
||||
position_endstop: 225
|
||||
position_max: 225
|
||||
homing_speed: 50.0
|
||||
|
||||
[stepper_z]
|
||||
step_pin: ar35
|
||||
dir_pin: !ar36
|
||||
enable_pin: !ar34
|
||||
step_distance: .005
|
||||
endstop_pin: ^!ar29
|
||||
position_endstop: 215
|
||||
position_max: 215
|
||||
homing_speed: 20.0
|
||||
|
||||
[extruder]
|
||||
step_pin: ar42
|
||||
dir_pin: ar43
|
||||
enable_pin: !ar37
|
||||
step_distance: .003546
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 2.850
|
||||
heater_pin: ar2
|
||||
sensor_type: PT100 INA826
|
||||
sensor_pin: analog8
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 275
|
||||
|
||||
# Dual extruder support.
|
||||
#[extruder1]
|
||||
#step_pin: ar49
|
||||
#dir_pin: ar47
|
||||
#enable_pin: !ar48
|
||||
#step_distance: .003546
|
||||
#nozzle_diameter: 0.400
|
||||
#filament_diameter: 2.850
|
||||
#heater_pin: ar3
|
||||
#sensor_type: PT100 INA826
|
||||
#sensor_pin: analog9
|
||||
#control: pid
|
||||
#pid_Kp: 22.2
|
||||
#pid_Ki: 1.08
|
||||
#pid_Kd: 114
|
||||
#min_temp: 0
|
||||
#max_temp: 275
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: ar4
|
||||
sensor_type: PT100 INA826
|
||||
sensor_pin: analog10
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 100
|
||||
|
||||
[fan]
|
||||
pin: ar7
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
pin_map: arduino
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 500
|
||||
max_accel: 3000
|
||||
max_z_velocity: 25
|
||||
max_z_accel: 30
|
||||
|
||||
[output_pin case_light]
|
||||
pin: ar8
|
||||
static_value: 1.0
|
||||
|
||||
# Motor current settings.
|
||||
[output_pin stepper_xy_current]
|
||||
pin: ar44
|
||||
pwm: True
|
||||
scale: 1.5
|
||||
# Max power setting.
|
||||
cycle_time: .000030
|
||||
hardware_pwm: True
|
||||
static_value: 1.200
|
||||
# Power adjustment setting.
|
||||
|
||||
[output_pin stepper_z_current]
|
||||
pin: ar45
|
||||
pwm: True
|
||||
scale: 1.5
|
||||
cycle_time: .000030
|
||||
hardware_pwm: True
|
||||
static_value: 1.200
|
||||
|
||||
[output_pin stepper_e_current]
|
||||
pin: ar46
|
||||
pwm: True
|
||||
scale: 1.5
|
||||
cycle_time: .000030
|
||||
hardware_pwm: True
|
||||
static_value: 1.250
|
||||
@@ -129,8 +129,8 @@ sample_retract_dist: 3.0
|
||||
[bed_mesh]
|
||||
speed: 100
|
||||
horizontal_move_z: 5
|
||||
min_point: 30,30
|
||||
max_point: 150,150
|
||||
mesh_min: 69,41
|
||||
mesh_max: 189,161
|
||||
probe_count: 3,3
|
||||
|
||||
[homing_override]
|
||||
|
||||
87
config/printer-alfawise-u30-2018.cfg
Normal file
87
config/printer-alfawise-u30-2018.cfg
Normal file
@@ -0,0 +1,87 @@
|
||||
# This file contains common pin mappings for the Alfawise U30 printer.
|
||||
# To use this config, the firmware should be compiled for the
|
||||
# STM32F103. When running "make menuconfig", enable "extra low-level
|
||||
# configuration setup", select the 64KiB bootloader, disable "USB for
|
||||
# communication", and set "GPIO pins to set at micro-controller
|
||||
# startup" to "!PC4,!PD12".
|
||||
|
||||
# The "make flash" command does not work on the Alfawise U30. Instead,
|
||||
# after running "make", copy the generated "out/klipper.bin" file to a
|
||||
# file named "project.bin" on an SD card and then restart the Alfawise
|
||||
# with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PB4
|
||||
dir_pin: !PB3
|
||||
enable_pin: !PB5
|
||||
step_distance: .0125
|
||||
endstop_pin: !PC1
|
||||
position_endstop: 0
|
||||
position_max: 230
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB7
|
||||
dir_pin: PB6
|
||||
enable_pin: !PB8
|
||||
step_distance: .0125
|
||||
endstop_pin: !PC15
|
||||
position_endstop: 0
|
||||
position_max: 222
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PE0
|
||||
dir_pin: !PB9
|
||||
enable_pin: !PE1
|
||||
step_distance: .0025
|
||||
endstop_pin: !PE6
|
||||
position_endstop: 0.0
|
||||
position_max: 250
|
||||
|
||||
[extruder]
|
||||
step_pin: PE3
|
||||
dir_pin: PE2
|
||||
enable_pin: !PE4
|
||||
step_distance: 0.010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PD3
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA0
|
||||
control: pid
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA1
|
||||
control: pid
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA15
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[static_digital_output reset_display]
|
||||
pins: !PC4, !PD12
|
||||
94
config/printer-anet-a4-2018.cfg
Normal file
94
config/printer-anet-a4-2018.cfg
Normal file
@@ -0,0 +1,94 @@
|
||||
# This file contains common pin mappings for Anet A4 printer from
|
||||
# 2018. To use this config, the firmware should be compiled for the
|
||||
# AVR atmega1284p.
|
||||
|
||||
# Note that the "make flash" command does not work with Anet boards -
|
||||
# the boards are typically flashed with this command:
|
||||
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_a]
|
||||
step_pin: PD7
|
||||
dir_pin: !PC5
|
||||
enable_pin: !PD6
|
||||
step_distance: .01
|
||||
endstop_pin: ^!PC2
|
||||
position_endstop: 215
|
||||
arm_length: 215
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_b]
|
||||
step_pin: PC6
|
||||
dir_pin: !PC7
|
||||
enable_pin: !PD6
|
||||
step_distance: .01
|
||||
endstop_pin: ^!PC3
|
||||
|
||||
[stepper_c]
|
||||
step_pin: PB3
|
||||
dir_pin: !PB2
|
||||
enable_pin: !PA5
|
||||
step_distance: .01
|
||||
endstop_pin: ^!PC4
|
||||
homing_speed: 20
|
||||
|
||||
[extruder]
|
||||
step_pin: PB1
|
||||
dir_pin: PB0
|
||||
enable_pin: !PD6
|
||||
step_distance: .01045
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PD5
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA7
|
||||
control: pid
|
||||
pid_Kp: 30.48
|
||||
pid_Ki: 2.71
|
||||
pid_Kd: 85.52
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PD4
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA6
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PB4
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyUSB0
|
||||
|
||||
[printer]
|
||||
kinematics: delta
|
||||
max_velocity: 300
|
||||
max_accel: 1000
|
||||
max_z_velocity: 20
|
||||
delta_radius: 113
|
||||
|
||||
[delta_calibrate]
|
||||
radius: 70
|
||||
|
||||
[display]
|
||||
lcd_type: hd44780
|
||||
rs_pin: PA3
|
||||
e_pin: PA2
|
||||
d4_pin: PD2
|
||||
d5_pin: PD3
|
||||
d6_pin: PC0
|
||||
d7_pin: PC1
|
||||
up_pin: PA1
|
||||
analog_range_up_pin: 9000, 13000
|
||||
down_pin: PA1
|
||||
analog_range_down_pin: 800, 1300
|
||||
click_pin: PA1
|
||||
analog_range_click_pin: 2000, 2500
|
||||
back_pin: PA1
|
||||
analog_range_back_pin: 4500, 5000
|
||||
#kill_pin: PA1
|
||||
#analog_range_kill_pin: 400, 600
|
||||
90
config/printer-anet-e16-2019.cfg
Normal file
90
config/printer-anet-e16-2019.cfg
Normal file
@@ -0,0 +1,90 @@
|
||||
# This file contains common pin mappings for Anet E16 printer from
|
||||
# 2019. To use this config, the firmware should be compiled for the
|
||||
# AVR atmega1284p.
|
||||
|
||||
# Note that the "make flash" command does not work with Anet boards -
|
||||
# the boards are typically flashed with this command:
|
||||
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PD7
|
||||
dir_pin: PC5
|
||||
enable_pin: !PD6
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!PC2
|
||||
position_endstop: -3
|
||||
position_max: 300
|
||||
position_min: -3
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC6
|
||||
dir_pin: !PC7
|
||||
enable_pin: !PD6
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!PC3
|
||||
position_endstop: -22
|
||||
position_min: -22
|
||||
position_max: 300
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB3
|
||||
dir_pin: !PB2
|
||||
enable_pin: !PA5
|
||||
step_distance: .0025
|
||||
endstop_pin: ^!PC4
|
||||
position_endstop: 0.5
|
||||
position_max: 400
|
||||
homing_speed: 20
|
||||
|
||||
[extruder]
|
||||
step_pin: PB1
|
||||
dir_pin: !PB0
|
||||
enable_pin: !PD6
|
||||
step_distance: 0.01
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PD5
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA7
|
||||
control: pid
|
||||
pid_Kp: 27.0
|
||||
pid_Ki: 1.3
|
||||
pid_Kd: 136.09
|
||||
min_temp: 10
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PD4
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA6
|
||||
control: pid
|
||||
pid_Kp: 72.8
|
||||
pid_Ki: 1.2
|
||||
pid_Kd: 1100
|
||||
min_temp: 10
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PB4
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyUSB0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 1000
|
||||
max_z_velocity: 20
|
||||
max_z_accel: 1000
|
||||
|
||||
[display]
|
||||
lcd_type: st7920
|
||||
cs_pin: PA4
|
||||
sclk_pin: PA1
|
||||
sid_pin:PA3
|
||||
encoder_pins: ^PD2, ^PD3
|
||||
click_pin: ^!PC0
|
||||
@@ -4,8 +4,8 @@
|
||||
# The Anycubic delta printers use the TriGorilla board which is an
|
||||
# AVR ATmega2560 Arduino + RAMPS compatible board.
|
||||
# To use this config, the firmware should be compiled for the AVR atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
# See the example.cfg, example-delta.cfg and example-extras.cfg files
|
||||
# for a description of available parameters.
|
||||
|
||||
[stepper_a]
|
||||
step_pin: ar54
|
||||
@@ -19,7 +19,7 @@ homing_speed: 60
|
||||
# and meassure the distance from nozzle to bed.
|
||||
# This value then needs to be added.
|
||||
position_endstop: 295.6
|
||||
arm_length: 271.50
|
||||
arm_length: 269.0
|
||||
|
||||
[stepper_b]
|
||||
step_pin: ar60
|
||||
@@ -39,7 +39,7 @@ endstop_pin: ^ar19
|
||||
step_pin: ar26
|
||||
dir_pin: !ar28
|
||||
enable_pin: !ar24
|
||||
step_distance: 0.010989
|
||||
step_distance: 0.0104166
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: ar10
|
||||
@@ -53,13 +53,16 @@ min_extrude_temp: 150
|
||||
min_temp: 0
|
||||
max_temp: 275
|
||||
|
||||
#[heater_bed]
|
||||
#heater_pin: ar8
|
||||
#sensor_type: EPCOS 100K B57560G104F
|
||||
#sensor_pin: analog14
|
||||
#control: watermark
|
||||
#min_temp: 0
|
||||
#max_temp: 130
|
||||
[heater_bed]
|
||||
heater_pin: ar8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog14
|
||||
control: pid
|
||||
pid_kp: 73.517
|
||||
pid_ki: 1.132
|
||||
pid_kd: 1193.728
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: ar9
|
||||
@@ -68,6 +71,12 @@ kick_start_time: 0.200
|
||||
[heater_fan extruder_cooler_fan]
|
||||
pin: ar44
|
||||
|
||||
# if you want to use your probe for DELTA_CALIBRATE you will need that
|
||||
#[probe]
|
||||
#pin: ^ar18
|
||||
#z_offset: 15.9
|
||||
#samples: 3
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyUSB0
|
||||
pin_map: arduino
|
||||
@@ -77,23 +86,17 @@ kinematics: delta
|
||||
max_velocity: 500
|
||||
max_accel: 3000
|
||||
max_z_velocity: 200
|
||||
delta_radius: 115
|
||||
delta_radius: 134.4
|
||||
# if you want to DELTA_CALIBRATE you may need that
|
||||
#minimum_z_position: -5
|
||||
|
||||
[idle_timeout]
|
||||
timeout: 360
|
||||
|
||||
#[delta_calibrate]
|
||||
#radius: 115
|
||||
#manual_probe:
|
||||
# If true, then DELTA_CALIBRATE will perform manual probing. If
|
||||
# false, then a PROBE command will be run at each probe
|
||||
# point. Manual probing is accomplished by manually jogging the Z
|
||||
# position of the print head at each probe point and then issuing a
|
||||
# NEXT extended g-code command to record the position at that
|
||||
# point. The default is false if a [probe] config section is present
|
||||
# and true otherwise.
|
||||
[delta_calibrate]
|
||||
radius: 115
|
||||
# If the original probe is used
|
||||
#horizontal_move_z: 20
|
||||
|
||||
# "RepRapDiscount 2004 Smart Controller" type displays
|
||||
[display]
|
||||
|
||||
105
config/printer-creality-cr20-pro-2019.cfg
Normal file
105
config/printer-creality-cr20-pro-2019.cfg
Normal file
@@ -0,0 +1,105 @@
|
||||
# This file contains pin mappings for the Creality CR-20 Pro. To use
|
||||
# this config, the firmware should be compiled for the AVR atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PF0
|
||||
dir_pin: PF1
|
||||
enable_pin: !PD7
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PE5
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 100
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PF6
|
||||
dir_pin: PF7
|
||||
enable_pin: !PF2
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PJ1
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 100
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PL3
|
||||
dir_pin: !PL1
|
||||
enable_pin: !PK0
|
||||
step_distance: .0025
|
||||
endstop_pin: probe:z_virtual_endstop
|
||||
position_endstop: 0
|
||||
position_max: 250
|
||||
homing_speed: 10.0
|
||||
position_min: -1.0
|
||||
|
||||
[extruder]
|
||||
step_pin: PA4
|
||||
dir_pin: PA6
|
||||
enable_pin: !PA2
|
||||
step_distance: .010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PB4
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PK5
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[bltouch]
|
||||
sensor_pin: ^PD3
|
||||
control_pin: PB5
|
||||
z_offset: 3.60
|
||||
x_offset: 46
|
||||
y_offset: 9
|
||||
speed: 3.0
|
||||
samples: 1
|
||||
|
||||
[safe_z_home]
|
||||
home_xy_position: 117,117
|
||||
speed: 50.0
|
||||
z_hop: 10.0
|
||||
z_hop_speed: 100
|
||||
|
||||
[bed_mesh]
|
||||
speed: 100
|
||||
horizontal_move_z: 8
|
||||
mesh_min: 106,39
|
||||
mesh_max: 281,229
|
||||
probe_count: 3,3
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PH5
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PK6
|
||||
control: pid
|
||||
pid_Kp: 690.34
|
||||
pid_Ki: 111.47
|
||||
pid_Kd: 1068.83
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PH6
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK06SLT2-if00-port0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[display]
|
||||
lcd_type: uc1701
|
||||
cs_pin: PA3
|
||||
a0_pin: PA5
|
||||
encoder_pins: ^PC4, ^PC6
|
||||
click_pin: ^!PC2
|
||||
@@ -91,3 +91,15 @@ sclk_pin: PA1
|
||||
sid_pin: PC1
|
||||
encoder_pins: ^PD2, ^PD3
|
||||
click_pin: ^!PC0
|
||||
|
||||
# The print bed can move so far to the front, that the nozzle can reach the
|
||||
# plastic cover of the print bed heater cable (only when the bed is moved by
|
||||
# hand). By homing the Y axis before the X axis, it is ensured the nozzle will
|
||||
# not melt through the plastic part.
|
||||
# BEWARE: You will lose the ability to home axes individually. The printer will
|
||||
# always home all axes for every G28 command.
|
||||
#[homing_override]
|
||||
#gcode:
|
||||
# G28 Y0
|
||||
# G28 X0
|
||||
# G28 Z0
|
||||
|
||||
91
config/printer-creality-ender3-v2-2020.cfg
Normal file
91
config/printer-creality-ender3-v2-2020.cfg
Normal file
@@ -0,0 +1,91 @@
|
||||
# This file contains pin mappings for the stock 2020 Creality Ender 3
|
||||
# V2. To use this config, during "make menuconfig" select the
|
||||
# STM32F103 with a "28KiB bootloader" and with "Use USB for
|
||||
# communication" disabled.
|
||||
|
||||
# If you prefer a direct serial connection, in "make menuconfig"
|
||||
# select "Enable extra low-level configuration options" and select the
|
||||
# USART3 serial port, which is broken out on the 10 pin IDC cable used
|
||||
# for the LCD module as follows:
|
||||
# 3: Tx, 4: Rx, 9: GND, 10: VCC
|
||||
|
||||
# Flash this firmware by copying "out/klipper.bin" to a SD card and
|
||||
# turning on the printer with the card inserted. The firmware
|
||||
# filename must end in ".bin" and must not match the last filename
|
||||
# that was flashed.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC2
|
||||
dir_pin: PB9
|
||||
enable_pin: !PC3
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA5
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB8
|
||||
dir_pin: PB7
|
||||
enable_pin: !PC3
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA6
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB6
|
||||
dir_pin: !PB5
|
||||
enable_pin: !PC3
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PA7
|
||||
position_endstop: 0.0
|
||||
position_max: 250
|
||||
|
||||
[extruder]
|
||||
max_extrude_only_distance: 100.0
|
||||
step_pin: PB4
|
||||
dir_pin: PB3
|
||||
enable_pin: !PC3
|
||||
step_distance: 0.010752
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PA1
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC5
|
||||
control: pid
|
||||
# tuned for stock hardware with 200 degree Celsius target
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA2
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC4
|
||||
control: pid
|
||||
# tuned for stock hardware with 50 degree Celsius target
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA0
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
104
config/printer-creality-ender3pro-2020.cfg
Normal file
104
config/printer-creality-ender3pro-2020.cfg
Normal file
@@ -0,0 +1,104 @@
|
||||
# This file contains pin mappings for the stock 2020 Creality Ender 3
|
||||
# Pro with the 32-bit Creality 4.2.2 board. To use this config, during
|
||||
# "make menuconfig" select the STM32F103 with a "28KiB bootloader" and
|
||||
# with "Use USB for communication" disabled.
|
||||
|
||||
# If you prefer a direct serial connection, in "make menuconfig"
|
||||
# select "Enable extra low-level configuration options" and select the
|
||||
# USART3 serial port, which is broken out on the 10 pin IDC cable used
|
||||
# for the LCD module as follows:
|
||||
# 3: Tx, 4: Rx, 9: GND, 10: VCC
|
||||
|
||||
# Flash this firmware by copying "out/klipper.bin" to a SD card and
|
||||
# turning on the printer with the card inserted. The firmware
|
||||
# filename must end in ".bin" and must not match the last filename
|
||||
# that was flashed.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC2
|
||||
dir_pin: PB9
|
||||
enable_pin: !PC3
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA5
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PB8
|
||||
dir_pin: PB7
|
||||
enable_pin: !PC3
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PA6
|
||||
position_endstop: 0
|
||||
position_max: 235
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB6
|
||||
dir_pin: !PB5
|
||||
enable_pin: !PC3
|
||||
step_distance: .0025
|
||||
endstop_pin: ^PA7
|
||||
position_endstop: 0.0
|
||||
position_max: 250
|
||||
|
||||
[extruder]
|
||||
max_extrude_only_distance: 100.0
|
||||
step_pin: PB4
|
||||
dir_pin: PB3
|
||||
enable_pin: !PC3
|
||||
step_distance: 0.010752
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PA1
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC5
|
||||
control: pid
|
||||
# tuned for stock hardware with 200 degree Celsius target
|
||||
pid_Kp: 21.527
|
||||
pid_Ki: 1.063
|
||||
pid_Kd: 108.982
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA2
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC4
|
||||
control: pid
|
||||
# tuned for stock hardware with 50 degree Celsius target
|
||||
pid_Kp: 54.027
|
||||
pid_Ki: 0.770
|
||||
pid_Kd: 948.182
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PA0
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
# Pin mappings for BL_T port
|
||||
#[bltouch]
|
||||
#sensor_pin: ^PB1
|
||||
#control_pin: PB0
|
||||
|
||||
[display]
|
||||
lcd_type: st7920
|
||||
cs_pin: PB12
|
||||
sclk_pin: PB13
|
||||
sid_pin: PB15
|
||||
encoder_pins: ^PB14, ^PB10
|
||||
click_pin: ^!PB2
|
||||
@@ -13,21 +13,21 @@
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PD7
|
||||
dir_pin: PC5
|
||||
dir_pin: !PC5
|
||||
enable_pin: !PD6
|
||||
step_distance: .0125
|
||||
step_distance: .012500
|
||||
endstop_pin: ^PC2
|
||||
position_endstop: 0
|
||||
position_endstop: 235
|
||||
position_max: 235
|
||||
homing_speed: 30
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC6
|
||||
dir_pin: PC7
|
||||
dir_pin: !PC7
|
||||
enable_pin: !PD6
|
||||
step_distance: .0125
|
||||
step_distance: .012500
|
||||
endstop_pin: ^PC3
|
||||
position_endstop: 0
|
||||
position_endstop: 235
|
||||
position_max: 235
|
||||
homing_speed: 30
|
||||
|
||||
@@ -35,7 +35,7 @@ homing_speed: 30
|
||||
step_pin: PB3
|
||||
dir_pin: !PB2
|
||||
enable_pin: !PA5
|
||||
step_distance: .0025
|
||||
step_distance: .002500 # Use .001250 for Ender5 versions after late 2019
|
||||
endstop_pin: ^PC4
|
||||
position_endstop: 0.0
|
||||
position_max: 300
|
||||
|
||||
99
config/printer-creality-ender5plus-2019.cfg
Normal file
99
config/printer-creality-ender5plus-2019.cfg
Normal file
@@ -0,0 +1,99 @@
|
||||
# This file contains pin mappings for the Creality Ender 5 Plus.
|
||||
# Ender 5 Plus stock uses a Creality v2.2 board, similar to CR-20 Pro.
|
||||
# To use this config, the firmware should be compiled for the AVR
|
||||
# atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PF0
|
||||
dir_pin: PF1
|
||||
enable_pin: !PD7
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PE5
|
||||
position_endstop: 350
|
||||
position_max: 350
|
||||
homing_speed: 100
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PF6
|
||||
dir_pin: PF7
|
||||
enable_pin: !PF2
|
||||
step_distance: .0125
|
||||
endstop_pin: ^PJ1
|
||||
position_endstop: 350
|
||||
position_max: 350
|
||||
homing_speed: 100
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PL3
|
||||
dir_pin: PL1
|
||||
enable_pin: !PK0
|
||||
step_distance: .001266
|
||||
endstop_pin: probe:z_virtual_endstop
|
||||
position_max: 400
|
||||
position_min: 0
|
||||
homing_speed: 10.0
|
||||
|
||||
[extruder]
|
||||
step_pin: PA4
|
||||
dir_pin: PA6
|
||||
enable_pin: !PA2
|
||||
step_distance: .010526
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PB4
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PK5
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 260
|
||||
|
||||
[safe_z_home]
|
||||
home_xy_position: 180, 180
|
||||
speed: 100
|
||||
z_hop: 10
|
||||
z_hop_speed: 5
|
||||
|
||||
[bltouch]
|
||||
sensor_pin: ^PD3
|
||||
control_pin: PB5
|
||||
x_offset: -45
|
||||
y_offset: 0
|
||||
z_offset: 0
|
||||
speed: 3.0
|
||||
pin_up_touch_mode_reports_triggered: False
|
||||
|
||||
[bed_mesh]
|
||||
speed: 100
|
||||
horizontal_move_z: 8
|
||||
mesh_min: 50, 50
|
||||
mesh_max: 300,300
|
||||
probe_count: 3,3
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PH5
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PK6
|
||||
control: pid
|
||||
pid_Kp: 690.34
|
||||
pid_Ki: 111.47
|
||||
pid_Kd: 1068.83
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PH6
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK06VNAB-if00-port0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 2500
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
212
config/printer-lulzbot-mini1-2016.cfg
Normal file
212
config/printer-lulzbot-mini1-2016.cfg
Normal file
@@ -0,0 +1,212 @@
|
||||
#This file contains pin mappings for the Lulzbot Mini 1 using RAMBo Mini and SingleExtruder
|
||||
#To use this config, the firmware should be compiled for the AVR atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
# LULZBOT Mini 1 SingleExtruder (RAMBoMini)
|
||||
# defines are copied from Marlin pins_MINIRAMBO.h
|
||||
# pin conversion was found in fastio_1280.h
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
[stepper_x]
|
||||
#define X_STEP_PIN 37
|
||||
step_pin: PC0
|
||||
#define X_DIR_PIN 48
|
||||
dir_pin: PL1
|
||||
#define X_ENABLE_PIN 29
|
||||
enable_pin: !PA7
|
||||
# 1/100
|
||||
step_distance: .010000
|
||||
#define X_MIN_PIN 12
|
||||
endstop_pin: ^!PB6
|
||||
position_endstop: -3
|
||||
position_min: -3
|
||||
position_max: 159
|
||||
homing_speed: 50
|
||||
homing_retract_dist: 2.0
|
||||
second_homing_speed: 5
|
||||
|
||||
[stepper_y]
|
||||
#define Y_STEP_PIN 36
|
||||
step_pin: PC1
|
||||
#define Y_DIR_PIN 49
|
||||
dir_pin: !PL0
|
||||
#define Y_ENABLE_PIN 28
|
||||
enable_pin: !PA6
|
||||
# 1/100
|
||||
step_distance: .010000
|
||||
#define Y_MIN_PIN 11
|
||||
endstop_pin: ^!PB5
|
||||
position_endstop: -7
|
||||
position_min: -7
|
||||
position_max: 173
|
||||
homing_speed: 50
|
||||
homing_retract_dist: 2.0
|
||||
second_homing_speed: 5
|
||||
|
||||
[stepper_z]
|
||||
#define Z_STEP_PIN 35
|
||||
step_pin: PC2
|
||||
#define Z_DIR_PIN 47
|
||||
dir_pin: PL2
|
||||
#define Z_ENABLE_PIN 27
|
||||
enable_pin: !PA5
|
||||
# 1/1600
|
||||
step_distance: 0.000625
|
||||
#define Z_MAX_PIN 23
|
||||
endstop_pin: ^!PA1
|
||||
# I have replaced the original nozzle with
|
||||
# a hardened steel one that make the extruder
|
||||
# 1-1.5mm longer, so this may be a little too low
|
||||
position_endstop: 161.5
|
||||
position_max: 161.5
|
||||
position_min: -2.0
|
||||
homing_speed: 7
|
||||
homing_retract_dist: 2.0
|
||||
second_homing_speed: 2
|
||||
|
||||
[extruder]
|
||||
#define E0_STEP_PIN 34
|
||||
step_pin: PC3
|
||||
#define E0_DIR_PIN 43
|
||||
dir_pin: !PL6
|
||||
#define E0_ENABLE_PIN 26
|
||||
enable_pin: !PA4
|
||||
# 1/833
|
||||
step_distance: 0.001200480192076831
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 2.850
|
||||
#define HEATER_0_PIN 3
|
||||
heater_pin: PE5
|
||||
#The Extruder uses 100K thermistor - ATC Semitec 104GT-2 (#5) and PID control
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
# I can't explain this from Marlin
|
||||
sensor_pin: PF0
|
||||
control: pid
|
||||
pid_Kp: 28.79
|
||||
pid_Ki: 1.91
|
||||
pid_Kd: 108.51
|
||||
min_temp: 0
|
||||
max_temp: 280
|
||||
min_extrude_temp: 160
|
||||
max_extrude_only_velocity: 500
|
||||
max_extrude_only_accel: 2000
|
||||
|
||||
[heater_bed]
|
||||
#define HEATER_BED_PIN 4
|
||||
heater_pin: PG5
|
||||
# The Heater Bed uses Honeywell 100K 135-104LAG-J01 temp sensor (#7) and PID control
|
||||
sensor_type: Honeywell 100K 135-104LAG-J01
|
||||
# I can't explain this from Marlin
|
||||
sensor_pin: PF2
|
||||
control: pid
|
||||
pid_Kp: 294.0
|
||||
pid_Ki: 65.0
|
||||
pid_Kd: 382.0
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
#define FAN_PIN 8
|
||||
pin: PH5
|
||||
|
||||
[heater_fan nozzle_cooling_fan]
|
||||
#define FAN1_PIN 6
|
||||
pin: PH3
|
||||
|
||||
[output_pin stepper_xy_current]
|
||||
#define MOTOR_CURRENT_PWM_XY_PIN 46
|
||||
pin: PL3
|
||||
pwm: True
|
||||
scale: 2.0
|
||||
cycle_time: .000030
|
||||
hardware_pwm: True
|
||||
static_value: 1.300
|
||||
|
||||
[output_pin stepper_z_current]
|
||||
pin: PL4
|
||||
pwm: True
|
||||
scale: 2.0
|
||||
cycle_time: .000030
|
||||
hardware_pwm: True
|
||||
static_value: 1.630
|
||||
|
||||
[output_pin stepper_e_current]
|
||||
pin: PL5
|
||||
pwm: True
|
||||
scale: 2.0
|
||||
cycle_time: .000030
|
||||
hardware_pwm: True
|
||||
static_value: 1.250
|
||||
|
||||
[static_digital_output stepper_config]
|
||||
# Microstepping pins
|
||||
#define X_MS1_PIN 40
|
||||
#define X_MS2_PIN 41
|
||||
#define Y_MS1_PIN 69
|
||||
#define Y_MS2_PIN 39
|
||||
#define Z_MS1_PIN 68
|
||||
#define Z_MS2_PIN 67
|
||||
#define E0_MS1_PIN 65
|
||||
#define E0_MS2_PIN 66
|
||||
pins:
|
||||
PG1, PG0,
|
||||
PK7, PG2,
|
||||
PK6, PK5,
|
||||
PK3, PK4
|
||||
|
||||
[static_digital_output yellow_led]
|
||||
#define LED_PIN 13
|
||||
pins: !PB7
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 2000
|
||||
max_z_velocity: 7
|
||||
max_z_accel: 500
|
||||
|
||||
[homing_override]
|
||||
gcode:
|
||||
G91
|
||||
G28 Z
|
||||
G0 Z-5
|
||||
G28 X Y
|
||||
G0 X3 Y7
|
||||
G90
|
||||
|
||||
[probe]
|
||||
#define Z_MIN_PROBE_PIN 10
|
||||
pin: ^!PB4
|
||||
# z_offset equals washer thickness ~= 1.377
|
||||
z_offset: 1.377
|
||||
speed: 5.0
|
||||
samples: 2
|
||||
sample_retract_dist: 1.0
|
||||
samples_result: average
|
||||
samples_tolerance: 0.200
|
||||
samples_tolerance_retries: 2
|
||||
|
||||
[bed_tilt]
|
||||
# Enable bed tilt measurments using the probe we defined above
|
||||
# Probe points using X0 Y0 offsets @ 0.01mm/step
|
||||
points: -2,-6
|
||||
156,-6
|
||||
156,158
|
||||
-2,158
|
||||
speed: 75
|
||||
horizontal_move_z: 2
|
||||
|
||||
[firmware_retraction]
|
||||
retract_length: 2
|
||||
retract_speed: 200
|
||||
unretract_extra_length: 0
|
||||
unretract_speed: 200
|
||||
|
||||
[gcode_macro G29]
|
||||
# Preform the ABL by running G29 in the start GCODE script
|
||||
gcode:
|
||||
BED_TILT_CALIBRATE
|
||||
@@ -2,6 +2,8 @@
|
||||
# use this config, the firmware should be compiled for the AVR
|
||||
# atmega2560.
|
||||
|
||||
# For a TAZ6 with DualV3 extruder, see printer-lulzbot-taz6-dual-v3-2017.cfg.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
@@ -37,6 +39,7 @@ position_min: -1.5
|
||||
position_max: 270
|
||||
homing_speed: 1
|
||||
|
||||
# settings for "Tilapia" Hexagon extruder (TAZ6 standard)
|
||||
[extruder]
|
||||
step_pin: PC3
|
||||
dir_pin: !PL6
|
||||
@@ -55,19 +58,33 @@ min_temp: 0
|
||||
max_temp: 300
|
||||
min_extrude_temp: 140
|
||||
|
||||
#[extruder1]
|
||||
#step_pin: PC4
|
||||
#dir_pin: PL7
|
||||
#enable_pin: !PA3
|
||||
#heater_pin: PH4
|
||||
#sensor_pin: PF1
|
||||
#...
|
||||
# settings for "Angelfish" Aerostruder (E3D Titan Aero V6)
|
||||
#[extruder]
|
||||
#step_pin: PC3
|
||||
#dir_pin: !PL6
|
||||
#enable_pin: !PA4
|
||||
#step_distance: 0.002381
|
||||
#nozzle_diameter: 0.400
|
||||
#filament_diameter: 2.920
|
||||
#heater_pin: PH6
|
||||
#sensor_type: ATC Semitec 104GT-2
|
||||
#sensor_pin: PF0
|
||||
#control: pid
|
||||
#pid_Kp: 21.00
|
||||
#pid_Ki: 1.78
|
||||
#pid_Kd: 61.93
|
||||
#min_temp: 0
|
||||
#max_temp: 300
|
||||
#min_extrude_temp: 140
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PE5
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_type: Honeywell 100K 135-104LAG-J01
|
||||
sensor_pin: PF2
|
||||
control: watermark
|
||||
control: pid
|
||||
pid_Kp: 162.0
|
||||
pid_Ki: 17.0
|
||||
pid_Kd: 378.0
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
@@ -114,3 +131,33 @@ lcd_type: st7920
|
||||
cs_pin: PG4
|
||||
sclk_pin: PJ2
|
||||
sid_pin: PG3
|
||||
encoder_pins: ^PJ6,^PJ5
|
||||
click_pin: ^!PE2
|
||||
menu_timeout: 5
|
||||
|
||||
[probe]
|
||||
pin: ^!PA0
|
||||
z_offset:1.377
|
||||
speed: 0.5
|
||||
lift_speed: 1.5
|
||||
samples: 2
|
||||
sample_retract_dist: 1.0
|
||||
samples_tolerance: 0.075
|
||||
|
||||
[bed_tilt]
|
||||
points: -5,-3
|
||||
290,-3
|
||||
290,292
|
||||
-5,292
|
||||
speed: 75
|
||||
horizontal_move_z: 5
|
||||
|
||||
[safe_z_home]
|
||||
home_xy_position: -19,265
|
||||
speed: 50.0
|
||||
z_hop: 10.0
|
||||
|
||||
# Perform ABL by running G29 in START gcode
|
||||
[gcode_macro G29]
|
||||
gcode:
|
||||
BED_TILT_CALIBRATE
|
||||
|
||||
392
config/printer-lulzbot-taz6-dual-v3-2017.cfg
Normal file
392
config/printer-lulzbot-taz6-dual-v3-2017.cfg
Normal file
@@ -0,0 +1,392 @@
|
||||
#This file contains pin mappings for the Lulzbot TAZ 6 circa 2017 using RAMBo and Dual v3 toolhead.
|
||||
#To use this config, the firmware should be compiled for the AVR atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
# LULZBOT TAZ6 (RAMBo) with Dual v3 Extruder Master Config
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
#Notes:
|
||||
# - This config includes START and END gcode blocks that already factor in the Marlin X and Y
|
||||
# offsets for the Dual v3 toolhead using the true 0.01mm/step (100step/mm) linear movement value
|
||||
# instead of the 0.00995mm/step (100.5step/mm) value that is stock on the TAZ6 to compensate for
|
||||
# material shrinkage. Material shrinkage compensation should be done in the slicer based on the
|
||||
# material being used.
|
||||
#
|
||||
# - The START and END gcode macros use parameters that should be set using the supplied START and
|
||||
# END gcode blocks. These blocks have gcode variables that have been tested with Cura
|
||||
# Ultimaker Edition (UE) v4.3 and opareate based on how many extruders are active.
|
||||
#
|
||||
# - Pressure Advance feature has been disabled and should be tuned if enabled.
|
||||
#
|
||||
# - All PID values pulled from Lulzbot Marlin 1.1.9.34, however, the PID calibration procedure
|
||||
# should be done to tune these values to your specific hardware.
|
||||
#
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
# LULZBOT TAZ6 Dual v3 Required Parameters
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
[stepper_x]
|
||||
step_pin: PC0
|
||||
dir_pin: PL1
|
||||
enable_pin: !PA7
|
||||
step_distance: .010000
|
||||
endstop_pin: ^PB6
|
||||
position_endstop: -20
|
||||
position_min: -20
|
||||
position_max: 295
|
||||
homing_speed: 50
|
||||
second_homing_speed: 5
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC1
|
||||
dir_pin: !PL0
|
||||
enable_pin: !PA6
|
||||
step_distance: .010000
|
||||
endstop_pin: ^PA1
|
||||
position_endstop: 306
|
||||
position_min: -17
|
||||
position_max: 306
|
||||
homing_speed: 50
|
||||
second_homing_speed: 5
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PC2
|
||||
dir_pin: PL2
|
||||
enable_pin: !PA5
|
||||
step_distance: 0.000625
|
||||
endstop_pin: ^!PB4
|
||||
position_endstop: 5.0
|
||||
position_min: -5.8
|
||||
position_max: 270
|
||||
homing_speed: 10
|
||||
second_homing_speed: 1
|
||||
|
||||
[extruder]
|
||||
# This is Extruder0 on the dual v3 (all -1 index in schematic)
|
||||
# The Dual v3 uses the same temp sensor as the single extruder
|
||||
# The Dual v3 uses 2x SOMEstruders with modified PID values
|
||||
step_pin: PC4
|
||||
dir_pin: !PL7
|
||||
enable_pin: !PA3
|
||||
step_distance: 0.001315789473
|
||||
nozzle_diameter: 0.500
|
||||
filament_diameter: 2.850
|
||||
heater_pin: PH4
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PF1
|
||||
control: pid
|
||||
pid_Kp: 47.45
|
||||
pid_Ki: 4.83
|
||||
pid_Kd: 116.63
|
||||
min_temp: 0
|
||||
max_temp: 300
|
||||
min_extrude_temp: 120
|
||||
|
||||
[extruder1]
|
||||
# This is Extruder1 on the dual v3 (all -0 index in schematic)
|
||||
# The Dual v3 uses the same temp sensor as the single extruder
|
||||
# The Dual v3 uses 2x SOMEstruders with modified PID values
|
||||
step_pin: PC3
|
||||
dir_pin: PL6
|
||||
enable_pin: !PA4
|
||||
step_distance: 0.001315789473
|
||||
nozzle_diameter: 0.500
|
||||
filament_diameter: 2.850
|
||||
heater_pin: PH6
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PF0
|
||||
control: pid
|
||||
pid_Kp: 47.45
|
||||
pid_Ki: 4.83
|
||||
pid_Kd: 116.63
|
||||
min_temp: 0
|
||||
max_temp: 300
|
||||
min_extrude_temp: 120
|
||||
|
||||
[heater_bed]
|
||||
#The Heater Bed uses Honeywell 100K 135-104LAG-J01 temp sensor and PID control
|
||||
heater_pin: PE5
|
||||
sensor_type: Honeywell 100K 135-104LAG-J01
|
||||
sensor_pin: PF2
|
||||
control: pid
|
||||
pid_Kp: 162.0
|
||||
pid_Ki: 17.0
|
||||
pid_Kd: 378.0
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
#On Dual v3 heat break fan is connected to PH3 (part cooling fan on single extruder)
|
||||
pin: PH3
|
||||
|
||||
[heater_fan nozzle_cooling_fan]
|
||||
#On Dual v3 part fans are connected to PH5 (heat break fan on single extruder)
|
||||
pin: PH5
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 2
|
||||
max_z_accel: 10
|
||||
|
||||
[ad5206 stepper_digipot]
|
||||
enable_pin: PD7
|
||||
scale: 2.08
|
||||
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
|
||||
channel_1: 1.34
|
||||
channel_2: 1.34
|
||||
channel_4: 1.1
|
||||
channel_5: 1.1
|
||||
channel_6: 1.1
|
||||
|
||||
[static_digital_output stepper_config]
|
||||
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
|
||||
pins:
|
||||
PG1, PG0,
|
||||
PK7, PG2,
|
||||
PK6, PK5,
|
||||
PK3, PK4,
|
||||
PK1, PK2
|
||||
|
||||
[static_digital_output yellow_led]
|
||||
pins: !PB7
|
||||
|
||||
[display]
|
||||
lcd_type: st7920
|
||||
cs_pin: PG4
|
||||
sclk_pin: PJ2
|
||||
sid_pin: PG3
|
||||
encoder_pins: ^PJ6,^PJ5
|
||||
click_pin: ^!PE2
|
||||
menu_timeout:5
|
||||
|
||||
[probe]
|
||||
#Define the nozzle probe feature
|
||||
pin: ^!PA0
|
||||
#---> z_offset may vary from machine to machine. Stock is 1.377. <---
|
||||
z_offset:1.350
|
||||
speed: 1.0
|
||||
samples: 2
|
||||
samples_tolerance: 0.100
|
||||
|
||||
[bed_tilt]
|
||||
#Enable bed tilt measurments using the probe we defined above
|
||||
#Probe points using X0 Y0 offsets @ 0.01mm/step
|
||||
points: -3,-6
|
||||
282,-6
|
||||
282,300
|
||||
-3,300
|
||||
speed: 75
|
||||
horizontal_move_z: 5
|
||||
|
||||
[safe_z_home]
|
||||
#Needed to lift the Z to clear homing switch on bed
|
||||
# ---> WARNING! - Z_MAX limit switch not monitored in Klipper! <---
|
||||
# ---> This could potentially crash the toolhead if already at the top of Z travel! <---
|
||||
home_xy_position: -19,265
|
||||
speed: 50.0
|
||||
z_hop: 15.0
|
||||
move_to_previous: False
|
||||
|
||||
[gcode_macro G29]
|
||||
#Preform the ABL by running G29 in the START gcode script
|
||||
gcode:
|
||||
BED_TILT_CALIBRATE
|
||||
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
# Macros to Support TAZ6 START and END Blocks
|
||||
#-------------------------------------------------------------------------------------------------
|
||||
#Cura UE 4.3 (and perhaps older) has extruder enable controls that define the number of active
|
||||
#extruders. These blocks use that information to control only the active extruders.
|
||||
#NOTE: T0 is the default extruder, T1 is optional.
|
||||
#START block for use with dual or single extrusion prints
|
||||
[gcode_macro START_PRINT]
|
||||
default_parameter_EXTRUDERS_ENABLED_COUNT: 1
|
||||
default_parameter_MATERIAL_STANDBY_TEMPERATURE_0: 175
|
||||
default_parameter_MATERIAL_STANDBY_TEMPERATURE_1: 175
|
||||
default_parameter_MATERIAL_BED_TEMPERATURE_LAYER_0: 65
|
||||
default_parameter_MATERIAL_PRINT_TEMPERATURE_LAYER_0_0: 210
|
||||
default_parameter_MATERIAL_PRINT_TEMPERATURE_LAYER_0_1: 210
|
||||
#configure the params below to tune the stage desired temperatures based on the standby temps
|
||||
default_parameter_MATERIAL_SOFTEN_TEMP_OFFSET: 35
|
||||
default_parameter_MATERIAL_WIPE_TEMP_OFFSET: 35
|
||||
default_parameter_MATERIAL_PROBE_TEMP_OFFSET: 35
|
||||
gcode:
|
||||
;This profile is designed specifically for LulzBot TAZ6 3D Printer with the Yellowfin Dual running Klipper
|
||||
M73 P0 ; clear GLCD progress bar
|
||||
M107 ; disable fans
|
||||
G90 ; absolute positioning
|
||||
M104 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T0 ; soften filament
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
M104 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T1 ; soften filament
|
||||
{% endif %}
|
||||
M140 S{MATERIAL_BED_TEMPERATURE_LAYER_0} ; get bed heating up
|
||||
G28 X Y ; home X and Y
|
||||
G1 X-17 F3000 ; clear X endstop
|
||||
M117 Heating... ; LCD status message
|
||||
M106 S64 ; Fan On lightly
|
||||
M109 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T0 ; wait for temp
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
M109 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_SOFTEN_TEMP_OFFSET|int} T1 ; wait for temp
|
||||
{% endif %}
|
||||
M107 ; Fan Off
|
||||
T0 ; return to first extruder
|
||||
G28 Z ; home Z
|
||||
T0 ; select this extruder first
|
||||
M82 ; set extruder to absolute mode
|
||||
G92 E0 ; set extruder to zero
|
||||
G1 E-15 F100 ; suck up 15mm of filament
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
T1 ; switch extruders
|
||||
M82 ; set extruder to absolute mode
|
||||
G92 E0 ; set extruder to zero
|
||||
G1 E-15 F100 ; suck up 15mm of filament
|
||||
{% endif %}
|
||||
M104 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_WIPE_TEMP_OFFSET|int} T0 ; set to wipe temp
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
M104 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_WIPE_TEMP_OFFSET|int} T1 ; set to wipe temp
|
||||
{% endif %}
|
||||
M106 ; Turn on fans to speed cooling
|
||||
G1 X-18 Y107 F3000 ; move above wiper pad
|
||||
M117 Cooling... ; LCD status message
|
||||
M109 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_WIPE_TEMP_OFFSET|int} T0 ; wait for T0 to reach temp
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
M109 S{MATERIAL_STANDBY_TEMPERATURE_1|int - MATERIAL_WIPE_TEMP_OFFSET|int} T1 ; wait for T1 to reach temp
|
||||
{% endif %}
|
||||
M107 ; Turn off fan
|
||||
M117 Wiping... ; LCD status message
|
||||
T0 ; switch extruders
|
||||
G1 Z1 ; push nozzle into wiper
|
||||
G1 X -18 Y107 F1000 ; slow wipe
|
||||
G1 X -18 Y102 F1000 ; slow wipe
|
||||
G1 X -18 Y97 F1000 ; slow wipe
|
||||
G1 X -17 Y102 F1000 ; slow wipe
|
||||
G1 X -18 Y92 F1000 ; slow wipe
|
||||
G1 X -17 Y107 F1000 ; slow wipe
|
||||
G1 X -18 Y87 F2000 ; fast wipe
|
||||
G1 X -17 Y77 F2000 ; fast wipe
|
||||
G1 X -18 Y82 F2000 ; fast wipe
|
||||
G1 X -17 Y72 F2000 ; fast wipe
|
||||
G1 X -18 Y67 F2000 ; fast wipe
|
||||
G1 X -17 Y62 F2000 ; fast wipe
|
||||
G1 X -18 Y52 F2000 ; fast wipe
|
||||
G1 X -17 Y57 F2000 ; fast wipe
|
||||
G1 X -18 Y47 F2000 ; fast wipe
|
||||
G1 X -17 Y52 F2000 ; fast wipe
|
||||
G1 X -18 Y82 F2000 ; fast wipe
|
||||
G1 X -17 Y42 Z2 F2000 ; fast wipe
|
||||
G1 X -18 Y47 F2000 ; fast wipe
|
||||
G1 X -17 Y37 F2000 ; fast wipe
|
||||
G1 X -18 Y42 F2000 ; fast wipe
|
||||
G1 X -17 Y37 Z1.5 F1000 ; slow wipe
|
||||
G1 X -18 Y35 F1000 ; slow wipe
|
||||
G1 X -17 Z5 ; raise extruder
|
||||
M109 S{MATERIAL_STANDBY_TEMPERATURE_0|int - MATERIAL_PROBE_TEMP_OFFSET|int} ; heat to probe temp
|
||||
M117 Leveling Bed... ; LCD status message
|
||||
M204 S100 ; set accel for probing
|
||||
G29 ; probe sequence (for auto-leveling)
|
||||
G1 Z10 ; clear Z home switch
|
||||
M204 S500 ; set accel back to normal
|
||||
M117 Heating... ; LCD status message
|
||||
M106 S64 ; Fan On lightly
|
||||
M104 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_0} T0 ; set extruder temp
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
M104 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_1} T1; set extruder temp
|
||||
{% endif %}
|
||||
G1 X100 Y-16 Z0.5 F3000 ; move to open space
|
||||
M400 ; clear buffer
|
||||
M109 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_0} T0 ; set extruder temp and wait
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
M109 S{MATERIAL_PRINT_TEMPERATURE_LAYER_0_1} T1; set extruder temp and wait
|
||||
{% endif %}
|
||||
M107 ; Fan Off
|
||||
M117 Purging... ; LCD status message
|
||||
T0 ; select this extruder first
|
||||
G92 E-15 ; set extruder negative amount to purge
|
||||
G1 E0 F100 ; undo retraction
|
||||
G92 E-15 ; set extruder negative amount to purge
|
||||
G1 E0 F100 ; purge 15mm of filament
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
T1 ; switch to second extruder
|
||||
G92 E-15 ; set extruder negative amount to purge
|
||||
G1 E0 F100 ; undo retraction
|
||||
G92 E-15 ; set extruder negative amount to purge
|
||||
G1 E0 F50 ; purge 15mm of filament
|
||||
G92 E0 ; zero out T1
|
||||
G1 E-15 F250 ; retract 15mm from T1 - extrude a 500mm skirt/brim to undo in initial layer
|
||||
M400 ; clear buffer
|
||||
M106 ; Max Fan Speed
|
||||
M109 S{MATERIAL_STANDBY_TEMPERATURE_1} T1 ; wait for T1 to cool to prevent ooze
|
||||
M107 ; Fan Off
|
||||
{% endif %}
|
||||
G1 Z0.5 ; clear bed (barely)
|
||||
G1 X100 Y0 F5000 ; move above bed to shear off filament
|
||||
T0 ; switch to first extruder
|
||||
M190 S{MATERIAL_BED_TEMPERATURE_LAYER_0}; get bed temping up during first layer
|
||||
G1 Z2 E0 F75
|
||||
M400 ; clear buffer
|
||||
M117 TAZ Printing... ; LCD status message
|
||||
|
||||
#END block for use with dual or single extrusion prints
|
||||
[gcode_macro END_PRINT]
|
||||
default_parameter_EXTRUDERS_ENABLED_COUNT: 1
|
||||
default_parameter_MATERIAL_PART_REMOVAL_TEMPERATURE: 45
|
||||
default_parameter_MATERIAL_KEEP_PART_REMOVAL_TEMPERATURE_T: 0
|
||||
gcode:
|
||||
M400
|
||||
M104 S0 T0 ; T0 hotend off
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
M104 S0 T1 ; T1 hotend off
|
||||
{% endif %}
|
||||
M107 ; fans off
|
||||
G91 ; relative positioning
|
||||
T0
|
||||
G1 E-1 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure
|
||||
G1 Z20 E-5 X-20 Y-20 F3000 ; move Z up a bit and retract filament even more
|
||||
G1 E6 ; re-prime extruder 1
|
||||
{% if EXTRUDERS_ENABLED_COUNT|int == 2 %}
|
||||
T1
|
||||
G1 E-5 F300 ; retract the filament a bit before lifting the nozzle, to release some of the pressure
|
||||
G1 E5 ; re-prime extruder 2
|
||||
T0
|
||||
{% endif %}
|
||||
M117 Cooling ... ; progress indicator message
|
||||
G90 ; absolute positioning
|
||||
G1 Y0 F3000 ; move to cooling position
|
||||
M190 S{MATERIAL_PART_REMOVAL_TEMPERATURE} ; set bed to cool off
|
||||
G1 Y280 F3000 ; present finished print
|
||||
M140 S{MATERIAL_KEEP_PART_REMOVAL_TEMPERATURE_T}; keep temperature or cool downs
|
||||
M84 ; steppers off
|
||||
G90 ; absolute positioning
|
||||
M117 Print Complete ; progress indicator message
|
||||
|
||||
#---------------------------------------------------------------------------------------------------
|
||||
# ULTIMAKER CURA START AND END SCRIPTS - Replace default START and STOP scripts with the below GCODE
|
||||
#---------------------------------------------------------------------------------------------------
|
||||
#---> Dual Extrusion Printer Profiles < ---
|
||||
#; LulzBot Taz6 w/ Dual Extruder Klipper START gcode script (for Cura UE, tested on v4.3)
|
||||
#; First, set START_PRINT Macro variables from Cura parameters
|
||||
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=EXTRUDERS_ENABLED_COUNT VALUE={extruders_enabled_count}
|
||||
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_STANDBY_TEMPERATURE_0 VALUE={material_standby_temperature}
|
||||
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_STANDBY_TEMPERATURE_1 VALUE={material_standby_temperature, 1}
|
||||
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_BED_TEMPERATURE_LAYER_0 VALUE={material_bed_temperature_layer_0}
|
||||
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_PRINT_TEMPERATURE_LAYER_0_0 VALUE={material_print_temperature_layer_0}
|
||||
#SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=MATERIAL_PRINT_TEMPERATURE_LAYER_0_1 VALUE={material_print_temperature_layer_0, 1}
|
||||
#; Execute START_PRINT GCODE defined in Klipper config file
|
||||
#START_PRINT
|
||||
|
||||
#; LulzBot Taz6 w/ Dual Extruder v3 Klipper END gcode script (for Cura UE, tested on v4.3)
|
||||
#; First, set END_PRINT Macro variables from Cura parameters
|
||||
#SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=EXTRUDERS_ENABLED_COUNT VALUE={extruders_enabled_count}
|
||||
#SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=MATERIAL_PART_REMOVAL_TEMPERATURE VALUE=45
|
||||
#SET_GCODE_VARIABLE MACRO=END_PRINT VARIABLE=MATERIAL_KEEP_PART_REMOVAL_TEMPERATURE_T VALUE=0
|
||||
#; Execute END_PRINT GCODE defined in Klipper config file
|
||||
#END_PRINT
|
||||
@@ -53,7 +53,6 @@ enable_pin: !PA4
|
||||
step_distance: .004242
|
||||
nozzle_diameter: 0.350
|
||||
filament_diameter: 1.750
|
||||
pressure_advance: 0.07
|
||||
heater_pin: PH6
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PF0
|
||||
@@ -98,7 +97,7 @@ scale: 1.56
|
||||
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
|
||||
channel_1: 1.0
|
||||
channel_2: 0.75
|
||||
channel_4: 0.82
|
||||
channel_4: 0.62 # Z-motor with 30 Ohm coils and 19V power can't exceed .633 Amps
|
||||
channel_5: 0.82
|
||||
channel_6: 0.82
|
||||
|
||||
|
||||
102
config/printer-makergear-m2-2016.cfg
Normal file
102
config/printer-makergear-m2-2016.cfg
Normal file
@@ -0,0 +1,102 @@
|
||||
# Support for Makergear M2 printers circa 2016 that have the RAMBo
|
||||
# electronics along with the V4 extruder and the black and silver Z
|
||||
# stepper. The electronics use Allegro A4984 stepper drivers with
|
||||
# 1/16th micro-stepping. To use this config, the firmware should be
|
||||
# compiled for the AVR atmega2560.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC0
|
||||
dir_pin: !PL1
|
||||
enable_pin: !PA7
|
||||
step_distance: .01125
|
||||
endstop_pin: ^!PB6
|
||||
position_endstop: 0
|
||||
position_max: 205
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC1
|
||||
dir_pin: PL0
|
||||
enable_pin: !PA6
|
||||
step_distance: .01125
|
||||
endstop_pin: ^!PB5
|
||||
position_endstop: 0
|
||||
position_max: 250
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PC2
|
||||
dir_pin: !PL2
|
||||
enable_pin: !PA5
|
||||
step_distance: .0025
|
||||
endstop_pin: ^!PB4
|
||||
position_min: 0.1
|
||||
position_endstop: 0.7
|
||||
position_max: 200
|
||||
homing_speed: 15
|
||||
homing_retract_dist: 2.0
|
||||
|
||||
[extruder]
|
||||
step_pin: PC3
|
||||
dir_pin: PL6
|
||||
enable_pin: !PA4
|
||||
step_distance: .00188
|
||||
nozzle_diameter: 0.350
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PH6
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PF0
|
||||
control: pid
|
||||
pid_kp: 26.137
|
||||
pid_ki: 1.489
|
||||
pid_kd: 114.675
|
||||
min_temp: 0
|
||||
max_temp: 275
|
||||
max_extrude_only_distance: 150.0
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PE5
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PF2
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 90
|
||||
|
||||
[fan]
|
||||
pin: PH5
|
||||
|
||||
[heater_fan nozzle_cooling_fan]
|
||||
pin: PH3
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 500
|
||||
max_accel: 3000
|
||||
max_z_velocity: 25
|
||||
max_z_accel: 100
|
||||
|
||||
[ad5206 stepper_digipot]
|
||||
enable_pin: PD7
|
||||
# Scale the config so that the channel value can be specified in amps.
|
||||
scale: 2.08
|
||||
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
|
||||
channel_1: 1.25
|
||||
channel_2: 0.75
|
||||
channel_4: 0.75
|
||||
channel_5: 0.75
|
||||
channel_6: 0.75
|
||||
|
||||
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
|
||||
[static_digital_output stepper_config]
|
||||
pins:
|
||||
PG1, PG0,
|
||||
PK7, PG2,
|
||||
PK6, PK5,
|
||||
PK3, PK4,
|
||||
PK1, PK2
|
||||
|
||||
[static_digital_output yellow_led]
|
||||
pins: !PB7
|
||||
161
config/printer-monoprice-mini-delta-2017.cfg
Normal file
161
config/printer-monoprice-mini-delta-2017.cfg
Normal file
@@ -0,0 +1,161 @@
|
||||
# This file contains common pin mappings for the 2017 Monoprice
|
||||
# Mini Delta. To use this config, the firmware should be compiled for the
|
||||
# STM32F070 microcontroller with an 8MHz crystal and USB for communication
|
||||
# (instead of serial).
|
||||
#
|
||||
# IMPORTANT: Use of Kipper with a Monoprice Mini Delta requires a power supply
|
||||
# with a _minimum_ 120 W (i.e. 10 A) capacity! The stock power supply will not
|
||||
# work, as it can't power the hotend and the bed at the same time.
|
||||
#
|
||||
# Note 1: Some controller boards only trigger the bootloader when an update file
|
||||
# is "printed" from the LCD, rather than supporting bootloader triggering
|
||||
# during bootup. It may be preferable to use an ST-Link V2 to flash the
|
||||
# firmware instead. Follow this link for an example of the commands needed to
|
||||
# do this: https://github.com/arkorobotics/MiniDeltaBootloader
|
||||
#
|
||||
# Note 2: Klipper does not currently support the LCD interface used on this
|
||||
# printer.
|
||||
#
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
|
||||
# Stepper A is the front-left tower, as originally wired. If you've rewired
|
||||
# your steppers to "correct" this, you'll need to swap these values.
|
||||
[stepper_a]
|
||||
homing_speed: 50
|
||||
step_pin: PB12
|
||||
dir_pin: PB11
|
||||
enable_pin: !PB10
|
||||
step_distance: .0175 # This is 57.14 steps per mm
|
||||
endstop_pin: ^PC14
|
||||
position_endstop: 125.00
|
||||
arm_length: 120.8
|
||||
# Some users report better success using the following value for arm_length:
|
||||
#arm_length: 121.36
|
||||
|
||||
[stepper_b]
|
||||
step_pin: PB2
|
||||
dir_pin: PB1
|
||||
enable_pin: !PB10
|
||||
step_distance: .0175 # This is 57.14 steps per mm
|
||||
endstop_pin: ^PC15
|
||||
|
||||
[stepper_c]
|
||||
step_pin: PB14
|
||||
dir_pin: PB13
|
||||
enable_pin: !PB10
|
||||
step_distance: .0175 # This is 57.14 steps per mm
|
||||
endstop_pin: ^PC13
|
||||
|
||||
[extruder]
|
||||
step_pin: PA7
|
||||
dir_pin: !PA6
|
||||
enable_pin: !PB0
|
||||
step_distance: .02062 # This is 48.50 steps per mm
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PA1
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA0
|
||||
# calibrated at 240C on stock hardware
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 300
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA5
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA4
|
||||
# calibrated at 70C on stock hardware
|
||||
control: pid
|
||||
pid_kp: 51.249
|
||||
pid_ki: 4.437
|
||||
pid_kd: 147.983
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
# Print cooling fan (omit section if fan not present)
|
||||
[fan]
|
||||
pin: PA8
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyACM0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: delta
|
||||
max_velocity: 150
|
||||
max_accel: 1200
|
||||
max_z_velocity: 100
|
||||
# minimum_z_position is negative to allow delta calibration to work
|
||||
minimum_z_position: -10.0
|
||||
delta_radius: 63.00
|
||||
# Some users report better success using the following value for arm_length:
|
||||
#delta_radius: 62.70
|
||||
|
||||
[delta_calibrate]
|
||||
radius: 50
|
||||
speed: 50
|
||||
horizontal_move_z: 5
|
||||
|
||||
######################################################################
|
||||
# Bed leveling support
|
||||
######################################################################
|
||||
|
||||
[bed_mesh]
|
||||
speed: 50
|
||||
horizontal_move_z: 5
|
||||
mesh_radius: 50
|
||||
round_probe_count: 5
|
||||
fade_start: 1.0
|
||||
fade_end: 0.0
|
||||
|
||||
######################################################################
|
||||
# Bed probing hardware
|
||||
######################################################################
|
||||
|
||||
[probe]
|
||||
pin: ^!PB7
|
||||
x_offset: 0.0
|
||||
y_offset: 0.0
|
||||
z_offset: -0.1
|
||||
speed: 5.0
|
||||
samples: 1
|
||||
sample_retract_dist: 2.0
|
||||
samples_result: average
|
||||
samples_tolerance: 0.100
|
||||
samples_tolerance_retries: 0
|
||||
|
||||
######################################################################
|
||||
# G-Code macros and events
|
||||
######################################################################
|
||||
|
||||
# G-Code macros (one may define any number of sections with a
|
||||
# "gcode_macro" prefix).
|
||||
[gcode_macro START_PRINT]
|
||||
gcode:
|
||||
G90 ; switch to absolute positioning - this line was added in case Cura doesn't include it by default
|
||||
M82 ; set extruder to absolute mode - this line was added in case Cura doesn't include it by default
|
||||
G28 ; start from home position
|
||||
BED_MESH_CALIBRATE
|
||||
G1 Z15.0 F4800 ; move the nozzle up 15mm
|
||||
G92 E0 ; reset extrusion distance
|
||||
G1 F200 E5 ; extrude 3mm of feed stock
|
||||
G92 E0 ; reset extrusion distance again
|
||||
G1 F4800
|
||||
|
||||
[gcode_macro END_PRINT]
|
||||
gcode:
|
||||
M104 S0 ; turn off hotend heater
|
||||
M140 S0 ; turn off bed heater
|
||||
G91 ; Switch to use Relative Coordinates
|
||||
G1 E-3 F700 ; retract the filament a bit before lifting the nozzle to release some of the pressure
|
||||
G1 Z2 F1000 ; raise platform 2mm from current position
|
||||
G1 E-2 F700 ; retract filament even more
|
||||
G90 ; Switch back to using absolute coordinates
|
||||
G28 X Y Z ; Return to home position. Without an X Y or Z after G28 the print completion time will not be displayed on the Mini Delta's display.
|
||||
M84 ; disable motors
|
||||
M107 ; turn off fan. Don't use M106 S1. Using M106 S1 may prevent the fan from turning on for the following print. Some say M107 doesn't work for them but if the hotend is below 70 degrees it should work
|
||||
148
config/printer-mtw-create-2015.cfg
Normal file
148
config/printer-mtw-create-2015.cfg
Normal file
@@ -0,0 +1,148 @@
|
||||
# This file contains pin mappings for the MTW Create (circa 2015). To
|
||||
# use this config, the firmware should be compiled for the AVR
|
||||
# atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PC0
|
||||
dir_pin: !PL1
|
||||
enable_pin: !PA7
|
||||
step_distance: .01
|
||||
endstop_pin: ^PB6
|
||||
#endstop_pin: ^PA2
|
||||
position_endstop: 0
|
||||
position_max: 250
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC1
|
||||
dir_pin: PL0
|
||||
enable_pin: !PA6
|
||||
step_distance: .01
|
||||
endstop_pin: ^PB5
|
||||
#endstop_pin: ^PA1
|
||||
position_endstop: 0
|
||||
position_max: 320
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PC2
|
||||
dir_pin: PL2
|
||||
enable_pin: !PA5
|
||||
step_distance: .00125
|
||||
endstop_pin: probe:z_virtual_endstop
|
||||
#endstop_pin: ^PC7
|
||||
position_endstop: 0.5
|
||||
position_max: 225
|
||||
|
||||
[extruder]
|
||||
step_pin: PC3
|
||||
dir_pin: PL6
|
||||
enable_pin: !PA4
|
||||
step_distance: .0102
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PH6
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PF0
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 275
|
||||
|
||||
#Uncomment below for dual extruder printers
|
||||
#[extruder1]
|
||||
#step_pin: PC4
|
||||
#dir_pin: PL7
|
||||
#enable_pin: !PA3
|
||||
#heater_pin: PH4
|
||||
#sensor_pin: PF1
|
||||
#step_distance: .0102
|
||||
#nozzle_diameter: 0.400
|
||||
#filament_diameter: 1.750
|
||||
#sensor_type: ATC Semitec 104GT-2
|
||||
#sensor_pin: PF0
|
||||
#control: pid
|
||||
#pid_Kp: 22.2
|
||||
#pid_Ki: 1.08
|
||||
#pid_Kd: 114
|
||||
#min_temp: 0
|
||||
#max_temp: 275
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PE5
|
||||
sensor_type: NTC 100K beta 3950
|
||||
sensor_pin: PF2
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[bltouch]
|
||||
sensor_pin: PB4
|
||||
control_pin: PL5
|
||||
x_offset: -17
|
||||
y_offset: 37
|
||||
z_offset: 2.0
|
||||
|
||||
[safe_z_home]
|
||||
home_xy_position: 125,150
|
||||
z_hop: 10
|
||||
z_hop_speed: 5
|
||||
|
||||
[bed_mesh]
|
||||
mesh_min: 5,5
|
||||
mesh_max: 225,225
|
||||
|
||||
[fan]
|
||||
pin: PH5
|
||||
|
||||
[heater_fan nozzle_cooling_fan]
|
||||
pin: PH3
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-UltiMachine__ultimachine.com__RAMBo_854333433343516051F1-if00
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[ad5206 stepper_digipot]
|
||||
enable_pin: PD7
|
||||
scale: 2.08
|
||||
# Channel 1 is E0, 2 is E1, 3 is unused, 4 is Z, 5 is X, 6 is Y
|
||||
channel_1: 1.34
|
||||
channel_2: 1.0
|
||||
channel_4: 1.1
|
||||
channel_5: 1.1
|
||||
channel_6: 1.1
|
||||
|
||||
# Enable 16 micro-steps on steppers X, Y, Z, E0, E1
|
||||
[static_digital_output stepper_config]
|
||||
pins:
|
||||
PG1, PG0,
|
||||
PK7, PG2,
|
||||
PK6, PK5,
|
||||
PK3, PK4,
|
||||
PK1, PK2
|
||||
|
||||
[static_digital_output yellow_led]
|
||||
pins: !PB7
|
||||
|
||||
# Common EXP1 / EXP2 (display) pins
|
||||
[board_pins]
|
||||
aliases:
|
||||
# Common EXP1/EXP2 headers found on RAMBo v1.4
|
||||
EXP1_1=PE6, EXP1_3=PG3, EXP1_5=PJ2, EXP1_7=PJ7, EXP1_9=<GND>,
|
||||
EXP1_2=PE2, EXP1_4=PG4, EXP1_6=PJ3, EXP1_8=PJ4, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=PB3, EXP2_3=PJ5, EXP2_5=PJ6, EXP2_7=PD4, EXP2_9=<GND>,
|
||||
EXP2_2=PB1, EXP2_4=PB0, EXP2_6=PB2, EXP2_8=PE7, EXP2_10=PH2
|
||||
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi"
|
||||
|
||||
# See the sample-lcd.cfg file for definitions of common LCD displays.
|
||||
@@ -92,3 +92,25 @@ pins:
|
||||
|
||||
[static_digital_output yellow_led]
|
||||
pins: !PB7
|
||||
|
||||
[display]
|
||||
lcd_type: hd44780
|
||||
rs_pin: EXP1_4
|
||||
e_pin: EXP1_3
|
||||
d4_pin: EXP1_5
|
||||
d5_pin: EXP1_6
|
||||
d6_pin: EXP1_7
|
||||
d7_pin: EXP1_8
|
||||
encoder_pins: ^EXP2_3, ^EXP2_5
|
||||
click_pin: ^!EXP1_2
|
||||
#kill_pin: ^!EXP2_8
|
||||
|
||||
[board_pins]
|
||||
aliases:
|
||||
# Common EXP1/EXP2 headers found on RAMBo v1.4
|
||||
EXP1_1=PE6, EXP1_3=PG3, EXP1_5=PJ2, EXP1_7=PJ7, EXP1_9=<GND>,
|
||||
EXP1_2=PE2, EXP1_4=PG4, EXP1_6=PJ3, EXP1_8=PJ4, EXP1_10=<5V>,
|
||||
# EXP2 header
|
||||
EXP2_1=PB3, EXP2_3=PJ5, EXP2_5=PJ6, EXP2_7=PD4, EXP2_9=<GND>,
|
||||
EXP2_2=PB1, EXP2_4=PB0, EXP2_6=PB2, EXP2_8=PE7, EXP2_10=PH2
|
||||
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi"
|
||||
|
||||
88
config/printer-sovol-sv01-2020.cfg
Normal file
88
config/printer-sovol-sv01-2020.cfg
Normal file
@@ -0,0 +1,88 @@
|
||||
# This file contains common pin mappings for Sovol Sv01 printer. To
|
||||
# use this config, the firmware should be compiled for the AVR
|
||||
# atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: ar54
|
||||
dir_pin: ar55
|
||||
enable_pin: !ar38
|
||||
step_distance: .0125
|
||||
endstop_pin: ^ar3
|
||||
position_endstop: 0
|
||||
position_max: 300
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: ar60
|
||||
dir_pin: ar61
|
||||
enable_pin: !ar56
|
||||
step_distance: .0125
|
||||
endstop_pin: ^ar14
|
||||
position_endstop: 0
|
||||
position_max: 255
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: ar46
|
||||
dir_pin: !ar48
|
||||
enable_pin: !ar62
|
||||
step_distance: .0025
|
||||
endstop_pin: ^ar18
|
||||
position_endstop: 0
|
||||
position_max: 300
|
||||
|
||||
[extruder]
|
||||
step_pin: ar26
|
||||
dir_pin: !ar28
|
||||
enable_pin: !ar24
|
||||
step_distance: .0024
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: ar10
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog13
|
||||
control: pid
|
||||
pid_Kp: 31.147
|
||||
pid_Ki: 2.076
|
||||
pid_Kd: 116.803
|
||||
min_temp: 0
|
||||
max_temp: 265
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: ar8
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: analog14
|
||||
control: pid
|
||||
pid_Kp: 72.174
|
||||
pid_Ki: 1.816
|
||||
pid_Kd: 717.224
|
||||
min_temp: 0
|
||||
max_temp: 110
|
||||
|
||||
[filament_switch_sensor my_sensor]
|
||||
switch_pin: ar2
|
||||
pause_on_runout: True
|
||||
|
||||
[fan]
|
||||
pin: ar9
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyUSB0
|
||||
pin_map: arduino
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[display]
|
||||
lcd_type: st7920
|
||||
cs_pin: ar16
|
||||
sclk_pin: ar23
|
||||
sid_pin: ar17
|
||||
encoder_pins: ^ar33, ^ar31
|
||||
click_pin: ^!ar35
|
||||
@@ -119,6 +119,7 @@ gcode:
|
||||
|
||||
# Mesh Bed Leveling.
|
||||
[bed_mesh]
|
||||
min_point: 5,0
|
||||
max_point: 230,210
|
||||
mesh_min: 5,18
|
||||
mesh_max: 230,228
|
||||
probe_count: 9,9
|
||||
algorithm: bicubic
|
||||
|
||||
97
config/printer-tevo-tarantula-pro-2020.cfg
Normal file
97
config/printer-tevo-tarantula-pro-2020.cfg
Normal file
@@ -0,0 +1,97 @@
|
||||
# Support for the green Tevo Tarantula Pro. To use this config, the firmware
|
||||
# should be compiled for the AVR atmega2560.
|
||||
# Note that this config file is for the "old green" Tarantula pro, with a
|
||||
# MKS Gen_l 8-bit board.
|
||||
# It _will not_ work out of the box for the "new orange" Tarantula pro with a
|
||||
# MKS Sgen_l 32-bit board.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: ar54
|
||||
dir_pin: !ar55
|
||||
enable_pin: !ar38
|
||||
step_distance: 0.012583
|
||||
endstop_pin: ^!ar3
|
||||
position_endstop: -2
|
||||
position_max: 220
|
||||
position_min: -2
|
||||
homing_speed: 25.0
|
||||
|
||||
[stepper_y]
|
||||
step_pin: ar60
|
||||
dir_pin: ar61
|
||||
enable_pin: !ar56
|
||||
step_distance: 0.01256
|
||||
endstop_pin: ^!ar14
|
||||
position_endstop: 0
|
||||
position_max: 220
|
||||
homing_speed: 25.0
|
||||
|
||||
[stepper_z]
|
||||
step_pin: ar46
|
||||
dir_pin: ar48
|
||||
enable_pin: !ar62
|
||||
step_distance: 0.002492
|
||||
endstop_pin: ^!ar18
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
|
||||
# Enable for dual-z addon
|
||||
#[stepper_z1]
|
||||
#step_pin: ar36
|
||||
#dir_pin: ar34
|
||||
#enable_pin: !ar30
|
||||
#step_distance: 0.002492
|
||||
|
||||
[extruder]
|
||||
step_pin: ar26
|
||||
dir_pin: ar28
|
||||
enable_pin: !ar24
|
||||
step_distance: 0.002470
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.75
|
||||
|
||||
heater_pin: ar10
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog13
|
||||
control: pid
|
||||
pid_Kp: 22.5
|
||||
pid_Ki: 1.78
|
||||
pid_Kd: 74.16
|
||||
min_temp: 0
|
||||
max_temp: 220
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: ar8
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog14
|
||||
control: watermark
|
||||
min_temp: 0
|
||||
max_temp: 110
|
||||
|
||||
[fan]
|
||||
pin: ar9
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
|
||||
pin_map: arduino
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 400
|
||||
max_accel: 3000
|
||||
max_z_velocity: 50
|
||||
max_z_accel: 100
|
||||
|
||||
[heater_fan nozzle_fan]
|
||||
pin: ar7
|
||||
|
||||
[display]
|
||||
lcd_type: uc1701
|
||||
cs_pin: ar25
|
||||
a0_pin: ar27
|
||||
encoder_pins: ^!ar31, ^!ar33
|
||||
click_pin: ^!ar35
|
||||
kill_pin: !ar41
|
||||
menu_reverse_navigation: true
|
||||
103
config/printer-tronxy-p802e-2020.cfg
Normal file
103
config/printer-tronxy-p802e-2020.cfg
Normal file
@@ -0,0 +1,103 @@
|
||||
# This file contains common pin mappings for Tronxy P802E printer. To
|
||||
# use this config, the firmware should be compiled for the AVR
|
||||
# atmega1284p. The Tronxy P802M and P802MA is similar, but will need
|
||||
# different position_max and position_min settings.
|
||||
|
||||
# Note that the "make flash" command does not work with Tronxy boards -
|
||||
# the boards are typically flashed with this command:
|
||||
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PD7
|
||||
dir_pin: PC5
|
||||
enable_pin: !PD6
|
||||
step_distance: .01
|
||||
endstop_pin: ^!PC2
|
||||
position_endstop: -8
|
||||
position_max: 220
|
||||
position_min: -8
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC6
|
||||
dir_pin: PC7
|
||||
enable_pin: !PD6
|
||||
step_distance: .01
|
||||
endstop_pin: ^!PC3
|
||||
position_endstop: 0
|
||||
position_min: 0
|
||||
position_max: 220
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB3
|
||||
dir_pin: !PB2
|
||||
enable_pin: !PA5
|
||||
step_distance: .0025
|
||||
endstop_pin: ^!PC4
|
||||
position_endstop: 0
|
||||
position_max: 210
|
||||
homing_speed: 20
|
||||
|
||||
[extruder]
|
||||
step_pin: PB1
|
||||
dir_pin: PB0
|
||||
enable_pin: !PD6
|
||||
step_distance: .0105
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PD5
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA7
|
||||
control: pid
|
||||
pid_kp: 23.060
|
||||
pid_ki: 1.025
|
||||
pid_kd: 129.711
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
max_extrude_only_distance: 400
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PD4
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA6
|
||||
control: pid
|
||||
pid_kp: 72.174
|
||||
pid_ki: 1.677
|
||||
pid_kd: 776.767
|
||||
min_temp: 0
|
||||
max_temp: 110
|
||||
|
||||
[fan]
|
||||
pin: PB4
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A96PLN7R-if00-port0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 1000
|
||||
max_z_velocity: 20
|
||||
max_z_accel: 100
|
||||
|
||||
[display]
|
||||
lcd_type: hd44780
|
||||
rs_pin: PA3
|
||||
e_pin: PA2
|
||||
d4_pin: PD2
|
||||
d5_pin: PD3
|
||||
d6_pin: PC0
|
||||
d7_pin: PC1
|
||||
up_pin: PA1
|
||||
analog_range_up_pin: 9000, 13000
|
||||
down_pin: PA1
|
||||
analog_range_down_pin: 800, 1300
|
||||
click_pin: PA1
|
||||
analog_range_click_pin: 2000, 2500
|
||||
back_pin: PA1
|
||||
analog_range_back_pin: 4500, 5000
|
||||
#kill_pin: PA1
|
||||
#analog_range_kill_pin: 400, 600
|
||||
103
config/printer-tronxy-p802m-2020.cfg
Normal file
103
config/printer-tronxy-p802m-2020.cfg
Normal file
@@ -0,0 +1,103 @@
|
||||
# This file contains common pin mappings for Tronxy P802M printer. To
|
||||
# use this config, the firmware should be compiled for the AVR
|
||||
# atmega1284p. The Tronxy P802MA is similar, but will need
|
||||
# auto leveling configuration.
|
||||
|
||||
# Note that the "make flash" command does not work with Tronxy boards -
|
||||
# the boards are typically flashed with this command:
|
||||
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PD7
|
||||
dir_pin: PC5
|
||||
enable_pin: !PD6
|
||||
step_distance: .01
|
||||
endstop_pin: ^!PC2
|
||||
position_endstop: -8
|
||||
position_max: 220
|
||||
position_min: -45
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PC6
|
||||
dir_pin: PC7
|
||||
enable_pin: !PD6
|
||||
step_distance: .01
|
||||
endstop_pin: ^!PC3
|
||||
position_endstop: 0
|
||||
position_min: -5
|
||||
position_max: 220
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB3
|
||||
dir_pin: !PB2
|
||||
enable_pin: !PA5
|
||||
step_distance: .0025
|
||||
endstop_pin: ^!PC4
|
||||
position_endstop: 0
|
||||
position_max: 230
|
||||
homing_speed: 20
|
||||
|
||||
[extruder]
|
||||
step_pin: PB1
|
||||
dir_pin: PB0
|
||||
enable_pin: !PD6
|
||||
step_distance: .0105
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PD5
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA7
|
||||
control: pid
|
||||
pid_kp: 23.060
|
||||
pid_ki: 1.025
|
||||
pid_kd: 129.711
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
max_extrude_only_distance: 400
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PD4
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA6
|
||||
control: pid
|
||||
pid_kp: 72.174
|
||||
pid_ki: 1.677
|
||||
pid_kd: 776.767
|
||||
min_temp: 0
|
||||
max_temp: 110
|
||||
|
||||
[fan]
|
||||
pin: PB4
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A96PLN7R-if00-port0
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 1000
|
||||
max_z_velocity: 20
|
||||
max_z_accel: 100
|
||||
|
||||
[display]
|
||||
lcd_type: hd44780
|
||||
rs_pin: PA3
|
||||
e_pin: PA2
|
||||
d4_pin: PD2
|
||||
d5_pin: PD3
|
||||
d6_pin: PC0
|
||||
d7_pin: PC1
|
||||
up_pin: PA1
|
||||
analog_range_up_pin: 9000, 13000
|
||||
down_pin: PA1
|
||||
analog_range_down_pin: 800, 1300
|
||||
click_pin: PA1
|
||||
analog_range_click_pin: 2000, 2500
|
||||
back_pin: PA1
|
||||
analog_range_back_pin: 4500, 5000
|
||||
#kill_pin: PA1
|
||||
#analog_range_kill_pin: 400, 600
|
||||
136
config/printer-tronxy-x5sa-v6-2019.cfg
Normal file
136
config/printer-tronxy-x5sa-v6-2019.cfg
Normal file
@@ -0,0 +1,136 @@
|
||||
# This is a Klipper configuration for TronXY X5SA, with
|
||||
# CXY-V6 motherboard.
|
||||
|
||||
|
||||
# === FLASHING WITH STOCK BOOTLOADER ===
|
||||
# You should make firmware for STM32F103 with bootloader offset
|
||||
# at 0x8008800 (Chitu v6 Bootloader). Uncheck USB, and leave default
|
||||
# serial settings.
|
||||
#
|
||||
# Use "./update_chitu.py out/klipper.bin update.cbd" to generate update.cbd.
|
||||
# Put `update.cbd` onto SD card, and reboot the printer.
|
||||
# It will be automatically installed, and you will be able to update it this way.
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: corexy
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 25
|
||||
max_z_accel: 30
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PE5
|
||||
dir_pin: !PE6
|
||||
enable_pin: !PC13
|
||||
step_distance: .006275
|
||||
endstop_pin: !PG10
|
||||
position_endstop: -1
|
||||
position_min: -1
|
||||
position_max: 350
|
||||
homing_speed: 50
|
||||
homing_retract_dist: 10
|
||||
second_homing_speed: 10.0
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PE2
|
||||
dir_pin: !PE3
|
||||
enable_pin: !PE4
|
||||
step_distance: .006275
|
||||
endstop_pin: !PA12
|
||||
position_endstop: 0
|
||||
position_max: 330
|
||||
homing_retract_dist: 10
|
||||
homing_speed: 50.0
|
||||
second_homing_speed: 10.0
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB9
|
||||
dir_pin: PE0
|
||||
enable_pin: !PE1
|
||||
step_distance: .00125
|
||||
endstop_pin: probe:z_virtual_endstop
|
||||
position_max: 400
|
||||
position_min: -2
|
||||
|
||||
[extruder]
|
||||
step_pin: PB4
|
||||
dir_pin: PB5
|
||||
enable_pin: !PB8
|
||||
step_distance: 0.0111
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PG12
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PA1
|
||||
control: pid
|
||||
pid_Kp: 18.831
|
||||
pid_Ki: 0.821
|
||||
pid_Kd: 108.044
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
max_extrude_only_distance: 300
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PG11
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PA0
|
||||
control: pid
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
pid_Kp: 73.932
|
||||
pid_Ki: 1.521
|
||||
pid_Kd: 898.279
|
||||
|
||||
[heater_fan hotend_fan]
|
||||
pin: PG14
|
||||
fan_speed: 0.5
|
||||
|
||||
[fan]
|
||||
pin: PG13
|
||||
max_power: 0.5
|
||||
|
||||
[controller_fan drivers_fan]
|
||||
pin: PD6
|
||||
|
||||
[filament_switch_sensor sentinel]
|
||||
pause_on_runout: True
|
||||
runout_gcode:
|
||||
M25
|
||||
switch_pin: PA15
|
||||
|
||||
[output_pin beeper]
|
||||
pin: PB0
|
||||
|
||||
[safe_z_home]
|
||||
home_xy_position: 165,165
|
||||
speed: 50
|
||||
z_hop: 10
|
||||
z_hop_speed: 5
|
||||
|
||||
[bed_screws]
|
||||
screw1: 5,5
|
||||
screw2: 165,5
|
||||
screw3: 325,5
|
||||
screw4: 5,325
|
||||
screw5: 165,325
|
||||
screw6: 325,325
|
||||
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
probe_count: 5,5
|
||||
horizontal_move_z: 5
|
||||
algorithm: lagrange
|
||||
mesh_min : 20,20
|
||||
mesh_max : 310,310
|
||||
mesh_pps: 0
|
||||
|
||||
[probe]
|
||||
x_offset: -40
|
||||
y_offset: 0
|
||||
pin: !PG9
|
||||
speed: 30
|
||||
z_offset: 2
|
||||
89
config/printer-twotrees-sapphire-pro-2020.cfg
Normal file
89
config/printer-twotrees-sapphire-pro-2020.cfg
Normal file
@@ -0,0 +1,89 @@
|
||||
# This file contains common pin mappings for the Two Trees Sapphire
|
||||
# Pro printer from 2020. To use this config, the firmware should be
|
||||
# compiled for the STM32F103. When running "make menuconfig", enable
|
||||
# "extra low-level configuration setup", select the 28KiB bootloader,
|
||||
# disable "USB for communication", select USART3 for the "Serial
|
||||
# Port", and set "GPIO pins to set at micro-controller startup" to
|
||||
# "!PC6,!PD13".
|
||||
|
||||
# Note that the "make flash" command does not work with the Sapphire
|
||||
# Pro. After running "make", run the following command:
|
||||
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin
|
||||
# Copy the file out/Robin_nano35.bin to an SD card and then restart the
|
||||
# printer with that SD card.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: PE3
|
||||
dir_pin: !PE2
|
||||
enable_pin: !PE4
|
||||
step_distance: .01
|
||||
endstop_pin: !PA15
|
||||
position_endstop: 0
|
||||
position_max: 230
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_y]
|
||||
step_pin: PE0
|
||||
dir_pin: !PB9
|
||||
enable_pin: !PE1
|
||||
step_distance: .01
|
||||
endstop_pin: !PA12
|
||||
position_endstop: 230
|
||||
position_max: 230
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_z]
|
||||
step_pin: PB5
|
||||
dir_pin: PB4
|
||||
enable_pin: !PB8
|
||||
step_distance: .0025
|
||||
endstop_pin: !PA11
|
||||
position_endstop: 0.5
|
||||
position_max: 230
|
||||
|
||||
[extruder]
|
||||
step_pin: PD6
|
||||
dir_pin: !PD3
|
||||
enable_pin: !PB3
|
||||
step_distance: .0021
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: PC3
|
||||
sensor_type: ATC Semitec 104GT-2
|
||||
sensor_pin: PC1
|
||||
control: pid
|
||||
pid_Kp: 14.669
|
||||
pid_Ki: 0.572
|
||||
pid_Kd: 94.068
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: PA0
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: PC0
|
||||
control: pid
|
||||
pid_Kp: 325.10
|
||||
pid_Ki: 63.35
|
||||
pid_Kd: 417.10
|
||||
min_temp: 0
|
||||
max_temp: 130
|
||||
|
||||
[fan]
|
||||
pin: PB1
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyUSB0
|
||||
restart_method: command
|
||||
|
||||
[printer]
|
||||
kinematics: corexy
|
||||
max_velocity: 250
|
||||
max_accel: 4500
|
||||
max_z_velocity: 25
|
||||
max_z_accel: 100
|
||||
|
||||
[static_digital_output reset_display]
|
||||
pins: !PC6, !PD13
|
||||
106
config/printer-wanhao-duplicator-9-2018.cfg
Normal file
106
config/printer-wanhao-duplicator-9-2018.cfg
Normal file
@@ -0,0 +1,106 @@
|
||||
# This file contains pin mappings for the Wanhao Duplicator 9 MK1,
|
||||
# also sold as the Monoprice Maker Pro MK1. To use this config,
|
||||
# the firmware should be compiled for the AVR atmega2560.
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: ar61
|
||||
dir_pin: !ar62
|
||||
enable_pin: !ar60
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!ar54
|
||||
position_endstop: 0
|
||||
position_max: 295
|
||||
homing_speed: 30.0
|
||||
|
||||
[stepper_y]
|
||||
step_pin: ar64
|
||||
dir_pin: ar65
|
||||
enable_pin: !ar2
|
||||
step_distance: .0125
|
||||
endstop_pin: ^!ar24
|
||||
position_endstop: 0
|
||||
position_max: 290
|
||||
homing_speed: 30.0
|
||||
|
||||
[stepper_z]
|
||||
step_pin: ar67
|
||||
dir_pin: ar69
|
||||
enable_pin: !ar66
|
||||
step_distance: .0025
|
||||
endstop_pin: probe:z_virtual_endstop
|
||||
position_endstop: 1.4
|
||||
position_max: 370
|
||||
position_min: -0.99
|
||||
|
||||
[extruder]
|
||||
step_pin: ar58
|
||||
dir_pin: ar59
|
||||
enable_pin: !ar57
|
||||
step_distance: .009980
|
||||
nozzle_diameter: 0.4
|
||||
filament_diameter: 1.75
|
||||
heater_pin: ar4
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog1
|
||||
control: pid
|
||||
pid_Kp: 33.41
|
||||
pid_Ki: 1.47
|
||||
pid_Kd: 189.27
|
||||
min_temp: 0
|
||||
max_temp: 315
|
||||
|
||||
[heater_bed]
|
||||
heater_pin: ar3
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog14
|
||||
control: pid
|
||||
pid_Kp: 64.095903
|
||||
pid_Ki: 1.649830
|
||||
pid_Kd: 622.531455
|
||||
min_temp: 0
|
||||
max_temp: 120
|
||||
|
||||
[fan]
|
||||
pin: ar5
|
||||
|
||||
[probe]
|
||||
pin: !ar6
|
||||
x_offset: 27
|
||||
y_offset: 3
|
||||
z_offset: 1.4
|
||||
speed: 5.0
|
||||
samples: 2
|
||||
sample_retract_dist: 2.0
|
||||
samples_result: average
|
||||
|
||||
[mcu]
|
||||
serial: /dev/ttyUSB0
|
||||
pin_map: arduino
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 3000
|
||||
max_accel: 450
|
||||
max_z_velocity: 225
|
||||
max_z_accel: 30
|
||||
square_corner_velocity: 15.0
|
||||
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
mesh_min: 27,3
|
||||
mesh_max: 270,290
|
||||
probe_count: 5,3
|
||||
horizontal_move_z: 10
|
||||
|
||||
[bed_screws]
|
||||
screw1: 5,5
|
||||
screw1_name: front left screw
|
||||
screw2: 295,0
|
||||
screw2_name: front right screw
|
||||
screw3: 295,290
|
||||
screw3_name: back right screw
|
||||
screw4: 0,290
|
||||
screw4_name: back left screw
|
||||
probe_height: 0
|
||||
76
config/printer-wanhao-duplicator-i3-mini-2017.cfg
Normal file
76
config/printer-wanhao-duplicator-i3-mini-2017.cfg
Normal file
@@ -0,0 +1,76 @@
|
||||
# This file contains pin mappings for the Wanhao Duplicator i3 mini.
|
||||
# (circa 2017) To use this config, the firmware should be compiled
|
||||
# for the AVR atmega2560.
|
||||
# Pin numbers and other parameters were extracted from the official
|
||||
# Marlin source available at: https://github.com/garychen99/i3Mini
|
||||
|
||||
# See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_x]
|
||||
step_pin: ar22
|
||||
dir_pin: !ar23
|
||||
enable_pin: !ar57
|
||||
step_distance: 0.0125
|
||||
endstop_pin: ^!ar19
|
||||
position_endstop: 120
|
||||
position_max: 120
|
||||
homing_speed: 30.0
|
||||
|
||||
[stepper_y]
|
||||
step_pin: ar25
|
||||
dir_pin: ar26
|
||||
enable_pin: !ar24
|
||||
step_distance: 0.0125
|
||||
endstop_pin: ^!ar18
|
||||
position_endstop: 0
|
||||
position_max: 135
|
||||
homing_speed: 30.0
|
||||
|
||||
[stepper_z]
|
||||
step_pin: ar29
|
||||
dir_pin: ar39
|
||||
enable_pin: !ar28
|
||||
step_distance: 0.0025
|
||||
endstop_pin: ^!ar38
|
||||
position_endstop: 0.5
|
||||
position_max: 100
|
||||
|
||||
[extruder]
|
||||
step_pin: ar55
|
||||
dir_pin: !ar56
|
||||
enable_pin: !ar54
|
||||
step_distance: 0.010638298
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: ar4
|
||||
sensor_type: NTC 100K MGB18-104F39050L32
|
||||
sensor_pin: analog13
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 1
|
||||
max_temp: 265
|
||||
|
||||
[fan]
|
||||
pin: ar12
|
||||
|
||||
[mcu]
|
||||
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
|
||||
pin_map: arduino
|
||||
|
||||
[printer]
|
||||
kinematics: cartesian
|
||||
max_velocity: 300
|
||||
max_accel: 3000
|
||||
max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[display]
|
||||
lcd_type: uc1701
|
||||
cs_pin: ar41
|
||||
a0_pin: ar40
|
||||
rst_pin: ar27
|
||||
click_pin: ^!ar5
|
||||
encoder_pins: ^ar3, ^ar2
|
||||
kill_pin: ar64
|
||||
@@ -76,6 +76,6 @@ max_z_velocity: 5
|
||||
max_z_accel: 100
|
||||
|
||||
[bed_mesh]
|
||||
min_point: 20,20
|
||||
max_point: 190,130
|
||||
mesh_min: 20,20
|
||||
mesh_max: 190,130
|
||||
probe_count: 4,4
|
||||
|
||||
52
config/sample-bigtreetech-exp-mot.cfg
Normal file
52
config/sample-bigtreetech-exp-mot.cfg
Normal file
@@ -0,0 +1,52 @@
|
||||
#Config for the BTT mot-exp
|
||||
#See the example.cfg file for a description of available parameters.
|
||||
|
||||
[stepper_1]
|
||||
step_pin: EXP2_6
|
||||
dir_pin: EXP2_5
|
||||
enable_pin: !EXP2_7
|
||||
step_distance: .0125
|
||||
position_max: 320
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_2]
|
||||
step_pin: EXP2_3
|
||||
dir_pin: EXP2_4
|
||||
enable_pin: !EXP1_8
|
||||
step_distance: .0125
|
||||
position_max: 300
|
||||
homing_speed: 50
|
||||
|
||||
[stepper_3]
|
||||
step_pin: EXP2_1
|
||||
dir_pin: EXP2_2
|
||||
enable_pin: !EXP1_7
|
||||
step_distance: .0025
|
||||
position_endstop: 0.5
|
||||
position_max: 400
|
||||
|
||||
|
||||
|
||||
[tmc2209 stepper_1]
|
||||
uart_pin: EXP1_6
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
diag_pin: EXP1_5
|
||||
|
||||
[tmc2209 stepper_2]
|
||||
uart_pin: EXP1_4
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.500
|
||||
stealthchop_threshold: 250
|
||||
diag_pin: EXP1_3
|
||||
|
||||
[tmc2209 stepper_3]
|
||||
uart_pin: EXP1_2
|
||||
microsteps: 16
|
||||
run_current: 0.650
|
||||
hold_current: 0.450
|
||||
stealthchop_threshold: 30
|
||||
diag_pin: EXP1_1
|
||||
196
config/sample-glyphs.cfg
Normal file
196
config/sample-glyphs.cfg
Normal file
@@ -0,0 +1,196 @@
|
||||
# Some alternate glyphs for use with 128x64 LCDs. These are used by adding them to your printer.cfg.
|
||||
# See config/example-extras.cfg for more information about setting these up.
|
||||
|
||||
|
||||
# ===============================
|
||||
# Speedometer feedrate
|
||||
# ===============================
|
||||
|
||||
[display_glyph feedrate]
|
||||
data:
|
||||
................
|
||||
................
|
||||
................
|
||||
......******....
|
||||
....**********..
|
||||
...****....****.
|
||||
..***........**.
|
||||
.***..........*.
|
||||
.**..*..........
|
||||
***...*.........
|
||||
**.....*........
|
||||
**......**......
|
||||
**......***.....
|
||||
**.......**.....
|
||||
................
|
||||
................
|
||||
|
||||
|
||||
|
||||
# ===============================
|
||||
# Blower-style fan
|
||||
# ===============================
|
||||
|
||||
[display_glyph fan1]
|
||||
data:
|
||||
................
|
||||
......****......
|
||||
....**...***....
|
||||
...*..*...*.*...
|
||||
..*..........*..
|
||||
..**.........*..
|
||||
.**....**...*.*.
|
||||
.*....*..*....*.
|
||||
.*....*..*....*.
|
||||
.*.*...**....**.
|
||||
..*.........**..
|
||||
..*..........*..
|
||||
...*.*...*..*...
|
||||
....***...**....
|
||||
......****......
|
||||
................
|
||||
|
||||
[display_glyph fan2]
|
||||
data:
|
||||
................
|
||||
......****......
|
||||
....**.*..**....
|
||||
...*....*...*...
|
||||
..*.*......*.*..
|
||||
..*..........*..
|
||||
.*.....**.....*.
|
||||
.*.*..*..*...**.
|
||||
.**...*..*..*.*.
|
||||
.*.....**.....*.
|
||||
..*..........*..
|
||||
..*.*......*.*..
|
||||
...*...*....*...
|
||||
....**..*.**....
|
||||
......****......
|
||||
................
|
||||
|
||||
|
||||
|
||||
# ===============================
|
||||
# Alternate square bed
|
||||
# ===============================
|
||||
|
||||
[display_glyph bed]
|
||||
data:
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
...**********...
|
||||
..*..........*..
|
||||
.*............*.
|
||||
*..............*
|
||||
****************
|
||||
................
|
||||
|
||||
[display_glyph bed_heat1]
|
||||
data:
|
||||
................
|
||||
......*...*.....
|
||||
......*...*.....
|
||||
.....*...*......
|
||||
.....*...*......
|
||||
......*...*.....
|
||||
......*...*.....
|
||||
.....*...*......
|
||||
.....*...*......
|
||||
................
|
||||
...**********...
|
||||
..*..........*..
|
||||
.*............*.
|
||||
*..............*
|
||||
****************
|
||||
................
|
||||
|
||||
[display_glyph bed_heat2]
|
||||
data:
|
||||
................
|
||||
.....*...*......
|
||||
.....*...*......
|
||||
......*...*.....
|
||||
......*...*.....
|
||||
.....*...*......
|
||||
.....*...*......
|
||||
......*...*.....
|
||||
......*...*.....
|
||||
................
|
||||
...**********...
|
||||
..*..........*..
|
||||
.*............*.
|
||||
*..............*
|
||||
****************
|
||||
................
|
||||
|
||||
|
||||
|
||||
# ===============================
|
||||
# Round bed
|
||||
# ===============================
|
||||
|
||||
[display_glyph bed]
|
||||
data:
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
................
|
||||
.....******.....
|
||||
...**......**...
|
||||
..*..........*..
|
||||
.*............*.
|
||||
.*............*.
|
||||
..*..........*..
|
||||
...**......**...
|
||||
.....******.....
|
||||
................
|
||||
|
||||
[display_glyph bed_heat1]
|
||||
data:
|
||||
.....*..*..*....
|
||||
.....*..*..*....
|
||||
....*..*..*.....
|
||||
....*..*..*.....
|
||||
.....*..*..*....
|
||||
.....*..*..*....
|
||||
................
|
||||
.....******.....
|
||||
...**......**...
|
||||
..*..........*..
|
||||
.*............*.
|
||||
.*............*.
|
||||
..*..........*..
|
||||
...**......**...
|
||||
.....******.....
|
||||
................
|
||||
|
||||
[display_glyph bed_heat2]
|
||||
data:
|
||||
....*..*..*.....
|
||||
....*..*..*.....
|
||||
.....*..*..*....
|
||||
.....*..*..*....
|
||||
....*..*..*.....
|
||||
....*..*..*.....
|
||||
................
|
||||
.....******.....
|
||||
...**......**...
|
||||
..*..........*..
|
||||
.*............*.
|
||||
.*............*.
|
||||
..*..........*..
|
||||
...**......**...
|
||||
.....******.....
|
||||
................
|
||||
93
config/sample-idex.cfg
Normal file
93
config/sample-idex.cfg
Normal file
@@ -0,0 +1,93 @@
|
||||
# This file contains a configuration snippet for a dual extruder
|
||||
# printer using dual carriages (an "IDEX" printer).
|
||||
|
||||
# See example.cfg and example-extras.cfg for a description of
|
||||
# available parameters.
|
||||
|
||||
# Definition for the primary carriage (holding the primary extruder)
|
||||
[stepper_x]
|
||||
step_pin: ar54
|
||||
dir_pin: ar55
|
||||
enable_pin: !ar38
|
||||
step_distance: .0125
|
||||
endstop_pin: ^ar3
|
||||
position_endstop: 0
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
# The definition for the primary extruder
|
||||
[extruder]
|
||||
step_pin: ar26
|
||||
dir_pin: ar28
|
||||
enable_pin: !ar24
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: ar10
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog13
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
# Helper script to park the carriage (called from T0 and T1 macros)
|
||||
[gcode_macro PARK_extruder]
|
||||
gcode:
|
||||
SAVE_GCODE_STATE NAME=park0
|
||||
G90
|
||||
G1 X0
|
||||
RESTORE_GCODE_STATE NAME=park0
|
||||
|
||||
# Activate the primary extruder
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
PARK_{printer.toolhead.extruder}
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
SET_DUAL_CARRIAGE CARRIAGE=0
|
||||
SET_GCODE_OFFSET Y=0
|
||||
|
||||
# Definition for the secondary carriage and extruder1
|
||||
[dual_carriage]
|
||||
axis: x
|
||||
step_pin: ar16
|
||||
dir_pin: ar17
|
||||
enable_pin: !ar23
|
||||
step_distance: .0125
|
||||
endstop_pin: ^ar2
|
||||
position_endstop: 200
|
||||
position_max: 200
|
||||
homing_speed: 50
|
||||
|
||||
[extruder1]
|
||||
step_pin: ar36
|
||||
dir_pin: ar34
|
||||
enable_pin: !ar30
|
||||
step_distance: .002
|
||||
nozzle_diameter: 0.400
|
||||
filament_diameter: 1.750
|
||||
heater_pin: ar11
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog15
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 250
|
||||
|
||||
[gcode_macro PARK_extruder1]
|
||||
gcode:
|
||||
SAVE_GCODE_STATE NAME=park1
|
||||
G90
|
||||
G1 X200
|
||||
RESTORE_GCODE_STATE NAME=park1
|
||||
|
||||
[gcode_macro T1]
|
||||
gcode:
|
||||
PARK_{printer.toolhead.extruder}
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
SET_DUAL_CARRIAGE CARRIAGE=1
|
||||
SET_GCODE_OFFSET Y=15
|
||||
@@ -96,12 +96,12 @@ pin: EXP1_1
|
||||
######################################################################
|
||||
|
||||
[display]
|
||||
lcd_type: st7567
|
||||
lcd_type: uc1701
|
||||
cs_pin: EXP1_3
|
||||
a0_pin: EXP1_4
|
||||
rs_pin: EXP1_5
|
||||
rst_pin: EXP1_5
|
||||
contrast: 63
|
||||
encoder_pins: ^EXP2_3, ^EXP2_5
|
||||
encoder_pins: ^EXP2_5, ^EXP2_3
|
||||
click_pin: ^!EXP1_2
|
||||
## Some micro-controller boards may require an spi bus to be specified:
|
||||
#spi_bus: spi
|
||||
|
||||
@@ -115,3 +115,64 @@ gcode:
|
||||
G91
|
||||
G1 E-50 F1000
|
||||
RESTORE_GCODE_STATE NAME=M600_state
|
||||
|
||||
######################################################################
|
||||
# BME280 Environmental Sensor
|
||||
######################################################################
|
||||
|
||||
# The macro below assumes you have a BME280 sensor_type defined in one
|
||||
# of the applicable sections in printer.cfg, such as:
|
||||
#
|
||||
#[temperature_sensor my_sensor]
|
||||
#sensor_type: BME280
|
||||
#gcode_id: AMB
|
||||
#
|
||||
# Note the format of the parameter SENSOR in the macro below. The BME280
|
||||
# sensor status can be accessed using the format "bme280 <section_name>".
|
||||
# The example section above is named "my_sensor", thus the bme280 can be
|
||||
# queried as follows:
|
||||
#
|
||||
# QUERY_BME280 SENSOR='bme280 my_sensor'
|
||||
#
|
||||
# Since a default parameter is defined one could simply enter QUERY_BME280
|
||||
# as well.
|
||||
|
||||
[gcode_macro QUERY_BME280]
|
||||
default_parameter_SENSOR: bme280 my_sensor
|
||||
gcode:
|
||||
{action_respond_info(
|
||||
"Temperature: %.2f C\n"
|
||||
"Pressure: %.2f hPa\n"
|
||||
"Humidity: %.2f%%" % (
|
||||
printer[SENSOR].temperature,
|
||||
printer[SENSOR].pressure,
|
||||
printer[SENSOR].humidity))}
|
||||
|
||||
######################################################################
|
||||
# HTU21D family Environmental Sensor
|
||||
######################################################################
|
||||
|
||||
# The macro below assumes you have a HTU21D sensor_type defined in one
|
||||
# of the applicable sections in printer.cfg, such as:
|
||||
#
|
||||
#[temperature_sensor my_sensor]
|
||||
#sensor_type: HTU21D
|
||||
#
|
||||
# Note the format of the parameter SENSOR in the macro below. The HTU21D
|
||||
# sensor status can be accessed using the format "htu21d <section_name>".
|
||||
# The example section above is named "my_sensor", thus the htu21d can be
|
||||
# queried as follows:
|
||||
#
|
||||
# QUERY_HTU21D SENSOR='htu21d my_sensor'
|
||||
#
|
||||
# Since a default parameter is defined one could simply enter QUERY_HTU21D
|
||||
# as well.
|
||||
|
||||
[gcode_macro QUERY_HTU21D]
|
||||
default_parameter_SENSOR: htu21d my_sensor
|
||||
gcode:
|
||||
{action_respond_info(
|
||||
"Temperature: %.2f C\n"
|
||||
"Humidity: %.2f%%" % (
|
||||
printer[SENSOR].temperature,
|
||||
printer[SENSOR].humidity))}
|
||||
|
||||
823
config/sample-mmu2s-diy.cfg
Normal file
823
config/sample-mmu2s-diy.cfg
Normal file
@@ -0,0 +1,823 @@
|
||||
# Configuration for DIY MMU2S based on SKR-MINI
|
||||
# Jeremy Briffaut kakou@kakou.org
|
||||
# More info : https://www.thingiverse.com/thing:3910546
|
||||
#
|
||||
#
|
||||
# config inspired from https://github.com/mwr666/klipper/blob/sunbeam2.0c_multi_mcu_mmu2/config/printer-protodev-corexy-multi-mcu-mmu2.cfg
|
||||
|
||||
|
||||
########################################
|
||||
#
|
||||
# Configuration for a SKR MINI board with 3 TMC2208 UART
|
||||
# and 2 1.7A stepper motor at 1/16
|
||||
# current for a 24V power
|
||||
#
|
||||
########################################
|
||||
[mcu mmboard]
|
||||
serial: /dev/serial/by-id/usb-Klipper_stm32f103xe_33FFD8054E48363008771743-if00
|
||||
|
||||
[respond]
|
||||
default_type: command
|
||||
|
||||
# E0 : MMU2S 5mm road with the 5 gears
|
||||
[manual_stepper gear_stepper]
|
||||
step_pin: mmboard:PC5
|
||||
dir_pin: !mmboard:PB0
|
||||
enable_pin: !mmboard:PC4
|
||||
# 140 : mk8 gear
|
||||
#step_distance: .007142
|
||||
# 165 : fystec gear for mmu2s
|
||||
step_distance: .00606
|
||||
velocity: 20
|
||||
accel: 10
|
||||
endstop_pin: ^mmboard:PC2 # PINDA X+
|
||||
|
||||
[tmc2208 manual_stepper gear_stepper]
|
||||
uart_pin: mmboard:PC14
|
||||
microsteps: 16
|
||||
run_current: 1.000
|
||||
hold_current: 0.600
|
||||
interpolate: True
|
||||
sense_resistor: 0.110
|
||||
|
||||
# Y : MMU2S idler with the 5 ball bearings
|
||||
[manual_stepper idler_stepper]
|
||||
step_pin: mmboard:PB13
|
||||
dir_pin: mmboard:PB14
|
||||
enable_pin: !mmboard:PB12
|
||||
step_distance: .040000
|
||||
velocity: 100
|
||||
accel: 80
|
||||
|
||||
[tmc2209 manual_stepper idler_stepper]
|
||||
uart_pin: mmboard:PB7
|
||||
microsteps: 16
|
||||
run_current: 0.800
|
||||
hold_current: 0.800
|
||||
interpolate: True
|
||||
sense_resistor: 0.110
|
||||
stealthchop_threshold: 250
|
||||
|
||||
# X : MMU2S color selector
|
||||
[manual_stepper selector_stepper]
|
||||
step_pin: mmboard:PC6
|
||||
dir_pin: mmboard:PC7
|
||||
enable_pin: !mmboard:PB15
|
||||
# 80 step/mm
|
||||
step_distance: .0025
|
||||
velocity: 35
|
||||
accel: 100
|
||||
endstop_pin: !mmboard:PC0 # switch endstop on the left Z-
|
||||
|
||||
[tmc2209 manual_stepper selector_stepper]
|
||||
uart_pin: mmboard:PC12
|
||||
microsteps: 16
|
||||
run_current: 1.000
|
||||
hold_current: 0.400
|
||||
interpolate: True
|
||||
sense_resistor: 0.110
|
||||
stealthchop_threshold: 250
|
||||
|
||||
#IR
|
||||
[filament_switch_sensor ir_sensor]
|
||||
pause_on_runout: False
|
||||
switch_pin: !P1.28 # P1.28 for X-max
|
||||
|
||||
################################
|
||||
#
|
||||
# PARAMETER TO ADAPT TO YOUR SETUP
|
||||
#
|
||||
# variable_timeout_pause : timeout of the MMU2S pause when user intervention is needed
|
||||
# variable_disable_heater : timeout of the heater during pause (temperature is saved and restored before resuming)
|
||||
# variable_bowden_load_length1 : length of the bowden between the selector and the entry of the extruder (quick MOVE)
|
||||
# variable_bowden_load_length2 : length of the bowden between the entry of the extruder and the extruder gear (slow MOVE)
|
||||
# variable_bowden_unload_length : length between the the extruder gear and the PINDA
|
||||
# variable_pinda_load_length : length between the MMU2S and the PINDA during loading
|
||||
# variable_pinda_unload_length : length to retract the filament into the MMU2S from the PINDA during unloading
|
||||
# variable_colorselector : the 5 positions of the color selector
|
||||
# variable_idler : the 5 positions of the idler bearing ball
|
||||
# variable_idler_home_position : the homing position of the idler
|
||||
# variable_pause_x : x position when MMU2S need intervention and the printer is paused
|
||||
# variable_pause_y : y position when MMU2S need intervention and the printer is paused
|
||||
# variable_pause_z : z lift when MMU2S need intervention and the printer is paused
|
||||
# variable_min_temp_extruder : minimal required heater temperature to load/unload filament from the extruder gear to the nozzle
|
||||
# variable_extruder_eject_temp : heater temperature used to eject filament during home if the filament is already loaded
|
||||
# variable_enable_5in1 : pass from MMU2S standart (0) to MMU2S-5in1 mode with splitter
|
||||
#
|
||||
################################
|
||||
[gcode_macro VAR_MMU2S]
|
||||
variable_timeout_pause: 36000
|
||||
variable_disable_heater: 600
|
||||
variable_bowden_load_length1: 770
|
||||
variable_bowden_load_length2: 790
|
||||
variable_bowden_unload_length: 830
|
||||
variable_pinda_load_length: 120
|
||||
variable_pinda_unload_length: 15
|
||||
variable_colorselector = [71,57,43,29,16]
|
||||
variable_idler = [5,20,35,50,65]
|
||||
variable_idler_home_position: 85
|
||||
variable_pause_x: 0
|
||||
variable_pause_y: 300
|
||||
variable_pause_z: 10
|
||||
variable_min_temp_extruder: 180
|
||||
variable_extruder_eject_temp: 200
|
||||
variable_enable_5in1: 0
|
||||
gcode:
|
||||
|
||||
# MMU2S SPLITTER
|
||||
# variable_bowden_load_length1: 0
|
||||
# variable_bowden_load_length2: 102
|
||||
# variable_bowden_unload_length: 120
|
||||
# MMU2S STANDARD
|
||||
# variable_bowden_load_length1: 770
|
||||
# variable_bowden_load_length2: 790
|
||||
# variable_bowden_unload_length: 830
|
||||
|
||||
###############################
|
||||
###############################
|
||||
# END OF PARAMETER TO ADAPT TO YOUR SETUP
|
||||
###############################
|
||||
###############################
|
||||
|
||||
|
||||
###############################
|
||||
#
|
||||
# MMU2S endstop status : IR extruder, PINDA, selector switch
|
||||
# 0 : open, 1 : TRIGGERED
|
||||
#
|
||||
###############################
|
||||
|
||||
# Display the last queried status
|
||||
[gcode_macro ENDSTOPS_STATUS]
|
||||
gcode:
|
||||
M118 Enstop status :
|
||||
M118 Extruder : {printer["filament_switch_sensor ir_sensor"].filament_detected}
|
||||
M118 PINDA : {printer.query_endstops.last_query["manual_stepper gear_stepper"]}
|
||||
M118 Selector : {printer.query_endstops.last_query["manual_stepper selector_stepper"]}
|
||||
|
||||
# Query and display the status
|
||||
[gcode_macro infos]
|
||||
gcode:
|
||||
QUERY_ENDSTOPS
|
||||
ENDSTOPS_STATUS
|
||||
|
||||
###############################
|
||||
#
|
||||
# PAUSE MACROS
|
||||
# PAUSE_MMU is called when an human intervention is needed
|
||||
# use MMU_UNLOCK to park the idler and start the manual intervention
|
||||
# and use RESUME when the invention is ended to resume the current print
|
||||
#
|
||||
###############################
|
||||
|
||||
[pause_resume]
|
||||
#recover_velocity: 50.
|
||||
|
||||
# park the idler, stop the delayed stop of the heater
|
||||
[gcode_macro MMU_UNLOCK]
|
||||
gcode:
|
||||
M118 Resume print
|
||||
SET_GCODE_VARIABLE MACRO=PAUSE_MMU VARIABLE=is_paused VALUE=0
|
||||
UPDATE_DELAYED_GCODE ID=disable_heater DURATION=0
|
||||
HOME_IDLER
|
||||
M109 S{printer["gcode_macro PAUSE_MMU"].extruder_temp}
|
||||
|
||||
[delayed_gcode disable_heater]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int != 0 %}
|
||||
M118 Disable extruder heater
|
||||
M104 S0
|
||||
{% endif %}
|
||||
|
||||
# Pause the MMU, park the extruder at the parking position
|
||||
# Save the current state and start the delayed stop of the heated
|
||||
# modify the timeout of the printer acorrdly to timeout_pause
|
||||
[gcode_macro PAUSE_MMU]
|
||||
variable_is_paused: 0
|
||||
variable_extruder_temp: 0
|
||||
gcode:
|
||||
SET_GCODE_VARIABLE MACRO=PAUSE_MMU VARIABLE=extruder_temp VALUE={printer.extruder.temperature}
|
||||
SET_GCODE_VARIABLE MACRO=PAUSE_MMU VARIABLE=is_paused VALUE=1
|
||||
SAVE_GCODE_STATE NAME=PAUSE_MMU_state
|
||||
SET_IDLE_TIMEOUT TIMEOUT={printer["gcode_macro VAR_MMU2S"].timeout_pause}
|
||||
UPDATE_DELAYED_GCODE ID=disable_heater DURATION={printer["gcode_macro VAR_MMU2S"].disable_heater}
|
||||
M118 START PAUSE
|
||||
bip
|
||||
bip
|
||||
bip
|
||||
PAUSE
|
||||
G91
|
||||
G1 Z{printer["gcode_macro VAR_MMU2S"].pause_z}
|
||||
G90
|
||||
G1 X{printer["gcode_macro VAR_MMU2S"].pause_x} Y{printer["gcode_macro VAR_MMU2S"].pause_y} F3000
|
||||
bip
|
||||
bip
|
||||
bip
|
||||
M118 END PAUSE
|
||||
RESTORE_GCODE_STATE NAME=PAUSE_MMU_state
|
||||
|
||||
############################################
|
||||
#
|
||||
# T0, T1, ..., T4 : Change extruder MACRO
|
||||
# if th new extruder is different from the current extruder :
|
||||
# eject the filament if needed
|
||||
# load the new one
|
||||
#
|
||||
############################################
|
||||
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
{% if printer["gcode_macro SELECT_TOOL"].color_selected|int != 0 %}
|
||||
M117 Change Tool T0
|
||||
UT
|
||||
LT VALUE=0
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro T1]
|
||||
gcode:
|
||||
{% if printer["gcode_macro SELECT_TOOL"].color_selected|int != 1 %}
|
||||
M117 Change Tool T1
|
||||
UT
|
||||
LT VALUE=1
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro T2]
|
||||
gcode:
|
||||
{% if printer["gcode_macro SELECT_TOOL"].color_selected|int != 2 %}
|
||||
M117 Change Tool T2
|
||||
UT
|
||||
LT VALUE=2
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro T3]
|
||||
gcode:
|
||||
{% if printer["gcode_macro SELECT_TOOL"].color_selected|int != 3 %}
|
||||
M117 Change Tool T3
|
||||
UT
|
||||
LT VALUE=3
|
||||
{% endif %}
|
||||
|
||||
[gcode_macro T4]
|
||||
gcode:
|
||||
{% if printer["gcode_macro SELECT_TOOL"].color_selected|int != 4 %}
|
||||
M117 Change Tool T4
|
||||
UT
|
||||
LT VALUE=4
|
||||
{% endif %}
|
||||
|
||||
############################################
|
||||
#
|
||||
# Unloading/Loading Macros
|
||||
#
|
||||
############################################
|
||||
|
||||
# Load filament from MMU2S to nozzle
|
||||
[gcode_macro LT]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
M118 LT {params.VALUE|int} ...
|
||||
SELECT_TOOL VALUE={params.VALUE|int}
|
||||
LOAD_FILAMENT_TO_EXTRUDER
|
||||
LOAD_FILAMENT_IN_EXTRUDER
|
||||
{% endif %}
|
||||
|
||||
# Unload filament from nozzle to MMU2S
|
||||
[gcode_macro UT]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].color_selected|int != -1 %}
|
||||
M118 UT {printer["gcode_macro SELECT_TOOL"].color_selected|int} ...
|
||||
UNLOAD_FILAMENT_IN_EXTRUDER
|
||||
SELECT_TOOL VALUE={printer["gcode_macro SELECT_TOOL"].color_selected|int}
|
||||
UNLOAD_FILAMENT_FROM_EXTRUDER
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
############################################
|
||||
#
|
||||
# Select/Unselect a tool
|
||||
# move the idler and the color selector (if needed) to the requested tool (0-4)
|
||||
#
|
||||
############################################
|
||||
|
||||
# Select a tool. move the idler and then move the color selector (if needed)
|
||||
[gcode_macro SELECT_TOOL]
|
||||
variable_tool_selected: -1
|
||||
variable_color_selected: -1
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro HOME_MMU"].home != -1 %}
|
||||
M118 Select Tool {params.VALUE} ...
|
||||
MANUAL_STEPPER STEPPER=idler_stepper MOVE={printer["gcode_macro VAR_MMU2S"].idler[params.VALUE|int]}
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
MANUAL_STEPPER STEPPER=selector_stepper MOVE={printer["gcode_macro VAR_MMU2S"].colorselector[params.VALUE|int]}
|
||||
{% endif %}
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=tool_selected VALUE={params.VALUE}
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=color_selected VALUE={params.VALUE}
|
||||
M118 Tool {params.VALUE} Enabled
|
||||
{% else %}
|
||||
M118 Could not select tool, MMU is not homed
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Unselect a tool, only park the idler
|
||||
[gcode_macro UNSELECT_TOOL]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro HOME_MMU"].home != -1 %}
|
||||
MANUAL_STEPPER STEPPER=idler_stepper MOVE={printer["gcode_macro VAR_MMU2S"].idler_home_position}
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=tool_selected VALUE=-1
|
||||
{% else %}
|
||||
M118 Could not unselect tool, MMU is not homed
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
############################################
|
||||
#
|
||||
# Loading/Unloading part FROM/TO EXTRUDER TO/FROM NOZZLE
|
||||
# During loading, if the IR sensor does not detect the filament, it tries 3 times to reinsert it
|
||||
#
|
||||
############################################
|
||||
|
||||
# Try to reinsert the filament into the extruder
|
||||
# Called when the IR sensor does not detect the filament
|
||||
# the MMU2S push the filament of 10mm
|
||||
# and the extruder gear try to insert it into the nozzle
|
||||
[gcode_macro RETRY_LOAD_FILAMENT_IN_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["filament_switch_sensor ir_sensor"].filament_detected == False %}
|
||||
M118 Retry loading ....
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer.extruder.temperature > printer["gcode_macro VAR_MMU2S"].min_temp_extruder %}
|
||||
M118 Loading Filament...
|
||||
G91
|
||||
SELECT_TOOL VALUE={printer["gcode_macro SELECT_TOOL"].color_selected|int}
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=10 SPEED=30
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
G1 E10 F600
|
||||
UNSELECT_TOOL
|
||||
G1 E10 F1800
|
||||
G1 E22 F1393
|
||||
G1 E10 F614
|
||||
G92 E0
|
||||
G90
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Load the filament into the extruder
|
||||
# the MMU2S push the filament of 20mm
|
||||
# and the extruder gear try to insert it into the nozzle
|
||||
# if the filament is not detected by the IR, call RETRY_LOAD_FILAMENT_IN_EXTRUDER 3 times
|
||||
#
|
||||
# Call PAUSE_MMU if the filament is not detected by the IR sensor
|
||||
[gcode_macro LOAD_FILAMENT_IN_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer.extruder.temperature > printer["gcode_macro VAR_MMU2S"].min_temp_extruder %}
|
||||
M118 Loading Filament...
|
||||
G91
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=20 SPEED=30
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
G1 E10 F600
|
||||
UNSELECT_TOOL
|
||||
G1 E10 F1800
|
||||
G1 E22 F1393
|
||||
G1 E10 F614
|
||||
G92 E0
|
||||
G90
|
||||
RETRY_LOAD_FILAMENT_IN_EXTRUDER
|
||||
RETRY_LOAD_FILAMENT_IN_EXTRUDER
|
||||
RETRY_LOAD_FILAMENT_IN_EXTRUDER
|
||||
IS_FILAMENT_IN_EXTRUDER
|
||||
M118 Load Complete
|
||||
{% else %}
|
||||
M118 Extruder too cold
|
||||
PAUSE_MMU
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Retry unload, try correct misalignement of bondtech gear
|
||||
[gcode_macro RETRY_UNLOAD_FILAMENT_IN_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["filament_switch_sensor ir_sensor"].filament_detected == True %}
|
||||
M118 Retry unloading ....
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer.extruder.temperature > printer["gcode_macro VAR_MMU2S"].min_temp_extruder %}
|
||||
M118 Unloading Filament...
|
||||
G91
|
||||
G92 E0
|
||||
G1 E10 F500
|
||||
G1 E-20 F500
|
||||
G1 E-60 F3000
|
||||
G92 E0
|
||||
G90
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Unload the filament from the nozzle (without RAMMING !!!)
|
||||
# Retract the filament from the nozzle to the out of the extruder gear
|
||||
#
|
||||
# Call PAUSE_MMU if the IR sensor detects the filament after the ejection
|
||||
[gcode_macro UNLOAD_FILAMENT_IN_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer.extruder.temperature > printer["gcode_macro VAR_MMU2S"].min_temp_extruder %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int == -1 %}
|
||||
M118 Unloading Filament...
|
||||
G91
|
||||
G1 E-20 F500
|
||||
G1 E-30 F3000
|
||||
G90
|
||||
G92 E0
|
||||
G4 P1000
|
||||
RETRY_UNLOAD_FILAMENT_IN_EXTRUDER
|
||||
RETRY_UNLOAD_FILAMENT_IN_EXTRUDER
|
||||
RETRY_UNLOAD_FILAMENT_IN_EXTRUDER
|
||||
IS_FILAMENT_STUCK_IN_EXTRUDER
|
||||
M118 Filament removed
|
||||
{% else %}
|
||||
M118 Tool selected, UNSELECT it
|
||||
PAUSE_MMU
|
||||
{% endif %}
|
||||
{% else %}
|
||||
M118 Extruder too cold
|
||||
PAUSE_MMU
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Ramming process for standart PLA, code extracted from slic3r gcode
|
||||
[gcode_macro RAMMING_SLICER]
|
||||
gcode:
|
||||
G91
|
||||
G92 E0
|
||||
G1 E0.6873 F165
|
||||
G1 E0.7007 F168
|
||||
G1 E0.7376 F177
|
||||
G1 E0.7879 F189
|
||||
G1 E0.8214 F197
|
||||
G1 E0.8483 F204
|
||||
G1 E0.9019 F216
|
||||
G1 E0.9757 F234
|
||||
G1 E1.0260 F246
|
||||
G1 E1.0427 F250
|
||||
G1 E-15.000 F6000.0
|
||||
G1 E-24.5000 F5400.0
|
||||
G1 E-7.0000 F2700.0
|
||||
G1 E-3.5000 F1620.0
|
||||
G1 E20.000 F180.0
|
||||
G1 E-20.000 F160.0
|
||||
G1 E20.000 F140.0
|
||||
G1 E-20.000 F120.0
|
||||
G1 E-50.0000 F2000
|
||||
G92 E0
|
||||
|
||||
# Unload from extruder with ramming
|
||||
[gcode_macro UNLOAD_FILAMENT_IN_EXTRUDER_WITH_RAMMING]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer.extruder.temperature > printer["gcode_macro VAR_MMU2S"].min_temp_extruder %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int == -1 %}
|
||||
M118 Ramming and Unloading Filament...
|
||||
G91
|
||||
RAMMING_SLICER
|
||||
UNLOAD_FILAMENT_IN_EXTRUDER
|
||||
M118 Filament rammed and removed
|
||||
{% else %}
|
||||
M118 Tool selected, UNSELECT it
|
||||
PAUSE_MMU
|
||||
{% endif %}
|
||||
{% else %}
|
||||
M118 Extruder too cold
|
||||
PAUSE_MMU
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
############################################
|
||||
#
|
||||
# Loading/Unloading MACROS from MMU2S to the enter of the extruder gear
|
||||
#
|
||||
############################################
|
||||
|
||||
# Load filament until the PINDA detect it and push it 10mm more to be sure is well detected
|
||||
#
|
||||
# PAUSE_MMU is called if the PINDA does not detect the filament
|
||||
[gcode_macro LOAD_FILAMENT_TO_PINDA]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int != -1 %}
|
||||
M118 Loading filament to PINDA ...
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE={printer["gcode_macro VAR_MMU2S"].pinda_load_length} STOP_ON_ENDSTOP=2
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=10
|
||||
IS_FILAMENT_IN_PINDA
|
||||
M118 Loading done to PINDA
|
||||
{% else %}
|
||||
M118 Cannot load to PINDA, tool not selected !!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Load from the PINDA to the extruder gear
|
||||
[gcode_macro LOAD_FILAMENT_FROM_PINDA_TO_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int != -1 %}
|
||||
M118 Loading filament from PINDA to extruder ...
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE={printer["gcode_macro VAR_MMU2S"].bowden_load_length1} SPEED=120 ACCEL=80
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE={printer["gcode_macro VAR_MMU2S"].bowden_load_length2} SPEED=60 ACCEL=80
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
M118 Loading done from PINDA to extruder
|
||||
{% else %}
|
||||
M118 Cannot load to extruder, tool not selected !!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Load from MMU2S to extruder gear by calling LOAD_FILAMENT_TO_PINDA and next LOAD_FILAMENT_FROM_PINDA_TO_EXTRUDER
|
||||
#
|
||||
# PAUSE_MMU is called if the PINDA does not detect the filament
|
||||
[gcode_macro LOAD_FILAMENT_TO_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int != -1 %}
|
||||
M118 Loading filament from MMU to extruder ...
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
LOAD_FILAMENT_TO_PINDA
|
||||
{% endif %}
|
||||
LOAD_FILAMENT_FROM_PINDA_TO_EXTRUDER
|
||||
M118 Loading done from MMU to extruder
|
||||
{% else %}
|
||||
M118 Cannot load to extruder, tool not selected !!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Unload filament until the PINDA detect it and push it -10mm more to be sure is well not detected
|
||||
#
|
||||
# PAUSE_MMU is called if the PINDA does detect the filament
|
||||
[gcode_macro UNLOAD_FILAMENT_FROM_PINDA]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int != -1 %}
|
||||
M118 Unloading filament from PINDA ...
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro VAR_MMU2S"].pinda_unload_length}
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-10
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
IS_FILAMENT_STUCK_IN_PINDA
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=color_selected VALUE=-1
|
||||
M118 Unloading done from PINDA
|
||||
{% else %}
|
||||
M118 Cannot unload from PINDA, tool not selected !!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Unload from extruder gear to the PINDA
|
||||
[gcode_macro UNLOAD_FILAMENT_FROM_EXTRUDER_TO_PINDA]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int != -1 %}
|
||||
M118 Unloading filament from extruder to PINDA ...
|
||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro VAR_MMU2S"].bowden_unload_length} SPEED=120 ACCEL=80 STOP_ON_ENDSTOP=-2
|
||||
IS_FILAMENT_STUCK_IN_PINDA
|
||||
{% else %}
|
||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro VAR_MMU2S"].bowden_unload_length} SPEED=120 ACCEL=80
|
||||
{% endif %}
|
||||
M118 Unloading done from PINDA to extruder
|
||||
{% else %}
|
||||
M118 Cannot unload from extruder to PINDA, tool not selected !!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Unload from the extruder gear to the MMU2S by calling UNLOAD_FILAMENT_FROM_EXTRUDER_TO_PINDA and next UNLOAD_FILAMENT_FROM_PINDA
|
||||
[gcode_macro UNLOAD_FILAMENT_FROM_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].tool_selected|int != -1 %}
|
||||
M118 Unloading filament from extruder to MMU ...
|
||||
UNLOAD_FILAMENT_FROM_EXTRUDER_TO_PINDA
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
UNLOAD_FILAMENT_FROM_PINDA
|
||||
{% endif %}
|
||||
M118 Unloading done from extruder to MMU
|
||||
{% else %}
|
||||
M118 Cannot unload from extruder to MMU, tool not selected !!
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
############################################
|
||||
#
|
||||
# Endstop check MACROS
|
||||
# Verify the state of the PINDA or the IR sensor
|
||||
#
|
||||
############################################
|
||||
|
||||
# Call PAUSE_MMU if the filament is not detected by the IR sensor
|
||||
[gcode_macro IS_FILAMENT_IN_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["filament_switch_sensor ir_sensor"].filament_detected == True %}
|
||||
M118 Filament in extruder
|
||||
{% else %}
|
||||
M118 Filament not in extruder
|
||||
PAUSE_MMU
|
||||
{% endif %}
|
||||
|
||||
# Call PAUSE_MMU if the filament is not detected by the PINDA
|
||||
[gcode_macro IS_FILAMENT_IN_PINDA]
|
||||
gcode:
|
||||
QUERY_ENDSTOPS
|
||||
IS_IN_PINDA
|
||||
|
||||
[gcode_macro IS_IN_PINDA]
|
||||
gcode:
|
||||
{% if printer.query_endstops.last_query["manual_stepper gear_stepper"] == 1 %}
|
||||
M118 Filament in PINDA
|
||||
{% else %}
|
||||
M118 Filament not in PINDA
|
||||
PAUSE_MMU
|
||||
{% endif %}
|
||||
|
||||
|
||||
# Call PAUSE_MMU if the filament is detected by the IR sensor
|
||||
[gcode_macro IS_FILAMENT_STUCK_IN_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["filament_switch_sensor ir_sensor"].filament_detected == True %}
|
||||
M118 Filament stuck in extruder
|
||||
PAUSE_MMU
|
||||
{% else %}
|
||||
M118 Filament not in extruder
|
||||
{% endif %}
|
||||
|
||||
# Call PAUSE_MMU if the filament is detected by the PINDA
|
||||
[gcode_macro IS_FILAMENT_STUCK_IN_PINDA]
|
||||
gcode:
|
||||
QUERY_ENDSTOPS
|
||||
IS_STUCK_IN_PINDA
|
||||
|
||||
[gcode_macro IS_STUCK_IN_PINDA]
|
||||
gcode:
|
||||
{% if printer.query_endstops.last_query["manual_stepper gear_stepper"] == 1 %}
|
||||
M118 Filament stuck in PINDA
|
||||
PAUSE_MMU
|
||||
{% else %}
|
||||
M118 Filament not in PINDA
|
||||
{% endif %}
|
||||
|
||||
############################################
|
||||
#
|
||||
# M702 macro called by the end-gcode to eject the filament at the end of the print
|
||||
#
|
||||
############################################
|
||||
|
||||
# Eject the filament with ramming from the extruder nozzle to the MMU2S
|
||||
[gcode_macro EJECT_RAMMING]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["gcode_macro SELECT_TOOL"].color_selected|int != -1 %}
|
||||
M118 UT {printer["gcode_macro SELECT_TOOL"].color_selected|int} ...
|
||||
UNLOAD_FILAMENT_IN_EXTRUDER_WITH_RAMMING
|
||||
SELECT_TOOL VALUE={printer["gcode_macro SELECT_TOOL"].color_selected|int}
|
||||
UNLOAD_FILAMENT_FROM_EXTRUDER
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# M702 first part
|
||||
# unload filament if inserted into the IR sensor
|
||||
[gcode_macro M702]
|
||||
gcode:
|
||||
UT
|
||||
QUERY_ENDSTOPS
|
||||
END_M702
|
||||
|
||||
# M702 second part
|
||||
# Unselect the current tool
|
||||
[gcode_macro END_M702]
|
||||
gcode:
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
{% if printer.query_endstops.last_query["manual_stepper gear_stepper"] != 1 %}
|
||||
UNSELECT_TOOL
|
||||
M118 M702 ok ...
|
||||
{% else %}
|
||||
M118 M702 Error !!!
|
||||
{% endif %}
|
||||
{% else %}
|
||||
UNSELECT_TOOL
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=color_selected VALUE=-1
|
||||
M118 M702 ok ...
|
||||
{% endif %}
|
||||
|
||||
############################################
|
||||
#
|
||||
# MACROS called during homing to try to eject the filament if loaded
|
||||
#
|
||||
############################################
|
||||
|
||||
# Preheat the heater if needed and unload the filament with ramming
|
||||
# eject from nozlle to extruder gear out
|
||||
[gcode_macro EJECT_FROM_EXTRUDER]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
{% if printer["filament_switch_sensor ir_sensor"].filament_detected == True %}
|
||||
M118 Filament in extruder, trying to eject it ..
|
||||
M118 Preheat Nozzle
|
||||
M109 S{printer["gcode_macro VAR_MMU2S"].extruder_eject_temp}
|
||||
UNLOAD_FILAMENT_IN_EXTRUDER_WITH_RAMMING
|
||||
M104 S0
|
||||
{% else %}
|
||||
M118 Filament not in extruder
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
# Eject from extruder gear to MMU2S
|
||||
[gcode_macro EJECT_BEFORE_HOME]
|
||||
gcode:
|
||||
M118 Eject Filament if loaded ...
|
||||
{% if printer["filament_switch_sensor ir_sensor"].filament_detected == True %}
|
||||
EJECT_FROM_EXTRUDER
|
||||
IS_FILAMENT_STUCK_IN_EXTRUDER
|
||||
{% endif %}
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
{% if printer.query_endstops.last_query["manual_stepper gear_stepper"] == 1 %}
|
||||
UNLOAD_FILAMENT_FROM_EXTRUDER
|
||||
IS_FILAMENT_STUCK_IN_PINDA
|
||||
M118 Filament ejected !
|
||||
{% else %}
|
||||
M118 Filament already ejected !
|
||||
{% endif %}
|
||||
{% else %}
|
||||
M118 Filament already ejected !
|
||||
{% endif %}
|
||||
|
||||
############################################
|
||||
#
|
||||
# Homing MACROS
|
||||
# HOME_MMU must be called before using the MMU2S
|
||||
#
|
||||
############################################
|
||||
|
||||
# Home the MMU
|
||||
# eject filament if loaded with EJECT_BEFORE_HOME
|
||||
# next home the mmu with HOME_MMU_ONLY
|
||||
[gcode_macro HOME_MMU]
|
||||
variable_home: -1
|
||||
gcode:
|
||||
SET_FILAMENT_SENSOR SENSOR=ir_sensor ENABLE=0
|
||||
SET_GCODE_VARIABLE MACRO=HOME_MMU VARIABLE=home VALUE=1
|
||||
M118 Homing MMU ...
|
||||
QUERY_ENDSTOPS
|
||||
EJECT_BEFORE_HOME
|
||||
HOME_MMU_ONLY
|
||||
|
||||
# Home the idler
|
||||
[gcode_macro HOME_IDLER]
|
||||
gcode:
|
||||
M118 Homing idler
|
||||
MANUAL_STEPPER STEPPER=idler_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=idler_stepper MOVE=7
|
||||
MANUAL_STEPPER STEPPER=idler_stepper MOVE=-95
|
||||
MANUAL_STEPPER STEPPER=idler_stepper SET_POSITION=2
|
||||
MANUAL_STEPPER STEPPER=idler_stepper MOVE={printer["gcode_macro VAR_MMU2S"].idler_home_position}
|
||||
|
||||
# Home the MMU :
|
||||
# 1) home the idler
|
||||
# 2) home the color selector (if needed)
|
||||
# 3) try to load filament 0 to PINDA and then unload it. Used to verify the MMU2S gear
|
||||
#
|
||||
# if all is ok, the MMU2S is ready to be used
|
||||
[gcode_macro HOME_MMU_ONLY]
|
||||
gcode:
|
||||
{% if printer["gcode_macro PAUSE_MMU"].is_paused|int == 0 %}
|
||||
HOME_IDLER
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
M118 Homing selector
|
||||
MANUAL_STEPPER STEPPER=selector_stepper SET_POSITION=0
|
||||
MANUAL_STEPPER STEPPER=selector_stepper MOVE=-76 STOP_ON_ENDSTOP=1
|
||||
MANUAL_STEPPER STEPPER=selector_stepper SET_POSITION=0
|
||||
{% endif %}
|
||||
MANUAL_STEPPER STEPPER=idler_stepper MOVE=0
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=tool_selected VALUE=-1
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=color_selected VALUE=-1
|
||||
M118 Test load filament 0
|
||||
SELECT_TOOL VALUE=0
|
||||
{% if printer["gcode_macro VAR_MMU2S"].enable_5in1 == 0 %}
|
||||
LOAD_FILAMENT_TO_PINDA
|
||||
G4 P1000
|
||||
UNLOAD_FILAMENT_FROM_PINDA
|
||||
{% else %}
|
||||
SET_GCODE_VARIABLE MACRO=SELECT_TOOL VARIABLE=color_selected VALUE=-1
|
||||
{% endif %}
|
||||
UNSELECT_TOOL
|
||||
SET_GCODE_VARIABLE MACRO=HOME_MMU VARIABLE=home VALUE=1
|
||||
M118 Homing MMU ended ...
|
||||
{% else %}
|
||||
M118 Homing MMU failed, MMU is paused, unlock it ...
|
||||
{% endif %}
|
||||
|
||||
###############################################
|
||||
61
config/sample-multi-extruder.cfg
Normal file
61
config/sample-multi-extruder.cfg
Normal file
@@ -0,0 +1,61 @@
|
||||
# This file contains a configuration snippet for a printer using two
|
||||
# extruders that are selected by a servo.
|
||||
|
||||
# See example.cfg and example-extras.cfg for a description of
|
||||
# available parameters.
|
||||
|
||||
# The primary extruder
|
||||
[extruder]
|
||||
step_pin: ar26
|
||||
dir_pin: ar28
|
||||
enable_pin: !ar24
|
||||
step_distance: .004242
|
||||
nozzle_diameter: 0.500
|
||||
filament_diameter: 3.500
|
||||
heater_pin: ar10
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
sensor_pin: analog13
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 210
|
||||
|
||||
# Script to change back to the main extruder
|
||||
[gcode_macro T0]
|
||||
gcode:
|
||||
SET_SERVO SERVO=extruder_servo angle=100 # Lift secondary extruder
|
||||
SET_GCODE_OFFSET Z=0 MOVE=1 # Adjust z-height
|
||||
SET_GCODE_OFFSET X=0 # Clear X offset
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||
|
||||
# Secondary extruder
|
||||
[extruder1]
|
||||
step_pin: ar36
|
||||
dir_pin: ar34
|
||||
enable_pin: !ar30
|
||||
step_distance: .004242
|
||||
nozzle_diameter: 0.500
|
||||
filament_diameter: 3.500
|
||||
heater_pin: ar9
|
||||
sensor_pin: analog15
|
||||
sensor_type: EPCOS 100K B57560G104F
|
||||
control: pid
|
||||
pid_Kp: 22.2
|
||||
pid_Ki: 1.08
|
||||
pid_Kd: 114
|
||||
min_temp: 0
|
||||
max_temp: 210
|
||||
|
||||
# Script to activate second extruder
|
||||
[gcode_macro T1]
|
||||
gcode:
|
||||
SET_GCODE_OFFSET Z=0.100 MOVE=1 # Adjust z-height
|
||||
SET_SERVO SERVO=extruder_servo angle=100 # Position second extruder
|
||||
SET_GCODE_OFFSET X=5 # Account for different X offset
|
||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||
|
||||
# Servo definition
|
||||
[servo extruder_servo]
|
||||
pin: ar7
|
||||
@@ -20,16 +20,12 @@ endstop_pin: probe:z_virtual_endstop
|
||||
position_min: -2 # The Z carriage may need to travel below the Z=0
|
||||
# homing point if the bed has a significant tilt.
|
||||
|
||||
# The homing_override section modifies the default G28 behavior
|
||||
[homing_override]
|
||||
set_position_z: 0
|
||||
axes: z
|
||||
gcode:
|
||||
G90
|
||||
; G1 Z2 F600 ; Uncomment to blindly lift the Z 2mm at start
|
||||
G28 X0 Y0
|
||||
G1 X100 Y100 F3600
|
||||
G28 Z0
|
||||
# The safe_z_home section modifies the default G28 behavior
|
||||
[safe_z_home]
|
||||
home_xy_position: 100,100
|
||||
speed: 50
|
||||
z_hop: 15
|
||||
z_hop_speed: 5
|
||||
|
||||
# Example bed_tilt config section
|
||||
[bed_tilt]
|
||||
@@ -46,6 +42,6 @@ points:
|
||||
|
||||
# Example bed_mesh config section
|
||||
[bed_mesh]
|
||||
min_point: 20,20
|
||||
max_point: 200,200
|
||||
mesh_min: 20,20
|
||||
mesh_max: 200,200
|
||||
probe_count: 4,4
|
||||
|
||||
45
config/sample-raspberry-pi.cfg
Normal file
45
config/sample-raspberry-pi.cfg
Normal file
@@ -0,0 +1,45 @@
|
||||
# This file contains an example configuration with RPi as secondary mcu
|
||||
|
||||
# See both the example.cfg and example-extras.cfg file for a
|
||||
# description of available parameters.
|
||||
|
||||
# The rpi microcontroller is used as secondary.
|
||||
# Typically, both the X and Y axes
|
||||
# are connected to the main micro-controller. The rpi microcontroller is used
|
||||
# on non time-critical functions such as enclosure sensors, additional fan or
|
||||
# light sources
|
||||
[mcu host]
|
||||
serial: /tmp/klipper_host_mcu
|
||||
|
||||
# Example1: A led strip controlled by the GPIO20 on the RPi
|
||||
[output_pin caselight]
|
||||
pin: host:gpio20
|
||||
# You can also write the pin in extended form by specifying
|
||||
# the reference gpiochip.
|
||||
#pin: host:gpiochip0/gpio20
|
||||
|
||||
[gcode_macro TOGGLE_CASELIGHT]
|
||||
gcode:
|
||||
SET_PIN PIN=caselight VALUE={(not printer['output_pin caselight'].value)|int}
|
||||
|
||||
|
||||
# Example2: Using the i2c bus of the RPi to read a sensor
|
||||
[temperature_sensor enclosure_temp]
|
||||
sensor_type: HTU21D
|
||||
i2c_mcu: host
|
||||
i2c_bus: i2c.1
|
||||
htu21d_hold_master: False
|
||||
|
||||
[gcode_macro QUERY_ENCLOSURE]
|
||||
default_parameter_SENSOR: htu21d enclosure_temp
|
||||
gcode:
|
||||
{action_respond_info(
|
||||
"Temperature: %.2f C\n"
|
||||
"Humidity: %.2f%%" % (
|
||||
printer[SENSOR].temperature,
|
||||
printer[SENSOR].humidity))}
|
||||
|
||||
# Example 3:Using a pin on another gpiochip connected to the RPi
|
||||
# (in this case on an MCP23017)
|
||||
[fan]
|
||||
pin: host:gpiochip2/gpio7
|
||||
295
docs/API_Server.md
Normal file
295
docs/API_Server.md
Normal file
@@ -0,0 +1,295 @@
|
||||
This document describes Klipper's Application Programmer Interface
|
||||
(API). This interface enables external applications to query and
|
||||
control the Klipper host software.
|
||||
|
||||
Enabling the API socket
|
||||
=======================
|
||||
|
||||
In order to use the API server, the klippy.py host software must be
|
||||
started with the `-a` parameter. For example:
|
||||
```
|
||||
~/klippy-env/bin/python ~/klipper/klippy/klippy.py ~/printer.cfg -a /tmp/klippy_uds -l /tmp/klippy.log
|
||||
```
|
||||
|
||||
This causes the host software to create a Unix Domain Socket. A client
|
||||
can then open a connection on that socket and send commands to
|
||||
Klipper.
|
||||
|
||||
Request format
|
||||
==============
|
||||
|
||||
Messages sent and received on the socket are JSON encoded strings
|
||||
terminated by an ASCII 0x03 character:
|
||||
```
|
||||
<json_object_1><0x03><json_object_2><0x03>...
|
||||
```
|
||||
|
||||
Klipper contains a `scripts/whconsole.py` tool that can perform the
|
||||
above message framing. For example:
|
||||
```
|
||||
~/klipper/scripts/whconsole.py /tmp/klippy_uds
|
||||
```
|
||||
|
||||
This tool can read a series of JSON commands from stdin, send them to
|
||||
Klipper, and report the results. The tool expects each JSON command to
|
||||
be on a single line, and it will automatically append the 0x03
|
||||
terminator when transmitting a request. (The Klipper API server does
|
||||
not have a newline requirement.)
|
||||
|
||||
API Protocol
|
||||
============
|
||||
|
||||
The command protocol used on the communication socket is inspired by
|
||||
[json-rpc](https://www.jsonrpc.org/).
|
||||
|
||||
A request might look like:
|
||||
|
||||
`{"id": 123, "method": "info", "params": {}}`
|
||||
|
||||
and a response might look like:
|
||||
|
||||
`{"id": 123, "result": {"state_message": "Printer is ready",
|
||||
"klipper_path": "/home/pi/klipper", "config_file":
|
||||
"/home/pi/printer.cfg", "software_version": "v0.8.0-823-g883b1cb6",
|
||||
"hostname": "octopi", "cpu_info": "4 core ARMv7 Processor rev 4
|
||||
(v7l)", "state": "ready", "python_path":
|
||||
"/home/pi/klippy-env/bin/python", "log_file": "/tmp/klippy.log"}}`
|
||||
|
||||
Each request must be a JSON dictionary. (This document uses the Python
|
||||
term "dictionary" to describe a "JSON object" - a mapping of key/value
|
||||
pairs contained within `{}`.)
|
||||
|
||||
The request dictionary must contain a "method" parameter that is the
|
||||
string name of an available Klipper "endpoint".
|
||||
|
||||
The request dictionary may contain a "params" parameter which must be
|
||||
of a dictionary type. The "params" provide additional parameter
|
||||
information to the Klipper "endpoint" handling the request. Its
|
||||
content is specific to the "endpoint".
|
||||
|
||||
The request dictionary may contain an "id" parameter which may be of
|
||||
any JSON type. If "id" is present then Klipper will respond to the
|
||||
request with a response message containing that "id". If "id" is
|
||||
omitted (or set to a JSON "null" value) then Klipper will not provide
|
||||
any response to the request. A response message is a JSON dictionary
|
||||
containing "id" and "result". The "result" is always a dictionary -
|
||||
its contents are specific to the "endpoint" handling the request.
|
||||
|
||||
If the processing of a request results in an error, then the response
|
||||
message will contain an "error" field instead of a "result" field. For
|
||||
example, the request:
|
||||
`{"id": 123, "method": "gcode/script", "params": {"script": "G1
|
||||
X200"}}`
|
||||
might result in an error response such as:
|
||||
`{"id": 123, "error": {"message": "Must home axis
|
||||
first: 200.000 0.000 0.000 [0.000]", "error": "WebRequestError"}}`
|
||||
|
||||
Klipper will always start processing requests in the order that they
|
||||
are received. However, some request may not complete immediately,
|
||||
which could cause the associated response to be sent out of order with
|
||||
respect to responses from other requests. A JSON request will never
|
||||
pause the processing of future JSON requests.
|
||||
|
||||
Subscriptions
|
||||
=============
|
||||
|
||||
Some Klipper "endpoint" requests allow one to "subscribe" to future
|
||||
asynchronous update messages.
|
||||
|
||||
For example:
|
||||
|
||||
`{"id": 123, "method": "gcode/subscribe_output", "params":
|
||||
{"response_template":{"key": 345}}}`
|
||||
|
||||
may initially respond with:
|
||||
|
||||
`{"id": 123, "result": {}}`
|
||||
|
||||
and cause Klipper to send future messages similar to:
|
||||
|
||||
`{"params": {"response": "ok B:22.8 /0.0 T0:22.4 /0.0"}, "key": 345}`
|
||||
|
||||
A subscription request accepts a "response_template" dictionary in the
|
||||
"params" field of the request. That "response_template" dictionary is
|
||||
used as a template for future asynchronous messages - it may contain
|
||||
arbitrary key/value pairs. When sending these future asynchronous
|
||||
messages, Klipper will add a "params" field containing a dictionary
|
||||
with "endpoint" specific contents to the response template and then
|
||||
send that template. If a "response_template" field is not provided
|
||||
then it defaults to an empty dictionary (`{}`).
|
||||
|
||||
Available "endpoints"
|
||||
=====================
|
||||
|
||||
By convention, Klipper "endpoints" are of the form
|
||||
`<module_name>/<some_name>`. When making a request to an "endpoint",
|
||||
the full name must be set in the "method" parameter of the request
|
||||
dictionary (eg, `{"method"="gcode/restart"}`).
|
||||
|
||||
### info
|
||||
|
||||
The "info" endpoint is used to obtain system and version information
|
||||
from Klipper. It is also used to provide the client's version
|
||||
information to Klipper. For example:
|
||||
`{"id": 123, "method": "info", "params": { "client_info": { "version":
|
||||
"v1"}}}`
|
||||
|
||||
If present, the "client_info" parameter must be a dictionary, but that
|
||||
dictionary may have arbitrary contents. Clients are encouraged to
|
||||
provide the name of the client and its software version when first
|
||||
connecting to the Klipper API server.
|
||||
|
||||
### emergency_stop
|
||||
|
||||
The "emergency_stop" endpoint is used to instruct Klipper to
|
||||
transition to a "shutdown" state. It behaves similarly to the G-Code
|
||||
`M112` command. For example:
|
||||
`{"id": 123, "method": "emergency_stop"}`
|
||||
|
||||
### objects/list
|
||||
|
||||
This endpoint queries the list of available printer "objects" that one
|
||||
may query (via the "objects/query" endpoint). For example:
|
||||
`{"id": 123, "method": "objects/list"}`
|
||||
might return:
|
||||
`{"id": 123, "result": {"objects":
|
||||
["webhooks", "configfile", "heaters", "gcode_move", "query_endstops",
|
||||
"idle_timeout", "toolhead", "extruder"]}}`
|
||||
|
||||
### objects/query
|
||||
|
||||
This endpoint allows one to query information from printer objects.
|
||||
For example:
|
||||
`{"id": 123, "method": "objects/query", "params": {"objects":
|
||||
{"toolhead": ["position"], "webhooks": null}}}`
|
||||
might return:
|
||||
`{"id": 123, "result": {"status": {"webhooks": {"state": "ready",
|
||||
"state_message": "Printer is ready"}, "toolhead": {"position":
|
||||
[0.0, 0.0, 0.0, 0.0]}}, "eventtime": 3051555.377933684}}`
|
||||
|
||||
The "objects" parameter in the request must be a dictionary containing
|
||||
the printer objects that are to be queried - the key contains the
|
||||
printer object name and the value is either "null" (to query all
|
||||
fields) or a list of field names.
|
||||
|
||||
The response message will contain a "status" field containing a
|
||||
dictionary with the queried information - the key contains the printer
|
||||
object name and the value is a dictionary containing its fields. The
|
||||
response message will also contain an "eventtime" field containing the
|
||||
timestamp from when the query was taken.
|
||||
|
||||
Available fields are documented in the
|
||||
[Command Template](Command_Templates.md#the-printer-variable)
|
||||
document.
|
||||
|
||||
### objects/subscribe
|
||||
|
||||
This endpoint allows one to query and then subscribe to information
|
||||
from printer objects. The endpoint request and response is identical
|
||||
to the "objects/query" endpoint. For example:
|
||||
`{"id": 123, "method": "objects/subscribe", "params":
|
||||
{"objects":{"toolhead": ["position"], "webhooks": ["state"]},
|
||||
"response_template":{}}}`
|
||||
might return:
|
||||
`{"id": 123, "result": {"status": {"webhooks": {"state": "ready"},
|
||||
"toolhead": {"position": [0.0, 0.0, 0.0, 0.0]}},
|
||||
"eventtime": 3052153.382083195}}`
|
||||
and result in subsequent asynchronous messages such as:
|
||||
`{"params": {"status": {"webhooks": {"state": "shutdown"}},
|
||||
"eventtime": 3052165.418815847}}`
|
||||
|
||||
### gcode/help
|
||||
|
||||
This endpoint allows one to query available G-Code commands that have
|
||||
a help string defined. For example:
|
||||
`{"id": 123, "method": "gcode/help"}`
|
||||
might return:
|
||||
`{"id": 123, "result": {"RESTORE_GCODE_STATE": "Restore a previously
|
||||
saved G-Code state", "PID_CALIBRATE": "Run PID calibration test",
|
||||
"QUERY_ADC": "Report the last value of an analog pin", ...}}`
|
||||
|
||||
### gcode/script
|
||||
|
||||
This endpoint allows one to run a series of G-Code commands. For example:
|
||||
`{"id": 123, "method": "gcode/script", "params": {"script": "G90"}}`
|
||||
|
||||
If the provided G-Code script raises an error, then an error response
|
||||
is generated. However, if the G-Code command produces terminal output,
|
||||
that terminal output is not provided in the response. (Use the
|
||||
"gcode/subscribe_output" endpoint to obtain G-Code terminal output.)
|
||||
|
||||
If there is a G-Code command being processed when this request is
|
||||
received, then the provided script will be queued. This delay could be
|
||||
significant (eg, if a G-Code wait for temperature command is running).
|
||||
The JSON response message is sent when the processing of the script
|
||||
fully completes.
|
||||
|
||||
### gcode/restart
|
||||
|
||||
This endpoint allows one to request a restart - it is similar to
|
||||
running the G-Code "RESTART" command. For example:
|
||||
`{"id": 123, "method": "gcode/restart"}`
|
||||
|
||||
As with the "gcode/script" endpoint, this endpoint only completes
|
||||
after any pending G-Code commands complete.
|
||||
|
||||
### gcode/firmware_restart
|
||||
|
||||
This is similar to the "gcode/restart" endpoint - it implements the
|
||||
G-Code "FIRMWARE_RESTART" command. For example:
|
||||
`{"id": 123, "method": "gcode/firmware_restart"}`
|
||||
|
||||
As with the "gcode/script" endpoint, this endpoint only completes
|
||||
after any pending G-Code commands complete.
|
||||
|
||||
### gcode/subscribe_output
|
||||
|
||||
This endpoint is used to subscribe to G-Code terminal messages that
|
||||
are generated by Klipper. For example:
|
||||
`{"id": 123, "method": "gcode/subscribe_output", "params":
|
||||
{"response_template":{}}}`
|
||||
might later produce asynchronous messages such as:
|
||||
`{"params": {"response": "// Klipper state: Shutdown"}}`
|
||||
|
||||
This endpoint is intended to support human interaction via a "terminal
|
||||
window" interface. Parsing content from the G-Code terminal output is
|
||||
discouraged. Use the "objects/subscribe" endpoint to obtain updates on
|
||||
Klipper's state.
|
||||
|
||||
### pause_resume/cancel
|
||||
|
||||
This endpoint is similar to running the "PRINT_CANCEL" G-Code command.
|
||||
For example:
|
||||
`{"id": 123, "method": "pause_resume/cancel"}`
|
||||
|
||||
As with the "gcode/script" endpoint, this endpoint only completes
|
||||
after any pending G-Code commands complete.
|
||||
|
||||
### pause_resume/pause
|
||||
|
||||
This endpoint is similar to running the "PAUSE" G-Code command. For
|
||||
example:
|
||||
`{"id": 123, "method": "pause_resume/pause"}`
|
||||
|
||||
As with the "gcode/script" endpoint, this endpoint only completes
|
||||
after any pending G-Code commands complete.
|
||||
|
||||
### pause_resume/resume
|
||||
|
||||
This endpoint is similar to running the "RESUME" G-Code command. For
|
||||
example:
|
||||
`{"id": 123, "method": "pause_resume/resume"}`
|
||||
|
||||
As with the "gcode/script" endpoint, this endpoint only completes
|
||||
after any pending G-Code commands complete.
|
||||
|
||||
### query_endstops/status
|
||||
|
||||
This endpoint will query the active endpoints and return their status.
|
||||
For example:
|
||||
`{"id": 123, "method": "query_endstops/status"}`
|
||||
might return:
|
||||
`{"id": 123, "result": {"y": "open", "x": "open", "z": "TRIGGERED"}}`
|
||||
|
||||
As with the "gcode/script" endpoint, this endpoint only completes
|
||||
after any pending G-Code commands complete.
|
||||
262
docs/BLTouch.md
262
docs/BLTouch.md
@@ -20,24 +20,20 @@ control_pin: P1.26
|
||||
|
||||
If the BL-Touch will be used to home the Z axis then set `endstop_pin:
|
||||
probe:z_virtual_endstop` in the `[stepper_z]` config section and add a
|
||||
`[homing_override]` config section to raise the z-axis, home the
|
||||
x/y-axis, move to the center of the bed, and home the z-axis. For
|
||||
example:
|
||||
`[safe_z_home]` config section to raise the z axis, home the xy axes,
|
||||
move to the center of the bed, and home the z axis. For example:
|
||||
|
||||
```
|
||||
[homing_override]
|
||||
gcode:
|
||||
G90 ; Use absolute position mode
|
||||
G1 Z10 ; Move up 10mm
|
||||
G28 X Y
|
||||
G1 X166 Y120 F6000 ; Change the X and Y coordinates to the center of your print bed
|
||||
G28 Z
|
||||
set_position_z: 0.0
|
||||
[safe_z_home]
|
||||
home_xy_position: 100,100 # Change coordinates to the center of your print bed
|
||||
speed: 50
|
||||
z_hop: 10 # Move up 10mm
|
||||
z_hop_speed: 5
|
||||
```
|
||||
|
||||
It's important that the initial Z upwards movement in the
|
||||
homing_override is high enough that the probe doesn't hit anything
|
||||
even if the probe pin happens to be in its lowest state.
|
||||
It's important that the z_hop movement in safe_z_home is high enough
|
||||
that the probe doesn't hit anything even if the probe pin happens to
|
||||
be in its lowest state.
|
||||
|
||||
Initial tests
|
||||
=============
|
||||
@@ -52,24 +48,156 @@ the probe should be lit. If there are any errors, for example the
|
||||
probe is flashing red or the pin is down instead of up, please turn
|
||||
off the printer and check the wiring and configuration.
|
||||
|
||||
If the above is looking good, it's time to test that the probe
|
||||
responds to commands from the firmware. First run `BLTOUCH_DEBUG
|
||||
COMMAND=pin_down` in your printer terminal. Verify that the pin moves
|
||||
down, and that the red LED on the probe turns off. If not, check your
|
||||
wiring and configuration again. Next issue a `BLTOUCH_DEBUG
|
||||
COMMAND=pin_up`, verify that the pin moves up, and that the red light
|
||||
turns on again. If it's flashing then there's some problem.
|
||||
If the above is looking good, it's time to test that the control pin
|
||||
is working correctly. First run `BLTOUCH_DEBUG COMMAND=pin_down` in
|
||||
your printer terminal. Verify that the pin moves down and that the red
|
||||
LED on the probe turns off. If not, check your wiring and
|
||||
configuration again. Next issue a `BLTOUCH_DEBUG COMMAND=pin_up`,
|
||||
verify that the pin moves up, and that the red light turns on
|
||||
again. If it's flashing then there's some problem.
|
||||
|
||||
Now, it's time to test homing with a twist. Instead of letting the
|
||||
probe pin touch the print bed, let it touch the nail on your
|
||||
finger. So issue a `G28`, wait until it starts to move down, and stop
|
||||
the movement by very gently touching the pin with your nail. You
|
||||
probably have to do it twice, since the default configuration makes it
|
||||
probe twice. But be prepared to turn off the printer, to avoid damage,
|
||||
if it doesn't stop when you touch the pin.
|
||||
The next step is to confirm that the sensor pin is working correctly.
|
||||
Run `BLTOUCH_DEBUG COMMAND=pin_down`, verify that the pin moves down,
|
||||
run `BLTOUCH_DEBUG COMMAND=touch_mode`, run `QUERY_PROBE`, and verify
|
||||
that command reports "probe: open". Then while gently pushing the pin
|
||||
up slightly with the nail of your finger run `QUERY_PROBE` again.
|
||||
Verify the command reports "probe: TRIGGERED". If either query does
|
||||
not report the correct message then check your wiring and
|
||||
configuration again. At the completion of this test run `BLTOUCH_DEBUG
|
||||
COMMAND=pin_up` and verify that the pin moves up.
|
||||
|
||||
If that was successful, do another `G28` but this time let it touch
|
||||
the bed as it should.
|
||||
After completing the BL-Touch control pin and sensor pin tests, it is
|
||||
now time to test probing, but with a twist. Instead of letting the
|
||||
probe pin touch the print bed, let it touch the nail on your finger.
|
||||
Position the toolhead far from the bed, issue a `G28` (or `PROBE` if
|
||||
not using probe:z_virtual_endstop), wait until the toolhead starts to
|
||||
move down, and stop the movement by very gently touching the pin with
|
||||
your nail. You may have to do it twice, since the default homing
|
||||
configuration probes twice. Be prepared to turn off the printer if it
|
||||
doesn't stop when you touch the pin.
|
||||
|
||||
If that was successful, do another `G28` (or `PROBE`) but this time
|
||||
let it touch the bed as it should.
|
||||
|
||||
BL-Touch gone bad
|
||||
=================
|
||||
|
||||
Once the BL-Touch is in inconsistent state, it starts blinking red.
|
||||
You can force it to leave that state by issuing:
|
||||
|
||||
BLTOUCH_DEBUG COMMAND=reset
|
||||
|
||||
This may happen if its calibration is interrupted by the probe being
|
||||
blocked from being extracted.
|
||||
|
||||
However, the BL-Touch may also not be able to calibrate itself
|
||||
anymore. This happens if the screw on its top is in the wrong position
|
||||
or the magnetic core inside the probe pin has moved. If it has moved
|
||||
up so that it sticks to the screw, it may not be able to lower its pin
|
||||
anymore. With this behavior you need to open the screw and use a
|
||||
ball-point pen to push it gently back into place. Re-Insert the pin
|
||||
into the BL-Touch so that it falls into the extracted position.
|
||||
Carefully readjust the headless screw into place. You need to find the
|
||||
right position so it is able to lower and raise the pin and the red
|
||||
light turns on and of. Use the `reset`, `pin_up` and `pin_down`
|
||||
commands to achieve this.
|
||||
|
||||
BL-Touch "clones"
|
||||
=================
|
||||
|
||||
Many BL-Touch "clone" devices work correctly with Klipper using the
|
||||
default configuration. However, some "clone" devices may require
|
||||
configuration of `pin_up_reports_not_triggered` or
|
||||
`pin_up_touch_mode_reports_triggered`.
|
||||
|
||||
Important! Do not configure `pin_up_reports_not_triggered` or
|
||||
`pin_up_touch_mode_reports_triggered` to False without first following
|
||||
these directions. Do not configure either of these to False on a
|
||||
genuine BL-Touch. Incorrectly setting these to False can increase
|
||||
probing time and can increase the risk of damaging the printer.
|
||||
|
||||
Some "clone" devices are unable to perform Klipper's internal sensor
|
||||
verification test. On these devices, attempts to home or probe can
|
||||
result in Klipper reporting a "BLTouch failed to verify sensor state"
|
||||
error. If this occurs, then manually run the steps to confirm the
|
||||
sensor pin is working as described in the
|
||||
[initial tests section](#initial-tests). If the `QUERY_PROBE` commands
|
||||
in that test always produce the expected results and "BLTouch failed
|
||||
to verify sensor state" errors still occur, then it may be necessary
|
||||
to set `pin_up_touch_mode_reports_triggered` to False in the Klipper
|
||||
config file.
|
||||
|
||||
A rare number of old "clone" devices are unable to report when they
|
||||
have successfully raised their probe. On these devices Klipper will
|
||||
report a "BLTouch failed to raise probe" error after every home or
|
||||
probe attempt. One can test for these devices - move the head far from
|
||||
the bed, run `BLTOUCH_DEBUG COMMAND=pin_down`, verify the pin has
|
||||
moved down, run `QUERY_PROBE`, verify that command reports "probe:
|
||||
open", run `BLTOUCH_DEBUG COMMAND=pin_up`, verify the pin has moved
|
||||
up, and run `QUERY_PROBE`. If the pin remains up, the device does not
|
||||
enter an error state, and the first query reports "probe: open" while
|
||||
the second query reports "probe: TRIGGERED" then it indicates that
|
||||
`pin_up_reports_not_triggered` should be set to False in the Klipper
|
||||
config file.
|
||||
|
||||
BL-Touch v3
|
||||
===========
|
||||
|
||||
Some BL-Touch v3.0 and BL-Touch 3.1 devices may require configuring
|
||||
`probe_with_touch_mode` in the printer config file.
|
||||
|
||||
If the BL-Touch v3.0 has its signal wire connected to an endstop pin
|
||||
(with a noise filtering capacitor), then the BL-Touch v3.0 may not be
|
||||
able to consistently send a signal during homing and probing. If the
|
||||
`QUERY_PROBE` commands in the [initial tests section](#initial-tests)
|
||||
always produce the expected results, but the toolhead does not always
|
||||
stop during G28/PROBE commands, then it is indicative of this issue. A
|
||||
workaround is to set `probe_with_touch_mode: True` in the config file.
|
||||
|
||||
The BL-Touch v3.1 may incorrectly enter an error state after a
|
||||
successful probe attempt. The symptoms are an occasional flashing
|
||||
light on the BL-Touch v3.1 that lasts for a couple of seconds after it
|
||||
successfully contacts the bed. Klipper should clear this error
|
||||
automatically and it is generally harmless. However, one may set
|
||||
`probe_with_touch_mode` in the config file to avoid this issue.
|
||||
|
||||
Important! Some "clone" devices and the BL-Touch v2.0 (and earlier)
|
||||
may have reduced accuracy when `probe_with_touch_mode` is set to True.
|
||||
Setting this to True also increases the time it takes to deploy the
|
||||
probe. If configuring this value on a "clone" or older BL-Touch
|
||||
device, be sure to test the probe accuracy before and after setting
|
||||
this value (use the `PROBE_ACCURACY` command to test).
|
||||
|
||||
Multi-probing without stowing
|
||||
=============================
|
||||
|
||||
By default, Klipper will deploy the probe at the start of each probe
|
||||
attempt and then stow the probe afterwards. This repetitive deploying
|
||||
and stowing of the probe may increase the total time of calibration
|
||||
sequences that involve many probe measurements. Klipper supports
|
||||
leaving the probe deployed between consecutive probes, which can
|
||||
reduce the total time of probing. This mode is enabled by configuring
|
||||
`stow_on_each_sample` to False in the config file.
|
||||
|
||||
Important! Setting `stow_on_each_sample` to False can lead to Klipper
|
||||
making horizontal toolhead movements while the probe is deployed. Be
|
||||
sure to verify all probing operations have sufficient Z clearance
|
||||
prior to setting this value to False. If there is insufficient
|
||||
clearance then a horizontal move may cause the pin to catch on an
|
||||
obstruction and result in damage to the printer.
|
||||
|
||||
Important! It is recommended to use `probe_with_touch_mode` configured
|
||||
to True when using `stow_on_each_sample` configured to False. Some
|
||||
"clone" devices may not detect a subsequent bed contact if
|
||||
`probe_with_touch_mode` is not set. On all devices, using the
|
||||
combination of these two settings simplifies the device signaling,
|
||||
which can improve overall stability.
|
||||
|
||||
Note, however, that some "clone" devices and the BL-Touch v2.0 (and
|
||||
earlier) may have reduced accuracy when `probe_with_touch_mode` is set
|
||||
to True. On these devices it is a good idea to test the probe accuracy
|
||||
before and after setting `probe_with_touch_mode` (use the
|
||||
`PROBE_ACCURACY` command to test).
|
||||
|
||||
Calibrating the BL-Touch offsets
|
||||
================================
|
||||
@@ -86,49 +214,41 @@ far above the nozzle as possible to avoid it touching printed parts.
|
||||
If an adjustment is made to the probe position, then rerun the probe
|
||||
calibration steps.
|
||||
|
||||
BL-Touch gone bad
|
||||
=================
|
||||
BL-Touch output mode
|
||||
====================
|
||||
|
||||
Once the BL-Touch is in inconsistent state, it starts blinking
|
||||
red. You can force it to leave that state by issuing:
|
||||
* A BL-Touch V3.0 supports setting a 5V or OPEN-DRAIN output mode,
|
||||
a BL-Touch V3.1 supports this too, but can also store this in its
|
||||
internal EEPROM. If your controller board needs the fixed 5V high
|
||||
logic level of the 5V mode you may set the 'set_output_mode'
|
||||
parameter in the [bltouch] section of the printer config file to
|
||||
"5V".
|
||||
|
||||
BLTOUCH_DEBUG COMMAND=reset
|
||||
*** Only use the 5V mode if your controller boards input line is
|
||||
5V tolerant. This is why the default configuration of these BL-Touch
|
||||
versions is OPEN-DRAIN mode. You could potentially damage your
|
||||
controller boards CPU ***
|
||||
|
||||
This may happen if its calibration is interrupted by the probe being
|
||||
blocked from being extracted.
|
||||
So therefore:
|
||||
If a controller board NEEDs 5V mode AND it is 5V tolerant on its
|
||||
input signal line AND if
|
||||
|
||||
However, the BL-Touch may also not be able to calibrate itself
|
||||
anymore. This happens if the screw on its top is in the wrong position
|
||||
or the magnetic core inside the probe pin has moved. If it has moved
|
||||
up so that it sticks to the screw, it may not be able to lower its pin
|
||||
anymore. With this behavior you need to open the screw and use a
|
||||
ball-point pen to push it gently back into place. Re-Insert the pin
|
||||
into the BL-Touch so that it falls into the extracted
|
||||
position. Carefully readjust the headless screw into place. You need
|
||||
to find the right position so it is able to lower and raise the pin
|
||||
and the red light turns on and of. Use the `reset`, `pin_up` and
|
||||
`pin_down` commands to achieve this.
|
||||
- you have a BL-Touch Smart V3.0, you need the use 'set_output_mode: 5V'
|
||||
parameter to ensure this setting at each startup, since the probe
|
||||
cannot remember the needed setting.
|
||||
- you have a BL-Touch Smart V3.1, you have the choice of using
|
||||
'set_output_mode: 5V' or storing the mode once by use of a
|
||||
'BLTOUCH_STORE MODE=5V' command manually and NOT using the parameter
|
||||
'set_output_mode:'.
|
||||
- you have some other probe: Some probes have a trace on the circuit board
|
||||
to cut or a jumper to set in order to (permanently) set the output mode.
|
||||
In that case, omit the 'set_output_mode' parameter completely.
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
* If you are sure the wiring of the BL-Touch is correct and every
|
||||
attempt to probe with the BL-Touch reports "BLTouch failed to verify
|
||||
sensor state" then it may be necessary to add
|
||||
`pin_up_touch_mode_reports_triggered: False` to the bltouch config
|
||||
section. The BL-Touch v3 and many clones require this setting.
|
||||
|
||||
* A BL-Touch v3 may not work correctly when its signal wire is
|
||||
connected to the Z end-stop pin on some printer boards. The symptoms
|
||||
of this problem are: the BL-Touch probe deploys, the printer
|
||||
descends, the probe contacts a surface, the BL-Touch raises the
|
||||
probe, the BL-Touch does not successfully notify the
|
||||
micro-controller, and the printer continues to descend. The Z
|
||||
end-stop pin on some printer boards have a capacitor to filter the
|
||||
signal which the BL-Touch v3 may not support. The simplest solution
|
||||
is to connect the BL-Touch v3 sensor wire to an available pin on the
|
||||
printer board that is not associated with an end-stop (and thus is
|
||||
unlikely to have a capacitor). An alternative solution is to
|
||||
physically alter the printer board to disable the given end-stop
|
||||
capacitor or to add a hardware "pull up resistor" to the BL-Touch v3
|
||||
sensor wire.
|
||||
If you have a V3.1, do not automate or repeat storing the output mode to
|
||||
avoid wearing out the EEPROM of the probe.The BLTouch EEPROM is good for
|
||||
about 100.000 updates. 100 stores per day would add up to about 3 years
|
||||
of operation prior to wearing it out. Thus, storing the output mode in a
|
||||
V3.1 is designed by the vendor to be a complicated operation (the factory
|
||||
default being a safe OPEN DRAIN mode) and is not suited to be repeatedly
|
||||
issued by any slicer, macro or anything else, it is preferably only to be
|
||||
used when first integrating the probe into a printers electronics.
|
||||
|
||||
382
docs/Bed_Mesh.md
Normal file
382
docs/Bed_Mesh.md
Normal file
@@ -0,0 +1,382 @@
|
||||
The Bed Mesh module may be used to compensate for bed surface irregularties to
|
||||
achieve a better first layer across the entire bed. It should be noted that
|
||||
software based correction will not achieve perfect results, it can only
|
||||
approximate the shape of the bed. Bed Mesh also cannot compensate for
|
||||
mechanical and electrical issues. If an axis is skewed or a probe is not
|
||||
accurate then the bed_mesh module will not receive accurate results from
|
||||
the probing process.
|
||||
|
||||
Prior to Mesh Calibration you will need to be sure that your Probe's
|
||||
Z-Offset is calibrated. If using an endstop for Z homing it will need
|
||||
to be calibrated as well. See [Probe_Calibrate](Probe_Calibrate.md)
|
||||
and Z_ENDSTOP_CALIBRATE in [Manual_Level](Manual_Level.md) for more
|
||||
information.
|
||||
|
||||
## Basic Configuration
|
||||
|
||||
### Rectangular Beds
|
||||
This example assumes a printer with a 250 mm x 220 mm rectangular
|
||||
bed and a probe with an x-offset of 24 mm and y-offset of 5 mm.
|
||||
|
||||
```
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
horizontal_move_z: 5
|
||||
mesh_min: 35,6
|
||||
mesh_max: 240, 198
|
||||
probe_count: 5,3
|
||||
```
|
||||
|
||||
- `speed: 120`\
|
||||
_Default Value: 50_\
|
||||
The speed in which the tool moves between points.
|
||||
|
||||
- `horizontal_move_z: 5`\
|
||||
_Default Value: 5_\
|
||||
The Z coordinate the probe rises to prior to traveling between points.
|
||||
|
||||
- `mesh_min: 35,6`\
|
||||
_Required_\
|
||||
The first probed coordinate, nearest to the origin. This coordinate
|
||||
is relative to the probe's location.
|
||||
|
||||
- `mesh_max: 240,198`\
|
||||
_Required_\
|
||||
The probed coordinate farthest farthest from the origin. This is not
|
||||
necessarily the last point probed, as the probing process occurs in a
|
||||
zig-zag fashion. As with `mesh_min`, this coordiante is relative to
|
||||
the probe's location.
|
||||
|
||||
- `probe_count: 5,3`\
|
||||
_Default Value: 3,3_\
|
||||
The number of points to probe on each axis, specified as x,y integer
|
||||
values. In this example 5 points will be probed along the X axis, with
|
||||
3 points along the Y axis, for a total of 15 probed points. Note that
|
||||
if you wanted a square grid, for example 3x3, this could be specified
|
||||
as a single integer value that is used for both axes, ie `probe_count: 3`.
|
||||
Note that a mesh requires a minimum probe_count of 3 along each axis.
|
||||
|
||||
The illustration below demonstrates how the `mesh_min`, `mesh_max`, and
|
||||
`probe_count` options are used to generate probe points. The arrows indicate
|
||||
the direction of the probing procedure, beginning at `mesh_min`. For reference,
|
||||
when the probe is at `mesh_min` the nozzle will be at (11, 1), and when the probe
|
||||
is at `mesh_max`, the nozzle will be at (206, 193).
|
||||
|
||||

|
||||
|
||||
### Round beds
|
||||
This example assumes a printer equipped with a round bed radius of 100mm.
|
||||
We will use the same probe offsets as the rectangular example, 24 mm on X
|
||||
and 5 mm on Y.
|
||||
|
||||
```
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
horizontal_move_z: 5
|
||||
mesh_radius: 75
|
||||
mesh_origin: 0,0
|
||||
round_probe_count: 5
|
||||
```
|
||||
|
||||
- `mesh_radius: 75`\
|
||||
_Required_\
|
||||
The radius of the probed mesh in mm, relative to the `mesh_origin`. Note
|
||||
that the probe's offsets limit the size of the mesh radius. In this example,
|
||||
a radius larger than 76 would move the tool beyond the range of the printer.
|
||||
|
||||
- `mesh_origin: 0,0`\
|
||||
_Default Value: 0,0_\
|
||||
The center point of the mesh. This coordinate is relative to the probe's
|
||||
location. While the default is 0,0, it may be useful to adjust the origin
|
||||
in an effort to probe a larger portion of the bed. See the illustration
|
||||
below.
|
||||
|
||||
- `round_probe_count: 5`\
|
||||
_Default Value: 5_\
|
||||
This is an integer value that defines the maximum number of probed points
|
||||
along the X and Y axes. By "maximum", we mean the number of points probed
|
||||
along the mesh origin. This value must be an odd number, as it is required
|
||||
that the center of the mesh is probed.
|
||||
|
||||
The illustration below shows how the probed points are generated. As you can see,
|
||||
setting the `mesh_origin` to (-10, 0) allows us to specifiy a larger mesh radius
|
||||
of 85.
|
||||
|
||||

|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
Below the more advanced configuration options are explained in detail. Each
|
||||
example will build upon the basic rectangular bed configuration shown above.
|
||||
Each of the advanced options apply to round beds in the same manner.
|
||||
|
||||
### Mesh Interpolation
|
||||
|
||||
While its possible to sample the probed matrix directly using simple bilinear
|
||||
interpolation to determine the Z-Values between probed points, it is often
|
||||
useful to interpolate extra points using more advanced interpolation algorithms
|
||||
to increase mesh density. These algorithms add curvature to the mesh,
|
||||
attempting to simulate the material properties of the bed. Bed Mesh offers
|
||||
lagrange and bicubic interpolation to accomplish this.
|
||||
|
||||
```
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
horizontal_move_z: 5
|
||||
mesh_min: 35,6
|
||||
mesh_max: 240, 198
|
||||
probe_count: 5,3
|
||||
mesh_pps: 2,3
|
||||
algorithm: bicubic
|
||||
bicubic_tension: 0.2
|
||||
```
|
||||
|
||||
- `mesh_pps: 2,3`\
|
||||
_Default Value: 2,2_\
|
||||
The `mesh_pps` option is shorthand for Mesh Points Per Segment. This
|
||||
option specifies how many points to interpolate for each segment along
|
||||
the x and y axes. Consider a 'segment' to be the space between each
|
||||
probed point. Like `probe_count`, `mesh_pps` is specified as an x,y
|
||||
integer pair, and also may be specified a single integer that is applied
|
||||
to both axes. In this example there are 4 segments along the X axis
|
||||
and 2 segments along the Y axis. This evaluates to 8 interpolated
|
||||
points along X, 6 interpolated points along Y, which results in a 13x8
|
||||
mesh. Note that if mesh_pps is set to 0 then mesh interpolation is
|
||||
disabled and the probed matrix will be sampled directly.
|
||||
|
||||
- `algorithm: lagrange`\
|
||||
_Default Value: lagrange_\
|
||||
The algorithm used to interpolate the mesh. May be `lagrange` or `bicubic`.
|
||||
Lagrange interpolation is capped at 6 probed points as oscillation tends to
|
||||
occur with a larger number of samples. Bicubic interpolation requires a
|
||||
minimum of 4 probed points along each axis, if less than 4 points are
|
||||
specified then lagrange sampling is forced. If `mesh_pps` is set to 0 then
|
||||
this value is ignored as no mesh interpolation is done.
|
||||
|
||||
- `bicubic_tension: 0.2`\
|
||||
_Default Value: 0.2_\
|
||||
If the `algorithm` option is set to bicubic it is possible to specify the
|
||||
tension value. The higher the tension the more slope is interpolated. Be
|
||||
careful when adjusting this, as higher values also create more overshoot,
|
||||
which will result in interpolated values higher or lower than your probed
|
||||
points.
|
||||
|
||||
The illustration below shows how the options above are used to generate an
|
||||
interpolated mesh.
|
||||
|
||||

|
||||
|
||||
### Move Splitting
|
||||
|
||||
Bed Mesh works by intercepting gcode move commands and applying a transform
|
||||
to their Z coordinate. Long moves must be and split into smaller moves
|
||||
to correctly follow the shape of the bed. The options below control the
|
||||
splitting behavior.
|
||||
|
||||
```
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
horizontal_move_z: 5
|
||||
mesh_min: 35,6
|
||||
mesh_max: 240, 198
|
||||
probe_count: 5,3
|
||||
move_check_distance: 5
|
||||
split_delta_z: .025
|
||||
```
|
||||
|
||||
- `move_check_distance: 5`\
|
||||
_Default Value: 5_\
|
||||
The minimum distance to check for the desired change in Z before performing
|
||||
a split. In this example, a move longer than 5mm will be traversed by the
|
||||
algorithm. Each 5mm a mesh Z lookup will occur, comparing it with the Z
|
||||
value of the previous move. If the delta meets the threshold set by
|
||||
`split_delta_z`, the move will be split and traversal will continue. This
|
||||
process repeats until the end of the move is reached, where a final
|
||||
adjustment will be applied. Moves shorter than the `move_check_distance`
|
||||
have the correct Z adjustment applied directly to the move without
|
||||
traversal or splitting.
|
||||
|
||||
- `split_delta_z: .025`\
|
||||
_Default Value: .025_\
|
||||
As mentioned above, this is the minimum deviation required to trigger a
|
||||
move split. In this example, any Z value with a deviation +/- .025mm
|
||||
will trigger a split.
|
||||
|
||||
Generally the default values for these options are sufficient, in fact the
|
||||
default value of 5mm for the `move_check_distance` may be overkill. However an
|
||||
advanced user may wish to experiment with these options in an effort to squeeze
|
||||
out the optimial first layer.
|
||||
|
||||
### Mesh Fade
|
||||
|
||||
When "fade" is enabled Z adjustment is phased out over a distance defined
|
||||
by the configuration. This is accomplished by applying small adjustments
|
||||
to the layer height, either increasing or decreasing depending on the shape
|
||||
of the bed. When fade has completed, Z adjustment is no longer applied,
|
||||
allowing the top of the print to be flat rather than mirror the shape of the
|
||||
bed. Fade also may have some undesirable traits, if you fade too quickly it
|
||||
can result in visible artifacts on the print. Also, if your bed is
|
||||
significantly warped, fade can shrink or stretch the Z height of the print.
|
||||
As such, fade is disabled by default.
|
||||
|
||||
```
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
horizontal_move_z: 5
|
||||
mesh_min: 35,6
|
||||
mesh_max: 240, 198
|
||||
probe_count: 5,3
|
||||
fade_start: 1
|
||||
fade_end: 10
|
||||
fade_target: 0
|
||||
```
|
||||
|
||||
- `fade_start: 1`\
|
||||
_Default Value: 1_\
|
||||
The Z height in which to start phasing out adjustment. It is a good idea
|
||||
to get a few layers down before starting the fade process.
|
||||
|
||||
- `fade_end: 10`\
|
||||
_Default Value: 0_\
|
||||
The Z height in which fade should complete. If this value is lower than
|
||||
`fade_start` then fade is disabled. This value may be adjusted depending
|
||||
on how warped the print surface is. A significantly warped surface should
|
||||
fade out over a longer distance. A near flat surface may be able to reduce
|
||||
this value to phase out more quickly. 10mm is a sane value to begin with if
|
||||
using the default value of 1 for `fade_start`.
|
||||
|
||||
- `fade_target: 0`\
|
||||
_Default Value: The average Z value of the mesh_\
|
||||
The `fade_target` can be thought of as an additional Z offset applied to the
|
||||
entire bed after fade completes. Generally speaking we would like this value
|
||||
to be 0, however there are circumstances where it should not be. For
|
||||
example, lets assume your homing position on the bed is an outlier, its
|
||||
.2 mm lower than the average probed height of the bed. If the `fade_target`
|
||||
is 0, fade will shrink the print by an average of .2 mm across the bed. By
|
||||
setting the `fade_target` to .2, the homed area will expand by .2 mm, however
|
||||
the rest of the bed will have an accurately sized. Generally its a good idea
|
||||
to leave `fade_target` out of the configuration so the average height of the
|
||||
mesh is used, however it may be desirable to manually adjust the fade target
|
||||
if one wants to print on a specific portion of the bed.
|
||||
|
||||
### The Relative Reference Index
|
||||
|
||||
Most probes are suceptible to drift, ie: inaccuracies in probing introduced by
|
||||
heat or interference. This can make calculating the probe's z-offset
|
||||
challenging, particuarly at different bed temperatures. As such, some printers
|
||||
use an endstop for homing the Z axis, and a probe for calibrating the mesh.
|
||||
These printers can benefit from configuring the relative reference index.
|
||||
|
||||
```
|
||||
[bed_mesh]
|
||||
speed: 120
|
||||
horizontal_move_z: 5
|
||||
mesh_min: 35,6
|
||||
mesh_max: 240, 198
|
||||
probe_count: 5,3
|
||||
relative_reference_index: 7
|
||||
```
|
||||
|
||||
- `relative_reference_index: 7`\
|
||||
_Default Value: None (disabled)_\
|
||||
When the probed points are generated they are each assigned an index. You
|
||||
can look up this index in klippy.log or by using BED_MESH_OUTPUT (see the
|
||||
section on Bed Mesh GCodes below for more information). If you assign an
|
||||
index to the `relative_reference_index` option, the value probed at this
|
||||
coordinate will replace the probe's z_offset. This effectively makes
|
||||
this coordinate the "zero" reference for the mesh.
|
||||
|
||||
When using the relative reference index, you should choose the index nearest
|
||||
to the spot on the bed where Z endstop calibration was done. Note that
|
||||
when looking up the index using the log or BED_MESH_OUTPUT, you should use
|
||||
the coordinates listed under the "Probe" header to find the correct index.
|
||||
|
||||
## Bed Mesh Gcodes
|
||||
|
||||
### Calibration
|
||||
|
||||
`BED_MESH_CALIBRATE METHOD=[manual | automatic] [<probe_parameter>=<value>]
|
||||
[<mesh_parameter>=<value>]`\
|
||||
_Default Method: automatic if a probe is detected, otherwise manual_
|
||||
|
||||
Initiates the probing procedure for Bed Mesh Calibration. If `METHOD=manual`
|
||||
is selected then manual probing will occur. When switching between automatic
|
||||
and manual probing the generated mesh points will automatically be adjusted.
|
||||
|
||||
It is possible to specify mesh parameters to modify the probed area. The
|
||||
following parameters are available:
|
||||
- Rectangular beds (cartesian):
|
||||
- `MESH_MIN`
|
||||
- `MESH_MAX`
|
||||
- `PROBE_COUNT`
|
||||
- Round beds (delta):
|
||||
- `MESH_RADIUS`
|
||||
- `MESH_ORIGIN`
|
||||
- `ROUND_PROBE_COUNT`
|
||||
- All beds:
|
||||
- `RELATIVE_REFERNCE_INDEX`
|
||||
- `ALGORITHM`
|
||||
See the configuration documentation above for details on how each parameter
|
||||
applies to the mesh.
|
||||
|
||||
### Profiles
|
||||
|
||||
`BED_MESH_PROFILE SAVE=name LOAD=name REMOVE=name`
|
||||
|
||||
After a BED_MESH_CALIBRATE has been performed, it is possible to save the
|
||||
current mesh state into a named profile. This makes it possible to load
|
||||
a mesh without re-probing the bed. After a profile has been saved using
|
||||
`BED_MESH_PROFILE SAVE=name` the `SAVE_CONFIG` gcode may be executed
|
||||
to write the profile to printer.cfg.
|
||||
|
||||
Profiles can be loaded by executing `BED_MESH_PROFILE LOAD=name`.
|
||||
|
||||
It should be noted that each time a BED_MESH_CALIBRATE occurs, the current
|
||||
state is automatically saved to the _default_ profile. If this profile
|
||||
exists it is automatically loaded when Klipper starts. If this behavior
|
||||
is not desirable the _default_ profile can be removed as follows:
|
||||
|
||||
`BED_MESH_PROFILE REMOVE=default`
|
||||
|
||||
Any other saved profile can be removed in the same fashion, replacing
|
||||
_default_ with the named profile you wish to remove.
|
||||
|
||||
### Output
|
||||
|
||||
`BED_MESH_OUTPUT PGP=[0 | 1]`
|
||||
|
||||
Outputs the current mesh state to the terminal. Note that the mesh itself
|
||||
is output
|
||||
|
||||
The PGP parameter is shorthand for "Print Generated Points". If `PGP=1` is
|
||||
set, the generated probed points will be output to the terminal:
|
||||
|
||||
```
|
||||
// bed_mesh: generated points
|
||||
// Index | Tool Adjusted | Probe
|
||||
// 0 | (11.0, 1.0) | (35.0, 6.0)
|
||||
// 1 | (62.2, 1.0) | (86.2, 6.0)
|
||||
// 2 | (113.5, 1.0) | (137.5, 6.0)
|
||||
// 3 | (164.8, 1.0) | (188.8, 6.0)
|
||||
// 4 | (216.0, 1.0) | (240.0, 6.0)
|
||||
// 5 | (216.0, 97.0) | (240.0, 102.0)
|
||||
// 6 | (164.8, 97.0) | (188.8, 102.0)
|
||||
// 7 | (113.5, 97.0) | (137.5, 102.0)
|
||||
// 8 | (62.2, 97.0) | (86.2, 102.0)
|
||||
// 9 | (11.0, 97.0) | (35.0, 102.0)
|
||||
// 10 | (11.0, 193.0) | (35.0, 198.0)
|
||||
// 11 | (62.2, 193.0) | (86.2, 198.0)
|
||||
// 12 | (113.5, 193.0) | (137.5, 198.0)
|
||||
// 13 | (164.8, 193.0) | (188.8, 198.0)
|
||||
// 14 | (216.0, 193.0) | (240.0, 198.0)
|
||||
```
|
||||
|
||||
The "Tool Adjusted" points refer to the nozzle location for each point, and
|
||||
the "Probe" points refer to the probe location. Note that when manually
|
||||
probing the "Probe" points will refer to both the tool and nozzle locations.
|
||||
|
||||
### Clear Mesh State
|
||||
|
||||
`BED_MESH_CLEAR`
|
||||
|
||||
This gcode may be used to clear the internal mesh state.
|
||||
@@ -203,20 +203,20 @@ The test was last run on commit `b161a69e` with gcc version `pru-gcc
|
||||
The following configuration sequence is used on the STM32F042:
|
||||
```
|
||||
allocate_oids count=3
|
||||
config_stepper oid=0 step_pin=PA0 dir_pin=PA1 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=1 step_pin=PA2 dir_pin=PA3 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=2 step_pin=PA6 dir_pin=PA7 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=0 step_pin=PA1 dir_pin=PA2 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=1 step_pin=PA3 dir_pin=PA2 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=2 step_pin=PB8 dir_pin=PA2 min_stop_interval=0 invert_step=0
|
||||
finalize_config crc=0
|
||||
```
|
||||
|
||||
The test was last run on commit `c105adc8` with gcc version
|
||||
`arm-none-eabi-gcc (GNU Tools 7-2018-q3-update) 7.3.1`.
|
||||
The test was last run on commit `0b0c47c5` with gcc version
|
||||
`arm-none-eabi-gcc (Fedora 9.2.0-1.fc30) 9.2.0`.
|
||||
|
||||
| stm32f042 | ticks |
|
||||
| ---------------- | ----- |
|
||||
| 1 stepper | 308 |
|
||||
| 2 stepper | 638 |
|
||||
| 3 stepper | 1021 |
|
||||
| 1 stepper | 247 |
|
||||
| 2 stepper | 328 |
|
||||
| 3 stepper | 558 |
|
||||
|
||||
### STM32F103 step rate benchmark ###
|
||||
|
||||
@@ -333,26 +333,53 @@ micro-controller.
|
||||
|
||||
The following configuration sequence is used on the SAMD51:
|
||||
```
|
||||
allocate_oids count=4
|
||||
allocate_oids count=5
|
||||
config_stepper oid=0 step_pin=PA22 dir_pin=PA20 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=1 step_pin=PA22 dir_pin=PA21 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=2 step_pin=PA22 dir_pin=PA19 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=3 step_pin=PA22 dir_pin=PA18 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=4 step_pin=PA23 dir_pin=PA17 min_stop_interval=0 invert_step=0
|
||||
finalize_config crc=0
|
||||
```
|
||||
|
||||
The test was last run on commit `8d4a5c16` with gcc version
|
||||
`arm-none-eabi-gcc (Fedora 7.4.0-1.fc30) 7.4.0` on a SAMD51G19A
|
||||
The test was last run on commit `524ebbc7` with gcc version
|
||||
`arm-none-eabi-gcc (Fedora 9.2.0-1.fc30) 9.2.0` on a SAMD51J19A
|
||||
micro-controller.
|
||||
|
||||
| samd51 | ticks |
|
||||
| -------------------- | ----- |
|
||||
| 1 stepper | 516 |
|
||||
| 2 stepper | 520 |
|
||||
| 3 stepper | 519 |
|
||||
| 4 stepper | 655 |
|
||||
| 1 stepper (no delay) | 41 |
|
||||
| 3 stepper (no delay) | 197 |
|
||||
| 3 stepper | 520 |
|
||||
| 4 stepper | 631 |
|
||||
| 1 stepper (200Mhz) | 839 |
|
||||
| 2 stepper (200Mhz) | 838 |
|
||||
| 3 stepper (200Mhz) | 838 |
|
||||
| 4 stepper (200Mhz) | 838 |
|
||||
| 5 stepper (200Mhz) | 891 |
|
||||
| 1 stepper (no delay) | 42 |
|
||||
| 3 stepper (no delay) | 194 |
|
||||
|
||||
### Linux MCU step rate benchmark ###
|
||||
|
||||
The following configuration sequence is used on a Raspberry Pi:
|
||||
```
|
||||
allocate_oids count=3
|
||||
config_stepper oid=0 step_pin=gpio2 dir_pin=gpio3 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=1 step_pin=gpio4 dir_pin=gpio5 min_stop_interval=0 invert_step=0
|
||||
config_stepper oid=2 step_pin=gpio6 dir_pin=gpio7 min_stop_interval=0 invert_step=0
|
||||
finalize_config crc=0
|
||||
```
|
||||
|
||||
The test was last run on commit `06437c58` with gcc version `gcc
|
||||
(Raspbian 6.3.0-18+rpi1+deb9u1) 6.3.0 20170516` on a Raspberry Pi 3
|
||||
(revision a22082).
|
||||
|
||||
| Linux (RPi3) | ticks |
|
||||
| -------------------- | ----- |
|
||||
| 1 stepper | 340 |
|
||||
| 2 stepper | 356 |
|
||||
| 3 stepper | 450 |
|
||||
|
||||
## Command dispatch benchmark ##
|
||||
|
||||
|
||||
@@ -193,9 +193,8 @@ interface. This is commonly done with a dedicated SWD hardware dongle.
|
||||
Alternatively, one can use a
|
||||
[Raspberry Pi with OpenOCD](#running-openocd-on-the-raspberry-pi).
|
||||
|
||||
To flash a bootloader with OpenOCD use a chip config similar to:
|
||||
To flash a bootloader with OpenOCD use the following chip config:
|
||||
```
|
||||
set CHIPNAME at91samd21g18
|
||||
source [find target/at91samdXX.cfg]
|
||||
```
|
||||
Obtain a bootloader - for example:
|
||||
@@ -231,9 +230,8 @@ SAMD51 micro-controllers (Adafruit Metro-M4 and similar)
|
||||
Like the SAMD21, the SAMD51 bootloader is flashed via the ARM Serial
|
||||
Wire Debug (SWD) interface. To flash a bootloader with
|
||||
[OpenOCD on a Raspberry Pi](#running-openocd-on-the-raspberry-pi) use
|
||||
a chip config similar to:
|
||||
the following chip config:
|
||||
```
|
||||
set CHIPNAME at91samd51g19
|
||||
source [find target/atsame5x.cfg]
|
||||
```
|
||||
Obtain a bootloader - several bootloaders are available from
|
||||
@@ -301,6 +299,126 @@ bootloader is still active (the bootloader will flash a board led
|
||||
while it is running). Alternatively, set the "boot 0" pin to low and
|
||||
"boot 1" pin to high to stay in the bootloader after a reset.
|
||||
|
||||
## STM32F103 with HID bootloader ##
|
||||
The [HID bootloader](https://github.com/Serasidis/STM32_HID_Bootloader) is a
|
||||
compact, driverless bootloader capable of flashing over USB. Also available
|
||||
is a [fork with builds specific to the SKR Mini E3 1.2](
|
||||
https://github.com/Arksine/STM32_HID_Bootloader/releases/tag/v0.5-beta).
|
||||
|
||||
For generic STM32F103 boards such as the blue pill it is possible to flash
|
||||
the bootloader via 3.3v serial using stm32flash as noted in the stm32duino
|
||||
section above, substituting the file name for the desired hid bootloader binary
|
||||
(ie: hid_generic_pc13.bin for the blue pill).
|
||||
|
||||
It is not possible to use stm32flash for the SKR Mini E3 as the boot0 pin is
|
||||
tied directly to ground and not broken out via header pins. It is recommended
|
||||
to use a STLink V2 with STM32Cubeprogrammer to flash the bootloader. If you
|
||||
don't have access to a STLink it is also possible to use a [Raspberry Pi and
|
||||
OpenOCD](#running-openocd-on-the-raspberry-pi) with the following chip config:
|
||||
```
|
||||
source [find target/stm32f1x.cfg]
|
||||
```
|
||||
If you wish you can make a backup of the current flash with the following
|
||||
command. Note that it may take some time to complete:
|
||||
```
|
||||
flash read_bank 0 btt_skr_mini_e3_backup.bin
|
||||
```
|
||||
finally, you can flash with commands similar to:
|
||||
```
|
||||
stm32f1x mass_erase 0
|
||||
program hid_btt_skr_mini_e3.bin verify 0x08000000
|
||||
```
|
||||
NOTES:
|
||||
- The example above erases the chip then programs the bootloader. Regardless
|
||||
of the method chosen to flash it is recommended to erase the chip prior to
|
||||
flashing.
|
||||
- Prior flashing the SKR Mini E3 with this bootloader you should be aware
|
||||
that you will no longer be able to update firmware via the sdcard.
|
||||
- You may need to hold down the reset button on the board while launching
|
||||
OpenOCD. It should display something like:
|
||||
```
|
||||
Open On-Chip Debugger 0.10.0+dev-01204-gc60252ac-dirty (2020-04-27-16:00)
|
||||
Licensed under GNU GPL v2
|
||||
For bug reports, read
|
||||
http://openocd.org/doc/doxygen/bugs.html
|
||||
DEPRECATED! use 'adapter speed' not 'adapter_khz'
|
||||
Info : BCM2835 GPIO JTAG/SWD bitbang driver
|
||||
Info : JTAG and SWD modes enabled
|
||||
Info : clock speed 40 kHz
|
||||
Info : SWD DPIDR 0x1ba01477
|
||||
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints
|
||||
Info : stm32f1x.cpu: external reset detected
|
||||
Info : starting gdb server for stm32f1x.cpu on 3333
|
||||
Info : Listening on port 3333 for gdb connections
|
||||
```
|
||||
After which you can release the reset button.
|
||||
|
||||
|
||||
This bootloader requires 2KiB of flash space (the application
|
||||
must be compiled with a start address of 2KiB).
|
||||
|
||||
The hid-flash program is used to upload a binary to the bootloader. You
|
||||
can install this software with the following commands:
|
||||
```
|
||||
sudo apt install libusb-1.0
|
||||
cd ~/klipper/lib/hidflash
|
||||
make
|
||||
```
|
||||
|
||||
If the bootloader is running you can flash with something like:
|
||||
```
|
||||
~/klipper/lib/hidflash/hid-flash ~/klipper/out/klipper.bin
|
||||
```
|
||||
alternatively, you can use `make flash` to flash klipper directly:
|
||||
```
|
||||
make flash FLASH_DEVICE=1209:BEBA
|
||||
```
|
||||
OR if klipper has been previously flashed:
|
||||
```
|
||||
make flash FLASH_DEVICE=/dev/ttyACM0
|
||||
```
|
||||
|
||||
It may be necessary to manually enter the bootloader, this can be done by
|
||||
setting "boot 0" low and "boot 1" high. On the SKR Mini E3 "Boot 1" is
|
||||
not available, so it may be done by setting pin PA2 low if you flashed
|
||||
"hid_btt_skr_mini_e3.bin". This pin is labeld "TX0" on the TFT header in
|
||||
the SKR Mini E3's "PIN" document. There is a ground pin next to PA2
|
||||
which you can use to pull PA2 low.
|
||||
|
||||
STM32F4 micro-controllers (SKR Pro 1.1)
|
||||
===============================================
|
||||
STM32F4 microcontrollers come equipped with a built-in system bootloader
|
||||
capable of flashing over USB (via DFU), 3.3v Serial, and various other
|
||||
methods (see STM Document AN2606 for more information). Some
|
||||
STM32F4 boards, such as the SKR Pro 1.1, are not able to enter the DFU
|
||||
bootloader. The HID bootloader is available for STM32F405/407
|
||||
based boards should the user prefer flashing over USB over using the sdcard.
|
||||
Note that you may need to configure and build a version specific to your
|
||||
board, a [build for the SKR Pro 1.1 is available here](
|
||||
https://github.com/Arksine/STM32_HID_Bootloader/releases/tag/v0.5-beta).
|
||||
|
||||
Unless your board is DFU capable the most accessable flashing method
|
||||
is likely via 3.3v serial, which follows the same procedure as [flashing the
|
||||
STM32F103 using stm32flash](#stm32f103-micro-controllers-blue-pill-devices).
|
||||
For example:
|
||||
```
|
||||
wget https://github.com/Arksine/STM32_HID_Bootloader/releases/download/v0.5-beta/hid_bootloader_SKR_PRO.bin
|
||||
|
||||
stm32flash -w hid_bootloader_SKR_PRO.bin -v -g 0 /dev/ttyAMA0
|
||||
```
|
||||
|
||||
This bootloader requires 16Kib of flash space on the STM32F4 (the application
|
||||
must be compiled with a start address of 16KiB).
|
||||
|
||||
As with the STM32F1, the STM32F4 uses the hid-flash tool to upload binaries to
|
||||
the MCU. See the instructions above for details on how to build and use
|
||||
hid-flash.
|
||||
|
||||
It may be necessary to manually enter the bootloader, this can be done by
|
||||
setting "boot 0" low, "boot 1" high and plugging in the device. After
|
||||
programming is complete unplug the device and set "boot 1" back to low
|
||||
so the application will be loaded.
|
||||
|
||||
LPC176x micro-controllers (Smoothieboards)
|
||||
==========================================
|
||||
|
||||
@@ -361,15 +479,18 @@ bcm2835gpio_swd_nums 25 24
|
||||
bcm2835gpio_srst_num 18
|
||||
transport select swd
|
||||
|
||||
# Set the chip (at91samd51j19 in this example)
|
||||
set CHIPNAME at91samd51j19
|
||||
# Use hardware reset wire for chip resets
|
||||
reset_config srst_only
|
||||
adapter_nsrst_delay 100
|
||||
adapter_nsrst_assert_width 100
|
||||
|
||||
# Specify the chip type
|
||||
source [find target/atsame5x.cfg]
|
||||
|
||||
# Set the adapter speed
|
||||
adapter_khz 40
|
||||
adapter_nsrst_delay 100
|
||||
adapter_nsrst_assert_width 100
|
||||
|
||||
# Connect to chip
|
||||
init
|
||||
targets
|
||||
reset halt
|
||||
|
||||
@@ -5,8 +5,8 @@ Directory Layout
|
||||
================
|
||||
|
||||
The **src/** directory contains the C source for the micro-controller
|
||||
code. The **src/avr/**, **src/sam3/**, **src/samd21/**,
|
||||
**src/lpc176x/**, **src/stm32f1/**, **src/pru/**, and **src/linux/**
|
||||
code. The **src/atsam/**, **src/atsamd/**, **src/avr/**,
|
||||
**src/linux/**, **src/lpc176x/**, **src/pru/**, and **src/stm32/**
|
||||
directories contain architecture specific micro-controller code. The
|
||||
**src/simulator/** contains code stubs that allow the micro-controller
|
||||
to be test compiled on other architectures. The **src/generic/**
|
||||
@@ -50,10 +50,11 @@ DECL_TASK() macro.
|
||||
|
||||
One of the main task functions is command_dispatch() located in
|
||||
**src/command.c**. This function is called from the board specific
|
||||
input/output code (eg, **src/avr/serial.c**) and it runs the command
|
||||
functions associated with the commands found in the input
|
||||
stream. Command functions are declared using the DECL_COMMAND() macro
|
||||
(see the [protocol](Protocol.md) document for more information).
|
||||
input/output code (eg, **src/avr/serial.c**,
|
||||
**src/generic/serial_irq.c**) and it runs the command functions
|
||||
associated with the commands found in the input stream. Command
|
||||
functions are declared using the DECL_COMMAND() macro (see the
|
||||
[protocol](Protocol.md) document for more information).
|
||||
|
||||
Task, init, and command functions always run with interrupts enabled
|
||||
(however, they can temporarily disable interrupts if needed). These
|
||||
@@ -67,10 +68,10 @@ function to be called at the requested clock time. Timer interrupts
|
||||
are initially handled in an architecture specific interrupt handler
|
||||
(eg, **src/avr/timer.c**) which calls sched_timer_dispatch() located
|
||||
in **src/sched.c**. The timer interrupt leads to execution of schedule
|
||||
timer functions. Timer functions always run with interrupts
|
||||
disabled. The timer functions should always complete within a few
|
||||
micro-seconds. At completion of the timer event, the function may
|
||||
choose to reschedule itself.
|
||||
timer functions. Timer functions always run with interrupts disabled.
|
||||
The timer functions should always complete within a few micro-seconds.
|
||||
At completion of the timer event, the function may choose to
|
||||
reschedule itself.
|
||||
|
||||
In the event an error is detected the code can invoke shutdown() (a
|
||||
macro which calls sched_shutdown() located in **src/sched.c**).
|
||||
@@ -124,19 +125,26 @@ of a typical move command. The [kinematics](Kinematics.md) document
|
||||
provides further information on the mechanics of moves.
|
||||
|
||||
* Processing for a move command starts in gcode.py. The goal of
|
||||
gcode.py is to translate G-code into internal calls. Changes in
|
||||
origin (eg, G92), changes in relative vs absolute positions (eg,
|
||||
G90), and unit changes (eg, F6000=100mm/s) are handled here. The
|
||||
code path for a move is: `process_data() -> process_commands() ->
|
||||
cmd_G1()`. Ultimately the ToolHead class is invoked to execute the
|
||||
actual request: `cmd_G1() -> ToolHead.move()`
|
||||
gcode.py is to translate G-code into internal calls. A G1 command
|
||||
will invoke cmd_G1() in klippy/extras/gcode_move.py. The
|
||||
gcode_move.py code handles changes in origin (eg, G92), changes in
|
||||
relative vs absolute positions (eg, G90), and unit changes (eg,
|
||||
F6000=100mm/s). The code path for a move is: `_process_data() ->
|
||||
_process_commands() -> cmd_G1()`. Ultimately the ToolHead class is
|
||||
invoked to execute the actual request: `cmd_G1() -> ToolHead.move()`
|
||||
|
||||
* The ToolHead class (in toolhead.py) handles "look-ahead" and tracks
|
||||
the timing of printing actions. The codepath for a move is:
|
||||
the timing of printing actions. The main codepath for a move is:
|
||||
`ToolHead.move() -> MoveQueue.add_move() -> MoveQueue.flush() ->
|
||||
Move.set_junction() -> Move.move()`.
|
||||
Move.set_junction() -> ToolHead._process_moves()`.
|
||||
* ToolHead.move() creates a Move() object with the parameters of the
|
||||
move (in cartesian space and in units of seconds and millimeters).
|
||||
* The kinematics class is given the opportunity to audit each move
|
||||
(`ToolHead.move() -> kin.check_move()`). The kinematics classes are
|
||||
located in the klippy/kinematics/ directory. The check_move() code
|
||||
may raise an error if the move is not valid. If check_move()
|
||||
completes successfully then the underlying kinematics must be able
|
||||
to handle the move.
|
||||
* MoveQueue.add_move() places the move object on the "look-ahead"
|
||||
queue.
|
||||
* MoveQueue.flush() determines the start and end velocities of each
|
||||
@@ -147,48 +155,42 @@ provides further information on the mechanics of moves.
|
||||
phase, followed by a constant deceleration phase. Every move
|
||||
contains these three phases in this order, but some phases may be of
|
||||
zero duration.
|
||||
* When Move.move() is called, everything about the move is known -
|
||||
its start location, its end location, its acceleration, its
|
||||
start/cruising/end velocity, and distance traveled during
|
||||
acceleration/cruising/deceleration. All the information is stored in
|
||||
the Move() class and is in cartesian space in units of millimeters
|
||||
and seconds.
|
||||
|
||||
The move is then handed off to the kinematics classes: `Move.move()
|
||||
-> kin.move()`
|
||||
|
||||
* The goal of the kinematics classes is to translate the movement in
|
||||
cartesian space to movement on each stepper. The kinematics classes
|
||||
are located in the klippy/kinematics/ directory. The kinematic class
|
||||
is given a chance to audit the move (`ToolHead.move() ->
|
||||
kin.check_move()`) before it goes on the look-ahead queue, but once
|
||||
the move arrives in *kin*.move() the kinematic class is required to
|
||||
handle the move as specified. Note that the extruder is handled in
|
||||
its own kinematic class. Since the Move() class specifies the exact
|
||||
movement time and since step pulses are sent to the micro-controller
|
||||
with specific timing, stepper movements produced by the extruder
|
||||
class will be in sync with head movement even though the code is
|
||||
kept separate.
|
||||
* When ToolHead._process_moves() is called, everything about the
|
||||
move is known - its start location, its end location, its
|
||||
acceleration, its start/cruising/end velocity, and distance traveled
|
||||
during acceleration/cruising/deceleration. All the information is
|
||||
stored in the Move() class and is in cartesian space in units of
|
||||
millimeters and seconds.
|
||||
|
||||
* Klipper uses an
|
||||
[iterative solver](https://en.wikipedia.org/wiki/Root-finding_algorithm)
|
||||
to generate the step times for each stepper. For efficiency reasons,
|
||||
the stepper pulse times are generated in C code. The code flow is:
|
||||
`kin.move() -> MCU_Stepper.step_itersolve() ->
|
||||
itersolve_gen_steps()` (in klippy/chelper/itersolve.c). The goal of
|
||||
the iterative solver is to find step times given a function that
|
||||
calculates a stepper position from a time. This is done by
|
||||
repeatedly "guessing" various times until the stepper position
|
||||
formula returns the desired position of the next step on the
|
||||
stepper. The feedback produced from each guess is used to improve
|
||||
future guesses so that the process rapidly converges to the desired
|
||||
time. The kinematic stepper position formulas are located in the
|
||||
klippy/chelper/ directory (eg, kin_cart.c, kin_corexy.c,
|
||||
kin_delta.c, kin_extruder.c).
|
||||
the stepper pulse times are generated in C code. The moves are first
|
||||
placed on a "trapezoid motion queue": `ToolHead._process_moves() ->
|
||||
trapq_append()` (in klippy/chelper/trapq.c). The step times are then
|
||||
generated: `ToolHead._process_moves() ->
|
||||
ToolHead._update_move_time() -> MCU_Stepper.generate_steps() ->
|
||||
itersolve_generate_steps() -> itersolve_gen_steps_range()` (in
|
||||
klippy/chelper/itersolve.c). The goal of the iterative solver is to
|
||||
find step times given a function that calculates a stepper position
|
||||
from a time. This is done by repeatedly "guessing" various times
|
||||
until the stepper position formula returns the desired position of
|
||||
the next step on the stepper. The feedback produced from each guess
|
||||
is used to improve future guesses so that the process rapidly
|
||||
converges to the desired time. The kinematic stepper position
|
||||
formulas are located in the klippy/chelper/ directory (eg,
|
||||
kin_cart.c, kin_corexy.c, kin_delta.c, kin_extruder.c).
|
||||
|
||||
* Note that the extruder is handled in its own kinematic class:
|
||||
`ToolHead._process_moves() -> PrinterExtruder.move()`. Since
|
||||
the Move() class specifies the exact movement time and since step
|
||||
pulses are sent to the micro-controller with specific timing,
|
||||
stepper movements produced by the extruder class will be in sync
|
||||
with head movement even though the code is kept separate.
|
||||
|
||||
* After the iterative solver calculates the step times they are added
|
||||
to an array: `itersolve_gen_steps() -> queue_append()` (in
|
||||
klippy/chelper/stepcompress.c). The array (struct
|
||||
to an array: `itersolve_gen_steps_range() -> stepcompress_append()`
|
||||
(in klippy/chelper/stepcompress.c). The array (struct
|
||||
stepcompress.queue) stores the corresponding micro-controller clock
|
||||
counter times for every step. Here the "micro-controller clock
|
||||
counter" value directly corresponds to the micro-controller's
|
||||
@@ -219,11 +221,11 @@ provides further information on the mechanics of moves.
|
||||
runs the following, 'count' times: `do_step(); next_wake_time =
|
||||
last_wake_time + interval; interval += add;`
|
||||
|
||||
The above may seem like a lot of complexity to execute a
|
||||
movement. However, the only really interesting parts are in the
|
||||
ToolHead and kinematic classes. It's this part of the code which
|
||||
specifies the movements and their timings. The remaining parts of the
|
||||
processing is mostly just communication and plumbing.
|
||||
The above may seem like a lot of complexity to execute a movement.
|
||||
However, the only really interesting parts are in the ToolHead and
|
||||
kinematic classes. It's this part of the code which specifies the
|
||||
movements and their timings. The remaining parts of the processing is
|
||||
mostly just communication and plumbing.
|
||||
|
||||
Adding a host module
|
||||
====================
|
||||
@@ -329,16 +331,17 @@ Useful steps:
|
||||
seconds) to a cartesian coordinate (in millimeters), and then
|
||||
calculate the desired stepper position (in millimeters) from that
|
||||
cartesian coordinate.
|
||||
4. Implement the `calc_position()` method in the new kinematics class.
|
||||
This method calculates the position of the toolhead in cartesian
|
||||
coordinates from the current position of each stepper. It does not
|
||||
need to be efficient as it is typically only called during homing
|
||||
and probing operations.
|
||||
5. Other methods. Implement the `move()`, `check_move()`, `home()`,
|
||||
`motor_off()`, `set_position()`, and `get_steppers()` methods.
|
||||
These functions are typically used to provide kinematic specific
|
||||
checks. However, at the start of development one can use
|
||||
boiler-plate code here.
|
||||
4. Implement the `calc_tag_position()` method in the new kinematics
|
||||
class. This method calculates the position of the toolhead in
|
||||
cartesian coordinates from the position of each stepper (as
|
||||
returned by `stepper.get_tag_position()`). It does not need to be
|
||||
efficient as it is typically only called during homing and probing
|
||||
operations.
|
||||
5. Other methods. Implement the `check_move()`, `get_status()`,
|
||||
`get_steppers()`, `home()`, and `set_position()` methods. These
|
||||
functions are typically used to provide kinematic specific checks.
|
||||
However, at the start of development one can use boiler-plate code
|
||||
here.
|
||||
6. Implement test cases. Create a g-code file with a series of moves
|
||||
that can test important cases for the given kinematics. Follow the
|
||||
[debugging documentation](Debugging.md) to convert this g-code file
|
||||
@@ -398,6 +401,93 @@ Useful steps:
|
||||
the micro-controller with the main klippy.py program.
|
||||
9. Consider adding build test cases in the test/ directory.
|
||||
|
||||
Coordinate Systems
|
||||
==================
|
||||
|
||||
Internally, Klipper primarily tracks the position of the toolhead in
|
||||
cartesian coordinates that are relative to the coordinate system
|
||||
specified in the config file. That is, most of the Klipper code will
|
||||
never experience a change in coordinate systems. If the user makes a
|
||||
request to change the origin (eg, a `G92` command) then that effect is
|
||||
obtained by translating future commands to the primary coordinate
|
||||
system.
|
||||
|
||||
However, in some cases it is useful to obtain the toolhead position in
|
||||
some other coordinate system and Klipper has several tools to
|
||||
facilitate that. This can be seen by running the GET_POSITION
|
||||
command. For example:
|
||||
|
||||
```
|
||||
Send: GET_POSITION
|
||||
Recv: // mcu: stepper_a:-2060 stepper_b:-1169 stepper_c:-1613
|
||||
Recv: // stepper: stepper_a:457.254159 stepper_b:466.085669 stepper_c:465.382132
|
||||
Recv: // kinematic: X:8.339144 Y:-3.131558 Z:233.347121
|
||||
Recv: // toolhead: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000
|
||||
Recv: // gcode: X:8.338078 Y:-3.123175 Z:233.347878 E:0.000000
|
||||
Recv: // gcode base: X:0.000000 Y:0.000000 Z:0.000000 E:0.000000
|
||||
Recv: // gcode homing: X:0.000000 Y:0.000000 Z:0.000000
|
||||
```
|
||||
|
||||
The "mcu" position (`stepper.get_mcu_position()` in the code) is the
|
||||
total number of steps the micro-controller has issued in a positive
|
||||
direction minus the number of steps issued in a negative direction
|
||||
since the micro-controller was last reset. The value reported is only
|
||||
valid after the stepper has been homed. If the robot is in motion when
|
||||
the query is issued then the reported value includes moves buffered on
|
||||
the micro-controller, but does not include moves on the look-ahead
|
||||
queue.
|
||||
|
||||
The "stepper" position (`stepper.get_commanded_position()`) is the
|
||||
position of the given stepper as tracked by the kinematics code. This
|
||||
generally corresponds to the position (in mm) of the carriage along
|
||||
its rail, relative to the position_endstop specified in the config
|
||||
file. (Some kinematics track stepper positions in radians instead of
|
||||
millimeters.) If the robot is in motion when the query is issued then
|
||||
the reported value includes moves buffered on the micro-controller,
|
||||
but does not include moves on the look-ahead queue. One may use the
|
||||
`toolhead.flush_step_generation()` or `toolhead.wait_moves()` calls to
|
||||
fully flush the look-ahead and step generation code.
|
||||
|
||||
The "kinematic" position (`stepper.set_tag_position()` and
|
||||
`kin.calc_tag_position()`) is the cartesian position of the toolhead
|
||||
as derived from the "stepper" position and is relative to the
|
||||
coordinate system specified in the config file. This may differ from
|
||||
the requested cartesian position due to the granularity of the stepper
|
||||
motors. If the robot is in motion when `stepper.set_tag_position()` is
|
||||
issued then the reported value includes moves buffered on the
|
||||
micro-controller, but does not include moves on the look-ahead
|
||||
queue. One may use the `toolhead.flush_step_generation()` or
|
||||
`toolhead.wait_moves()` calls to fully flush the look-ahead and step
|
||||
generation code.
|
||||
|
||||
The "toolhead" position (`toolhead.get_position()`) is the last
|
||||
requested position of the toolhead in cartesian coordinates relative
|
||||
to the coordinate system specified in the config file. If the robot is
|
||||
in motion when the query is issued then the reported value includes
|
||||
all requested moves (even those in buffers waiting to be issued to the
|
||||
stepper motor drivers).
|
||||
|
||||
The "gcode" position is the last requested position from a `G1` (or
|
||||
`G0`) command in cartesian coordinates relative to the coordinate
|
||||
system specified in the config file. This may differ from the
|
||||
"toolhead" position if a g-code transformation (eg, bed_mesh,
|
||||
bed_tilt, skew_correction) is in effect. This may differ from the
|
||||
actual coordinates specified in the last `G1` command if the g-code
|
||||
origin has been changed (eg, `G92`, `SET_GCODE_OFFSET`, `M221`). The
|
||||
`M114` command (`gcode_move.get_status()['gcode_position']`) will
|
||||
report the last g-code position relative to the current g-code
|
||||
coordinate system.
|
||||
|
||||
The "gcode base" is the location of the g-code origin in cartesian
|
||||
coordinates relative to the coordinate system specified in the config
|
||||
file. Commands such as `G92`, `SET_GCODE_OFFSET`, and `M221` alter
|
||||
this value.
|
||||
|
||||
The "gcode homing" is the location to use for the g-code origin (in
|
||||
cartesian coordinates relative to the coordinate system specified in
|
||||
the config file) after a `G28` home command. The `SET_GCODE_OFFSET`
|
||||
command can alter this value.
|
||||
|
||||
Time
|
||||
====
|
||||
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
This document provides information on implementing G-Code command
|
||||
sequences in gcode_macro (and similar) config sections.
|
||||
|
||||
### G-Code Macro Naming
|
||||
|
||||
Case is not important for the G-Code macro name - MY_MACRO and
|
||||
my_macro will evaluate the same and may be called in either upper or
|
||||
lower case. If any numbers are used in the macro name then they must
|
||||
all be at the end of the name (eg, TEST_MACRO25 is valid, but
|
||||
MACRO25_TEST3 is not).
|
||||
|
||||
### Formatting of G-Code in the config
|
||||
|
||||
Indentation is important when defining a macro in the config file. To
|
||||
@@ -111,47 +119,165 @@ other macros, as the called macro is evaluated when it is invoked
|
||||
By convention, the name immediately following `printer` is the name of
|
||||
a config section. So, for example, `printer.fan` refers to the fan
|
||||
object created by the `[fan]` config section. There are some
|
||||
exceptions to this rule - notably the `gcode` and `toolhead` objects.
|
||||
If the config section contains spaces in it, then one can access it
|
||||
via the `[ ]` accessor - for example:
|
||||
exceptions to this rule - notably the `gcode_move` and `toolhead`
|
||||
objects. If the config section contains spaces in it, then one can
|
||||
access it via the `[ ]` accessor - for example:
|
||||
`printer["generic_heater my_chamber_heater"].temperature`.
|
||||
|
||||
Some printer objects allow one to alter the state of the printer. By
|
||||
convention, these objects use an `action_` prefix. For example,
|
||||
`printer.gcode.action_emergency_stop()` would cause the printer to go
|
||||
into a shutdown state. These actions are taken at the time that the
|
||||
macro is evaluated, which may be a significant amount of time before
|
||||
the generated commands are executed.
|
||||
|
||||
The following are common printer attributes:
|
||||
- `printer.fan.speed`: The fan speed as a float between 0.0 and 1.0.
|
||||
- `printer.gcode.action_respond_info(msg)`: Write the given `msg` to
|
||||
the /tmp/printer pseudo-terminal. Each line of `msg` will be sent
|
||||
with a "// " prefix.
|
||||
- `printer.gcode.action_respond_error(msg)`: Write the given `msg` to
|
||||
the /tmp/printer pseudo-terminal. The first line of `msg` will be
|
||||
sent with a "!! " prefix and subsequent lines will have a "// "
|
||||
prefix.
|
||||
- `printer.gcode.action_emergency_stop(msg)`: Transition the printer
|
||||
to a shutdown state. The `msg` parameter is optional, it may be
|
||||
useful to describe the reason for the shutdown.
|
||||
- `printer.gcode.gcode_position`: The current position of the toolhead
|
||||
relative to the current G-Code origin. It is possible to access the
|
||||
x, y, z, and e components of this position (eg,
|
||||
`printer.gcode.gcode_position.x`).
|
||||
This is also available on "heater_fan" and "fan_generic" config
|
||||
sections (eg, `printer["fan_generic my_fan"].speed`).
|
||||
- `printer.gcode_move.gcode_position`: The current position of the
|
||||
toolhead relative to the current G-Code origin. That is, positions
|
||||
that one might directly send to a `G1` command. It is possible to
|
||||
access the x, y, z, and e components of this position (eg,
|
||||
`printer.gcode_move.gcode_position.x`).
|
||||
- `printer.gcode_move.position`: The last commanded position of the
|
||||
toolhead using the coordinate system specified in the config
|
||||
file. It is possible to access the x, y, z, and e components of this
|
||||
position (eg, `printer.gcode_move.position.x`).
|
||||
- `printer.gcode_move.homing_origin`: The origin of the gcode
|
||||
coordinate system (relative to the coordinate system specified in
|
||||
the config file) to use after a `G28` command. The
|
||||
`SET_GCODE_OFFSET` command can alter this position. It is possible
|
||||
to access the x, y, and z components of this position (eg,
|
||||
`printer.gcode_move.homing_origin.x`).
|
||||
- `printer.gcode_move.speed`: The last speed set in a `G1` command (in
|
||||
mm/s).
|
||||
- `printer.gcode_move.speed_factor`: The "speed factor override" as
|
||||
set by an `M220` command. This is a floating point value such
|
||||
that 1.0 means no override and, for example, 2.0 would double
|
||||
requested speed.
|
||||
- `printer.gcode_move.extrude_factor`: The "extrude factor override"
|
||||
as set by an `M221` command. This is a floating point value such
|
||||
that 1.0 means no override and, for example, 2.0 would double
|
||||
requested extrusions.
|
||||
- `printer.gcode_move.absolute_coordinates`: This returns True if in
|
||||
`G90` absolute coordinate mode or False if in `G91` relative mode.
|
||||
- `printer.gcode_move.absolute_extrude`: This returns True if in `M82`
|
||||
absolute extrude mode or False if in `M83` relative mode.
|
||||
- `printer["gcode_macro <macro_name>"].<variable>`: The current value
|
||||
of a gcode_macro variable.
|
||||
- `printer.<heater>.temperature`: The last reported temperature (in
|
||||
Celsius as a float) for the given heater. Available heaters are:
|
||||
`heater_bed` and `heater_generic <config_name>`.
|
||||
Celsius as a float) for the given heater. Example heaters are:
|
||||
`extruder`, `extruder1`, `heater_bed`, `heater_generic
|
||||
<config_name>`.
|
||||
- `printer.<heater>.target`: The current target temperature (in
|
||||
Celsius as a float) for the given heater.
|
||||
- `printer.idle_timeout.state`: The current state of the printer as
|
||||
tracked by the idle_timeout module. It is one of the following
|
||||
strings: "Idle", "Printing", "Ready".
|
||||
- `printer.idle_timeout.printing_time`: The amount of time (in
|
||||
seconds) the printer has been in the "Printing" state (as tracked by
|
||||
the idle_timeout module).
|
||||
- `printer.pause_resume.is_paused`: Returns true if a PAUSE command
|
||||
has been executed without a corresponding RESUME.
|
||||
- `printer.toolhead.position`: The last commanded position of the
|
||||
toolhead relative to the coordinate system specified in the config
|
||||
file. It is possible to access the x, y, z, and e components of this
|
||||
position (eg, `printer.toolhead.position.x`).
|
||||
- `printer.toolhead.extruder`: The name of the currently active
|
||||
extruder. For example, one could use
|
||||
`printer[printer.toolhead.extruder].target` to get the target
|
||||
temperature of the current extruder.
|
||||
- `printer.toolhead.homed_axes`: The current cartesian axes considered
|
||||
to be in a "homed" state. This is a string containing one or more of
|
||||
"x", "y", "z".
|
||||
- `printer.toolhead.max_velocity`, `printer.toolhead.max_accel`,
|
||||
`printer.toolhead.max_accel_to_decel`,
|
||||
`printer.toolhead.square_corner_velocity`: The current printing
|
||||
limits that are in effect. This may differ from the config file
|
||||
settings if a `SET_VELOCITY_LIMIT` (or `M204`) command alters them
|
||||
at run-time.
|
||||
- `printer.heaters.available_heaters`: Returns a list of all currently
|
||||
available heaters by their full config section names,
|
||||
e.g. `["extruder", "heater_bed", "heater_generic my_custom_heater"]`.
|
||||
- `printer.heaters.available_sensors`: Returns a list of all currently
|
||||
available temperature sensors by their full config section names,
|
||||
e.g. `["extruder", "heater_bed", "heater_generic my_custom_heater",
|
||||
"temperature_sensor electronics_temp"]`.
|
||||
- `printer.query_endstops.last_query["<endstop>"]`: Returns True if
|
||||
the given endstop was reported as "triggered" during the last
|
||||
QUERY_ENDSTOP command. Note, due to the order of template expansion
|
||||
(see above), the QUERY_ENDSTOP command must be run prior to the
|
||||
macro containing this reference.
|
||||
- `printer.probe.last_query`: Returns True if the probe was reported
|
||||
as "triggered" during the last QUERY_PROBE command. Note, due to the
|
||||
order of template expansion (see above), the QUERY_PROBE command
|
||||
must be run prior to the macro containing this reference.
|
||||
- `printer.configfile.config["<section>"]["<option>"]`: Returns the
|
||||
given config file setting as read by Klipper during the last
|
||||
software start or restart. (Any settings changed at run-time will
|
||||
not be reflected here.) All values are returned as strings (if math
|
||||
is to be performed on the value then it must be converted to a
|
||||
Python number).
|
||||
- `printer["gcode_macro <macro_name>"].<variable>`: The current value
|
||||
of a [gcode_macro variable](#variables).
|
||||
- `printer.webhooks.state`: Returns a string indicating the current
|
||||
Klipper state. Possible values are: "ready", "startup", "shutdown",
|
||||
"error".
|
||||
- `printer.webhooks.state_message`: A human readable string giving
|
||||
additional context on the current Klipper state.
|
||||
- `printer.display_status.progress`: The progress value of the last
|
||||
`M73` G-Code command (or `printer.virtual_sdcard.progress` if no
|
||||
recent `M73` received).
|
||||
- `printer.display_status.message`: The message contained in the last
|
||||
`M117` G-Code command.
|
||||
- `printer["filament_switch_sensor <config_name>"].enabled`: Returns
|
||||
True if the switch sensor is currently enabled.
|
||||
- `printer["filament_switch_sensor <config_name>"].filament_detected`:
|
||||
Returns True if the sensor is in a triggered state.
|
||||
- `printer.virtual_sdcard.is_active`: Returns True if a print from
|
||||
file is currently active.
|
||||
- `printer.virtual_sdcard.progress`: An estimate of the current print
|
||||
progress (based of file size and file position).
|
||||
- `printer.virtual_sdcard.file_position`: The current position (in
|
||||
bytes) of an active print.
|
||||
- `printer.print_stats.filename`,
|
||||
`printer.print_stats.total_duration`,
|
||||
`printer.print_stats.print_duration`,
|
||||
`printer.print_stats.filament_used`, `printer.print_stats.state`,
|
||||
`printer.print_stats.message`: Estimated information about the
|
||||
current print when a virtual_sdcard print is active.
|
||||
- `printer.firmware_retraction.retract_length`,
|
||||
`printer.firmware_retraction.retract_speed`,
|
||||
`printer.firmware_retraction.unretract_extra_length`,
|
||||
`printer.firmware_retraction.unretract_speed`: The current settings
|
||||
for the firmware_retraction module. These settings may differ from
|
||||
the config file if a `SET_RETRACTION` command alters them.
|
||||
- `printer["bme280 <sensor_name>"].temperature`,
|
||||
`printer["bme280 <sensor_name>"].humidity`,
|
||||
`printer["bme280 <sensor_name>"].pressure`: The last read values
|
||||
from the sensor.
|
||||
- `printer["htu21d <sensor_name>"].temperature`,
|
||||
`printer["htu21d <sensor_name>"].humidity`: The last read values
|
||||
from the sensor.
|
||||
- `printer["lm75 <sensor_name>"].temperature`: The last read
|
||||
temperature from the sensor.
|
||||
- `printer["temperature_sensor <config_name>"].temperature`: The last read
|
||||
temperature from the sensor.
|
||||
- `printer["temperature_sensor <config_name>"].measured_min_temp`,
|
||||
`printer["temperature_sensor <config_name>"].measured_max_temp`: The
|
||||
lowest and highest temperature seen by the sensor since the Klipper
|
||||
host software was last restarted.
|
||||
- `printer["temperature_fan <config_name>"].temperature`: The last read
|
||||
temperature from the sensor.
|
||||
- `printer["temperature_fan <config_name>"].target`: The target
|
||||
temperature for the fan.
|
||||
- `printer["output_pin <config_name>"].value`: The "value" of the pin,
|
||||
as set by a `SET_PIN` command.
|
||||
- `printer["servo <config_name>"].value`: The last setting of the PWM
|
||||
pin (a value between 0.0 and 1.0) associated with the servo.
|
||||
- `printer.bed_mesh.profile_name`, `printer.bed_mesh.mesh_min`,
|
||||
`printer.bed_mesh.mesh_max`, `printer.bed_mesh.probed_matrix`,
|
||||
`printer.bed_mesh.mesh_matrix`: Information on the currently active
|
||||
bed_mesh.
|
||||
- `printer.hall_filament_width_sensor.is_active`: Returns True if the
|
||||
sensor is currently active.
|
||||
- `printer.hall_filament_width_sensor.Diameter`,
|
||||
`printer.hall_filament_width_sensor.Raw`: The last read values from
|
||||
the sensor.
|
||||
|
||||
The above list is subject to change - if using an attribute be sure to
|
||||
review the [Config Changes document](Config_Changes.md) when upgrading
|
||||
@@ -160,10 +286,31 @@ attributes may be available (via `get_status()` methods defined in the
|
||||
software). However, undocumented attributes may change without notice
|
||||
in future Klipper releases.
|
||||
|
||||
### Actions
|
||||
|
||||
There are some commands available that can alter the state of the
|
||||
printer. For example, `{ action_emergency_stop() }` would cause the
|
||||
printer to go into a shutdown state. Note that these actions are taken
|
||||
at the time that the macro is evaluated, which may be a significant
|
||||
amount of time before the generated g-code commands are executed.
|
||||
|
||||
Available "action" commands:
|
||||
- `action_respond_info(msg)`: Write the given `msg` to the
|
||||
/tmp/printer pseudo-terminal. Each line of `msg` will be sent with a
|
||||
"// " prefix.
|
||||
- `action_raise_error(msg)`: Abort the current macro (and any calling
|
||||
macros) and write the given `msg` to the /tmp/printer
|
||||
pseudo-terminal. The first line of `msg` will be sent with a "!! "
|
||||
prefix and subsequent lines will have a "// " prefix.
|
||||
- `action_emergency_stop(msg)`: Transition the printer to a shutdown
|
||||
state. The `msg` parameter is optional, it may be useful to describe
|
||||
the reason for the shutdown.
|
||||
|
||||
### Variables
|
||||
|
||||
The SET_GCODE_VARIABLE command may be useful for saving state between
|
||||
macro calls. For example:
|
||||
macro calls. Variable names may not contain any upper case characters.
|
||||
For example:
|
||||
|
||||
```
|
||||
[gcode_macro start_probe]
|
||||
@@ -232,11 +379,8 @@ the gcode option:
|
||||
[delayed_gcode report_temp]
|
||||
initial_duration: 2.
|
||||
gcode:
|
||||
{printer.gcode.action_respond_info(
|
||||
"Extruder Temp: %.1f" %
|
||||
(printer.extruder0.temperature))}
|
||||
{action_respond_info("Extruder Temp: %.1f" % (printer.extruder0.temperature))}
|
||||
UPDATE_DELAYED_GCODE ID=report_temp DURATION=2
|
||||
|
||||
```
|
||||
|
||||
The above delayed_gcode will send "// Extruder Temp: [ex0_temp]" to
|
||||
|
||||
@@ -6,6 +6,136 @@ All dates in this document are approximate.
|
||||
|
||||
# Changes
|
||||
|
||||
20201020: Klipper v0.9.0 released.
|
||||
|
||||
20200902: The RTD resistance-to-temperature calculation for MAX31865
|
||||
converters has been corrected to not read low. If you are using such a
|
||||
device, you should recalibrate your print temperature and PID settings.
|
||||
|
||||
20200816: The gcode macro `printer.gcode` object has been renamed to
|
||||
`printer.gcode_move`. Several undocumented variables in
|
||||
`printer.toolhead` and `printer.gcode` have been removed. See
|
||||
docs/Command_Templates.md for a list of available template variables.
|
||||
|
||||
20200816: The gcode macro "action_" system has changed. Replace any
|
||||
calls to `printer.gcode.action_emergency_stop()` with
|
||||
`action_emergency_stop()`, `printer.gcode.action_respond_info()` with
|
||||
`action_respond_info()`, and `printer.gcode.action_respond_error()`
|
||||
with `action_raise_error()`.
|
||||
|
||||
20200809: The menu system has been rewritten. If the menu has been
|
||||
customized then it will be necessary to update to the new
|
||||
configuration. See config/example-menu.cfg for configuration details
|
||||
and see klippy/extras/display/menu.cfg for examples.
|
||||
|
||||
20200731: The behavior of the `progress` attribute reported by
|
||||
the `virtual_sdcard` printer object has changed. Progress is no
|
||||
longer reset to 0 when a print is paused. It will now always report
|
||||
progress based on the internal file position, or 0 if no file is
|
||||
currently loaded.
|
||||
|
||||
20200725: The servo `enable` config parameter and the SET_SERVO
|
||||
`ENABLE` parameter have been removed. Update any macros to use
|
||||
`SET_SERVO SERVO=my_servo WIDTH=0` to disable a servo.
|
||||
|
||||
20200608: The LCD display support has changed the name of some
|
||||
internal "glyphs". If a custom display layout was implemented it may
|
||||
be necessary to update to the latest glyph names (see
|
||||
klippy/extras/display/display.cfg for a list of available glyphs).
|
||||
|
||||
20200606: The pin names on linux mcu have changed. Pins now have names
|
||||
of the form `gpiochip<chipid>/gpio<gpio>`. For gpiochip0 you can also
|
||||
use a short `gpio<gpio>`. For example, what was previously referred
|
||||
to as `P20` now becomes `gpio20` or `gpiochip0/gpio20`.
|
||||
|
||||
20200603: The default 16x4 LCD layout will no longer show the
|
||||
estimated time remaining in a print. (Only the elapsed time will be
|
||||
shown.) If the old behavior is desired one can customize the menu
|
||||
display with that information (see the description of display_data in
|
||||
config/example-extras.cfg for details).
|
||||
|
||||
20200531: The default USB vendor/product id is now 0x1d50/0x614e.
|
||||
These new ids are reserved for Klipper (thanks to the openmoko
|
||||
project). This change should not require any config changes, but the
|
||||
new ids may appear in system logs.
|
||||
|
||||
20200524: The default value for the tmc5160 pwm_freq field is now zero
|
||||
(instead of one).
|
||||
|
||||
20200425: The gcode_macro command template variable `printer.heater`
|
||||
was renamed to `printer.heaters`.
|
||||
|
||||
20200313: The default lcd layout for multi-extruder printers with a
|
||||
16x4 screen has changed. The single extruder screen layout is now the
|
||||
default and it will show the currently active extruder. To use the
|
||||
previous display layout set "display_group: _multiextruder_16x4" in
|
||||
the [display] section of the printer.cfg file.
|
||||
|
||||
20200308: The default `__test` menu item was removed. If the config
|
||||
file has a custom menu then be sure to remove all references to this
|
||||
`__test` menu item.
|
||||
|
||||
20200308: The menu "deck" and "card" options were removed. To
|
||||
customize the layout of an lcd screen use the new display_data config
|
||||
sections (see config/example-extras.cfg for the details).
|
||||
|
||||
20200109: The bed_mesh module now references the probe's location
|
||||
in for the mesh configuration. As such, some configuration options
|
||||
have been renamed to more accurately reflect their intended
|
||||
functionality. For rectangular beds, `min_point` and `max_point`
|
||||
have been renamed to `mesh_min` and `mesh_max` respectively. For
|
||||
round beds, `bed_radius` has been renamed to `mesh_radius`. A new
|
||||
`mesh_origin` option has also been added for round beds. Note that
|
||||
these changes are also incompatible with previously saved mesh profiles.
|
||||
If an incompatible profile is detected it will be ignored and scheduled
|
||||
for removal. The removal process can be completed by issuing the
|
||||
SAVE_CONFIG command. The user will need to re-calibrate each profile.
|
||||
|
||||
20191218: The display config section no longer supports "lcd_type:
|
||||
st7567". Use the "uc1701" display type instead - set "lcd_type:
|
||||
uc1701" and change the "rs_pin: some_pin" to "rst_pin: some_pin". It
|
||||
may also be necessary to add a "contrast: 60" config setting.
|
||||
|
||||
20191210: The builtin T0, T1, T2, ... commands have been removed. The
|
||||
extruder activate_gcode and deactivate_gcode config options have been
|
||||
removed. If these commands (and scripts) are needed then define
|
||||
individual [gcode_macro T0] style macros that call the
|
||||
ACTIVATE_EXTRUDER command. See the config/sample-idex.cfg and
|
||||
sample-multi-extruder.cfg files for examples.
|
||||
|
||||
20191210: Support for the M206 command has been removed. Replace with
|
||||
calls to SET_GCODE_OFFSET. If support for M206 is needed, add a
|
||||
[gcode_macro M206] config section that calls SET_GCODE_OFFSET. (For
|
||||
example "SET_GCODE_OFFSET Z=-{params.Z}".)
|
||||
|
||||
20191202: Support for the undocumented "S" parameter of the "G4"
|
||||
command has been removed. Replace any occurrences of S with the
|
||||
standard "P" parameter (the delay specified in milliseconds).
|
||||
|
||||
20191126: The USB names have changed on micro-controllers with native
|
||||
USB support. They now use a unique chip id by default (where
|
||||
available). If an "mcu" config section uses a "serial" setting that
|
||||
starts with "/dev/serial/by-id/" then it may be necessary to update
|
||||
the config. Run "ls /dev/serial/by-id/*" in an ssh terminal to
|
||||
determine the new id.
|
||||
|
||||
20191121: The pressure_advance_lookahead_time parameter has been
|
||||
removed. See example.cfg for alternate configuration settings.
|
||||
|
||||
20191112: The tmc stepper driver virtual enable capability is now
|
||||
automatically enabled if the stepper does not have a dedicated stepper
|
||||
enable pin. Remove references to tmcXXXX:virtual_enable from the
|
||||
config. The ability to control multiple pins in the stepper
|
||||
enable_pin config has been removed. If multiple pins are needed then
|
||||
use a multi_pin config section.
|
||||
|
||||
20191107: The primary extruder config section must be specified as
|
||||
"extruder" and may no longer be specified as "extruder0". Gcode
|
||||
command templates that query the extruder status are now accessed via
|
||||
"{printer.extruder}".
|
||||
|
||||
20191021: Klipper v0.8.0 released
|
||||
|
||||
20191003: The move_to_previous option in [safe_z_homing] now defaults
|
||||
to False. (It was effectively False prior to 20190918.)
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ config file is successfully loaded.
|
||||
|
||||
### Verify temperature
|
||||
|
||||
Start by verifying that temperatures are being properly
|
||||
reported. Navigate to the Octoprint temperature tab.
|
||||
Start by verifying that temperatures are being properly reported.
|
||||
Navigate to the Octoprint temperature tab.
|
||||
|
||||

|
||||
|
||||
@@ -85,7 +85,7 @@ resistor and the '^' should be present).
|
||||
|
||||
Use the STEPPER_BUZZ command to verify the connectivity of each
|
||||
stepper motor. Start by manually positioning the given axis to a
|
||||
midway point and then run `STEPPER_BUZZ STEPPER=stepper_x` . The
|
||||
midway point and then run `STEPPER_BUZZ STEPPER=stepper_x`. The
|
||||
STEPPER_BUZZ command will cause the given stepper to move one
|
||||
millimeter in a positive direction and then it will return to its
|
||||
starting position. (If the endstop is defined at position_endstop=0
|
||||
@@ -162,3 +162,6 @@ consider calibrating [pressure advance](Pressure_Advance.md).
|
||||
It may be necessary to perform other types of detailed printer
|
||||
calibration - a number of guides are available online to help with
|
||||
this (for example, do a web search for "3d printer calibration").
|
||||
As an example, if you experience the effect called ringing,
|
||||
you may try following [resonance compensation](Resonance_Compensation.md)
|
||||
tuning guide.
|
||||
|
||||
@@ -35,7 +35,7 @@ Mailing list
|
||||
============
|
||||
|
||||
There is a mailing list for general discussions on Klipper. In order
|
||||
to send am email to the list, one must first subscribe:
|
||||
to send an email to the list, one must first subscribe:
|
||||
https://www.freelists.org/list/klipper . Once subscribed, emails may
|
||||
be sent to `klipper@freelists.org`.
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ with Klippy, and send it to Klipper running in simulavr (see
|
||||
python virtual environment):
|
||||
|
||||
```
|
||||
~/klippy-env/bin/python ./klippy/klippy.py config/avrsim.cfg -i test.gcode -v
|
||||
~/klippy-env/bin/python ./klippy/klippy.py config/generic-simulavr.cfg -i test.gcode -v
|
||||
```
|
||||
|
||||
Using simulavr with gtkwave
|
||||
|
||||
@@ -30,6 +30,13 @@ automatic probe has a bias of more than 25 microns (.025mm) then use
|
||||
manual probing instead. Manual probing only takes a few minutes and it
|
||||
eliminates error introduced by the probe.
|
||||
|
||||
If using a probe that is mounted on the side of the hotend (that is,
|
||||
it has an X or Y offset) then note that performing delta calibration
|
||||
will invalidate the results of probe calibration. These types of
|
||||
probes are rarely suitable for use on a delta (because minor effector
|
||||
tilt will result in a probe location bias). If using the probe anyway,
|
||||
then be sure to rerun probe calibration after any delta calibration.
|
||||
|
||||
Basic delta calibration
|
||||
=======================
|
||||
|
||||
@@ -228,3 +235,15 @@ Additional notes
|
||||
errors elsewhere in the hardware. For example, small differences in
|
||||
arm length may result in a tilt to the effector and some of that
|
||||
tilt may be accounted for by adjusting the arm length parameters.
|
||||
|
||||
Using Bed Mesh on a Delta
|
||||
=========================
|
||||
|
||||
It is possible to use [bed mesh](Bed_Mesh.md) on a delta. However, it
|
||||
is important to obtain good delta calibration prior to enabling a bed
|
||||
mesh. Running bed mesh with poor delta calibration will result in
|
||||
confusing and poor results.
|
||||
|
||||
Note that performing delta calibration will invalidate any previously
|
||||
obtained bed mesh. After performing a new delta calibration be sure to
|
||||
rerun BED_MESH_CALIBRATE.
|
||||
|
||||
@@ -13,16 +13,16 @@ precision.
|
||||
|
||||
The stepper phase adjusted endstop mechanism can use the precision of
|
||||
the stepper motors to improve the precision of the endstop switches.
|
||||
When a stepper motor moves it cycles through a series of phases until
|
||||
in completes four "full steps". So, a stepper motor using 16
|
||||
micro-steps would have 64 phases and when moving in a positive
|
||||
direction it would cycle through phases: 0, 1, 2, ... 61, 62, 63, 0,
|
||||
1, 2, etc. Crucially, when the stepper motor is at a particular
|
||||
position on a linear rail it should always be at the same stepper
|
||||
phase. Thus, when a carriage triggers the endstop switch the stepper
|
||||
controlling that carriage should always be at the same stepper motor
|
||||
phase. Klipper's endstop phase system combines the stepper phase with
|
||||
the endstop trigger to improve the accuracy of the endstop.
|
||||
A stepper motor moves by cycling through a series of phases until in
|
||||
completes four "full steps". So, a stepper motor using 16 micro-steps
|
||||
would have 64 phases and when moving in a positive direction it would
|
||||
cycle through phases: 0, 1, 2, ... 61, 62, 63, 0, 1, 2, etc.
|
||||
Crucially, when the stepper motor is at a particular position on a
|
||||
linear rail it should always be at the same stepper phase. Thus, when
|
||||
a carriage triggers the endstop switch the stepper controlling that
|
||||
carriage should always be at the same stepper motor phase. Klipper's
|
||||
endstop phase system combines the stepper phase with the endstop
|
||||
trigger to improve the accuracy of the endstop.
|
||||
|
||||
In order to use this functionality it is necessary to be able to
|
||||
identify the phase of the stepper motor. If one is using Trinamic
|
||||
|
||||
273
docs/FAQ.md
273
docs/FAQ.md
@@ -19,13 +19,17 @@ Frequently asked questions
|
||||
16. [When I set "restart_method=command" my AVR device just hangs on a restart](#when-i-set-restart_methodcommand-my-avr-device-just-hangs-on-a-restart)
|
||||
17. [Will the heaters be left on if the Raspberry Pi crashes?](#will-the-heaters-be-left-on-if-the-raspberry-pi-crashes)
|
||||
18. [How do I convert a Marlin pin number to a Klipper pin name?](#how-do-i-convert-a-marlin-pin-number-to-a-klipper-pin-name)
|
||||
19. [How do I cancel an M109/M190 "wait for temperature" request?](#how-do-i-cancel-an-m109m190-wait-for-temperature-request)
|
||||
20. [How do I upgrade to the latest software?](#how-do-i-upgrade-to-the-latest-software)
|
||||
19. [Do I have to wire my device to a specific type of micro-controller pin?](#do-i-have-to-wire-my-device-to-a-specific-type-of-micro-controller-pin)
|
||||
20. [How do I cancel an M109/M190 "wait for temperature" request?](#how-do-i-cancel-an-m109m190-wait-for-temperature-request)
|
||||
21. [Can I find out whether the printer has lost steps?](#can-i-find-out-whether-the-printer-has-lost-steps)
|
||||
22. [Why does Klipper report errors? I lost my print!](#why-does-klipper-report-errors-i-lost-my-print)
|
||||
23. [How do I upgrade to the latest software?](#how-do-i-upgrade-to-the-latest-software)
|
||||
24. [How do I uninstall klipper?](#how-do-i-uninstall-klipper)
|
||||
|
||||
### How can I donate to the project?
|
||||
|
||||
Thanks. Kevin has a Patreon page at: https://www.patreon.com/koconnor
|
||||
Thanks. Kevin has a Patreon page at:
|
||||
[https://www.patreon.com/koconnor](https://www.patreon.com/koconnor)
|
||||
|
||||
### How do I calculate the step_distance parameter in the printer config file?
|
||||
|
||||
@@ -49,11 +53,11 @@ units of "inverse millimeters" is felt to be quirky and unnecessary.
|
||||
|
||||
### Where's my serial port?
|
||||
|
||||
The general way to find a USB serial port is to run `ls -l
|
||||
/dev/serial/by-id/` from an ssh terminal on the host machine. It will
|
||||
The general way to find a USB serial port is to run `ls
|
||||
/dev/serial/by-id/*` from an ssh terminal on the host machine. It will
|
||||
likely produce output similar to the following:
|
||||
```
|
||||
lrwxrwxrwx 1 root root 13 Jun 1 21:12 usb-1a86_USB2.0-Serial-if00-port0 -> ../../ttyUSB0
|
||||
/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
|
||||
```
|
||||
|
||||
The name found in the above command is stable and it is possible to
|
||||
@@ -75,7 +79,7 @@ above as the name will be different for each printer.
|
||||
|
||||
If you are using multiple micro-controllers and they do not have
|
||||
unique ids (common on boards with a CH340 USB chip) then follow the
|
||||
directions above using the directory `/dev/serial/by-path/` instead.
|
||||
directions above using the command `ls /dev/serial/by-path/*` instead.
|
||||
|
||||
### When the micro-controller restarts the device changes to /dev/ttyUSB1
|
||||
|
||||
@@ -135,30 +139,49 @@ bootloaders.
|
||||
|
||||
### Can I run Klipper on something other than a Raspberry Pi 3?
|
||||
|
||||
The recommended hardware is a Raspberry Pi 2 or a Raspberry
|
||||
Pi 3.
|
||||
The recommended hardware is a Raspberry Pi 2, Raspberry Pi 3, or
|
||||
Raspberry Pi 4.
|
||||
|
||||
Klipper will run on a Raspberry Pi 1 and on the Raspberry Pi Zero, but
|
||||
these boards don't have enough processing power to run OctoPrint
|
||||
well. It's not uncommon for print stalls to occur on these slower
|
||||
machines (the printer may move faster than OctoPrint can send movement
|
||||
commands) when printing directly from OctoPrint. If you wish to run on
|
||||
one one of these slower boards anyway, consider using the
|
||||
"virtual_sdcard" feature (see
|
||||
well. It is common for print stalls to occur on these slower machines
|
||||
when printing directly from OctoPrint. (The printer may move faster
|
||||
than OctoPrint can send movement commands.) If you wish to run on one
|
||||
one of these slower boards anyway, consider using the "virtual_sdcard"
|
||||
feature when printing (see
|
||||
[config/example-extras.cfg](https://github.com/KevinOConnor/klipper/tree/master/config/example-extras.cfg)
|
||||
for details) when printing.
|
||||
for details).
|
||||
|
||||
For running on the Beaglebone, see the
|
||||
[Beaglebone specific installation instructions](beaglebone.md).
|
||||
|
||||
Klipper has been run on other machines. The Klipper host software
|
||||
only requires Python running on a Linux (or similar)
|
||||
computer. However, if you wish to run it on a different machine you
|
||||
will need Linux admin knowledge to install the system prerequisites
|
||||
for that particular machine. See the
|
||||
Klipper has been run on other machines. The Klipper host software only
|
||||
requires Python running on a Linux (or similar) computer. However, if
|
||||
you wish to run it on a different machine you will need Linux admin
|
||||
knowledge to install the system prerequisites for that particular
|
||||
machine. See the
|
||||
[install-octopi.sh](https://github.com/KevinOConnor/klipper/tree/master/scripts/install-octopi.sh)
|
||||
script for further information on the necessary Linux admin steps.
|
||||
|
||||
If you are looking to run the Klipper host software on a low-end chip,
|
||||
then be aware that, at a minimum, a machine with "double precision
|
||||
floating point" hardware is required.
|
||||
|
||||
If you are looking to run the Klipper host software on a shared
|
||||
general-purpose desktop or server class machine, then note that
|
||||
Klipper has some real-time scheduling requirements. If, during a
|
||||
print, the host computer also performs an intensive general-purpose
|
||||
computing task (such as defragmenting a hard drive, 3d rendering,
|
||||
heavy swapping, etc.), then it may cause Klipper to report print
|
||||
errors.
|
||||
|
||||
Note: If you are not using an OctoPi image, be aware that several
|
||||
Linux distributions enable a "ModemManager" (or similar) package that
|
||||
can disrupt serial communication. (Which can cause Klipper to report
|
||||
seemingly random "Lost communication with MCU" errors.) If you install
|
||||
Klipper on one of these distributions you may need to disable that
|
||||
package.
|
||||
|
||||
### Can I run multiple instances of Klipper on the same host machine?
|
||||
|
||||
It is possible to run multiple instances of the Klipper host software,
|
||||
@@ -211,9 +234,10 @@ the desired movement to the "custom g-code" section of your slicer.
|
||||
|
||||
If the printer requires some additional movement as part of the homing
|
||||
process itself (or fundamentally does not have a homing process) then
|
||||
consider using a homing_override section in the config file. If you
|
||||
need to move a stepper for diagnostic or debugging purposes then
|
||||
consider adding a force_move section to the config file. See
|
||||
consider using a safe_z_home or homing_override section in the config
|
||||
file. If you need to move a stepper for diagnostic or debugging
|
||||
purposes then consider adding a force_move section to the config
|
||||
file. See
|
||||
[example-extras.cfg](https://github.com/KevinOConnor/klipper/tree/master/config/example-extras.cfg)
|
||||
for further details on these options.
|
||||
|
||||
@@ -226,34 +250,15 @@ this reduces the potential for bed collisions). However, if one must
|
||||
home towards the bed then it is recommended to position the endstop so
|
||||
it triggers when the nozzle is still a small distance away from the
|
||||
bed. This way, when homing the axis, it will stop before the nozzle
|
||||
touches the bed.
|
||||
|
||||
Almost all mechanical switches can still move a small distance
|
||||
(eg, 0.5mm) after they are triggered. So, for example, if the
|
||||
position_endstop is set to 0.5mm then one may still command the
|
||||
printer to move to Z0.2. The position_min config setting (which
|
||||
defaults to 0) is used to specify the minimum Z position one may
|
||||
command the printer to move to.
|
||||
|
||||
Note, the Z position_endstop specifies the distance from the nozzle to
|
||||
the bed when the nozzle and bed (if applicable) are hot. It is typical
|
||||
for thermal expansion to cause nozzle expansion of around .1mm, which
|
||||
is also the typical thickness of a sheet of printer paper. Thus, it is
|
||||
common to use the "paper test" to confirm calibration of the Z
|
||||
height - check that the bed and nozzle are at room temperature, check
|
||||
that there is no plastic on the head or bed, home the printer, place a
|
||||
piece of paper between the nozzle and bed, and repeatedly command the
|
||||
head to move closer to the bed checking each time if you feel a small
|
||||
amount of friction when sliding the paper between bed and nozzle - if
|
||||
all is calibrated well a small amount of friction would be felt when
|
||||
the height is at Z0.
|
||||
touches the bed. See the [bed level document](Bed_Level.md) for more
|
||||
information.
|
||||
|
||||
### I converted my config from Marlin and the X/Y axes work fine, but I just get a screeching noise when homing the Z axis
|
||||
|
||||
Short answer: Try reducing the max_z_velocity setting in the printer
|
||||
config. Also, if the Z stepper is moving in the wrong direction, try
|
||||
inverting the dir_pin setting in the config (eg, "dir_pin: !xyz"
|
||||
instead of "dir_pin: xyz").
|
||||
Short answer: First, make sure you have verified the stepper
|
||||
configuration as described in the
|
||||
[config check document](Config_checks.md). If the problem persists,
|
||||
try reducing the max_z_velocity setting in the printer config.
|
||||
|
||||
Long answer: In practice Marlin can typically only step at a rate of
|
||||
around 10000 steps per second. If it is requested to move at a speed
|
||||
@@ -266,46 +271,11 @@ configured in Marlin.
|
||||
|
||||
### My TMC motor driver turns off in the middle of a print
|
||||
|
||||
Short answer: Do not use the TMC2208 driver in "standalone mode" with
|
||||
Klipper! Do not use the TMC2224 driver in "stealthchop standalone
|
||||
mode" with Klipper!
|
||||
|
||||
Long answer: Klipper implements very precise timing.
|
||||
|
||||

|
||||
|
||||
In the above picture, if Klipper is requested to move along the red
|
||||
line and if each black line represents the nominal location to step a
|
||||
stepper, then in the middle of that movement Klipper will arrange to
|
||||
take a step, change the step direction, and then step back. Klipper
|
||||
can perform this step, direction change, and step back in a very small
|
||||
amount of time.
|
||||
|
||||
It is our current understanding that the TMC2208 and TMC2224 will
|
||||
react poorly to this when they are in "stealthchop" mode. (It is not
|
||||
believed any other TMC drivers are impacted.) It is believed that when
|
||||
the driver sees the two step requests in a small time frame that it
|
||||
dramatically increases current in anticipation of high acceleration.
|
||||
That high current can trip the driver's internal "over current"
|
||||
detection which causes the driver to disable itself.
|
||||
|
||||
This pattern of steps can occur on all stepper motors and on all
|
||||
robot kinematics.
|
||||
|
||||
The TMC2208 and TMC2224 do work well with Klipper when run-time
|
||||
configuration mode is used (that is, when a wire is routed from the
|
||||
micro-controller to the PDN-UART pin and the printer config file has a
|
||||
corresponding [tmc2208] config section). When using run-time
|
||||
configuration, either configure the drivers to use "spreadcycle mode"
|
||||
or configure them to use "stealthchop mode" with a reasonable
|
||||
"stealthchop threshold". If one wishes to exclusively use
|
||||
"stealthchop" mode with run-time UART configuration then make sure the
|
||||
stealthchop_threshold is no more than about 10% greater than the
|
||||
maximum velocity of the given axis. It is speculated that with a
|
||||
reasonable stealthchop threshold, then if Klipper sends a "step,
|
||||
direction change, step back" sequence, the driver will briefly
|
||||
transition from stealthchop mode, to spreadcycle mode, and back to
|
||||
stealthchop mode, which should be harmless.
|
||||
If using the TMC2208 (or TMC2224) driver in "standalone mode" then
|
||||
make sure to use the
|
||||
[latest version of Klipper](#how-do-i-upgrade-to-the-latest-software). A
|
||||
workaround for a TMC2208 "stealthchop" driver problem was added to
|
||||
Klipper in mid-March of 2020.
|
||||
|
||||
### I keep getting random "Lost communication with MCU" errors
|
||||
|
||||
@@ -430,6 +400,41 @@ support these custom pin numbers - check Marlin's fastio headers (see
|
||||
above) to translate these pin numbers to their standard hardware
|
||||
names.
|
||||
|
||||
### Do I have to wire my device to a specific type of micro-controller pin?
|
||||
|
||||
It depends on the type of device and type of pin:
|
||||
|
||||
ADC pins (or Analog pins): For thermistors and similar "analog"
|
||||
sensors, the device must be wired to an "analog" or "ADC" capable pin
|
||||
on the micro-controller. If you configure Klipper to use a pin that is
|
||||
not analog capable, Klipper will report a "Not a valid ADC pin" error.
|
||||
|
||||
PWM pins (or Timer pins): Klipper does not use hardware PWM by default
|
||||
for any device. So, in general, one may wire heaters, fans, and
|
||||
similar devices to any general purpose IO pin. However, fans and
|
||||
output_pin devices may be optionally configured to use `hardware_pwm:
|
||||
True`, in which case the micro-controller must support hardware PWM on
|
||||
the pin (otherwise, Klipper will report a "Not a valid PWM pin"
|
||||
error). Note that hardware PWM is currently only supported on the avr,
|
||||
atsam, samd21, and linux micro-controllers.
|
||||
|
||||
IRQ pins (or Interrupt pins): Klipper does not use hardware interrupts
|
||||
on IO pins, so it is never necessary to wire a device to one of these
|
||||
micro-controller pins.
|
||||
|
||||
SPI pins: When using hardware SPI it is necessary to wire the pins to
|
||||
the micro-controller's SPI capable pins. However, most devices can be
|
||||
configured to use "software SPI", in which case any general purpose IO
|
||||
pins may be used.
|
||||
|
||||
I2C pins: When using I2C it is necessary to wire the pins to the
|
||||
micro-controller's I2C capable pins.
|
||||
|
||||
Other devices may be wired to any general purpose IO pin. For example,
|
||||
steppers, heaters, fans, Z probes, servos, LEDs, common hd44780/st7920
|
||||
LCD displays, the Trinamic UART control line may be wired to any
|
||||
general purpose IO pin.
|
||||
|
||||
### How do I cancel an M109/M190 "wait for temperature" request?
|
||||
|
||||
Navigate to the OctoPrint terminal tab and issue an M112 command in
|
||||
@@ -441,9 +446,64 @@ terminal tab and issue a FIRMWARE_RESTART command to clear the Klipper
|
||||
error state. After completing this sequence, the previous heating
|
||||
request will be canceled and a new print may be started.
|
||||
|
||||
### Can I find out whether the printer has lost steps?
|
||||
|
||||
In a way, yes. Home the printer, issue a `GET_POSITION` command, run
|
||||
your print, home again and issue another `GET_POSITION`. Then compare
|
||||
the values in the `mcu:` line.
|
||||
|
||||
This might be helpful to tune settings like stepper motor currents,
|
||||
accelerations and speeds without needing to actually print something
|
||||
and waste filament: just run some high-speed moves in between the
|
||||
`GET_POSITION` commands.
|
||||
|
||||
Note that endstop switches themselves tend to trigger at slightly
|
||||
different positions, so a difference of a couple of microsteps is
|
||||
likely the result of endstop inaccuracies. A stepper motor itself can
|
||||
only lose steps in increments of 4 full steps. (So, if one is using 16
|
||||
microsteps, then a lost step on the stepper would result in the "mcu:"
|
||||
step counter being off by a multiple of 64 microsteps.)
|
||||
|
||||
### Why does Klipper report errors? I lost my print!
|
||||
|
||||
Short answer: We want to know if our printers detect a problem so that
|
||||
the underlying issue can be fixed and we can obtain great quality
|
||||
prints. We definitely do not want our printers to silently produce low
|
||||
quality prints.
|
||||
|
||||
Long answer: Klipper has been engineered to automatically workaround
|
||||
many transient problems. For example, it automatically detects
|
||||
communication errors and will retransmit; it schedules actions in
|
||||
advance and buffers commands at multiple layers to enable precise
|
||||
timing even with intermittent interference. However, should the
|
||||
software detect an error that it can not recover from, if it is
|
||||
commanded to take an invalid action, or if it detects it is hopelessly
|
||||
unable to perform its commanded task, then Klipper will report an
|
||||
error. In these situations there is a high risk of producing a
|
||||
low-quality print (or worse). It is hoped that alerting the user will
|
||||
empower them to fix the underlying issue and improve the overall
|
||||
quality of their prints.
|
||||
|
||||
There are some related questions: Why doesn't Klipper pause the print
|
||||
instead? Report a warning instead? Check for errors before the print?
|
||||
Ignore errors in user typed commands? etc? Currently Klipper reads
|
||||
commands using the G-Code protocol, and unfortunately the G-Code
|
||||
command protocol is not flexible enough to make these alternatives
|
||||
practical today. There is developer interest in improving the user
|
||||
experience during abnormal events, but it is expected that will
|
||||
require notable infrastructure work (including a shift away from
|
||||
G-Code).
|
||||
|
||||
### How do I upgrade to the latest software?
|
||||
|
||||
The general way to upgrade is to ssh into the Raspberry Pi and run:
|
||||
The first step to upgrading the software is to review the latest
|
||||
[config changes](Config_Changes.md) document. On occasion, changes are
|
||||
made to the software that require users to update their settings as
|
||||
part of a software upgrade. It is a good idea to review this document
|
||||
prior to upgrading.
|
||||
|
||||
When ready to upgrade, the general method is to ssh into the Raspberry
|
||||
Pi and run:
|
||||
|
||||
```
|
||||
cd ~/klipper
|
||||
@@ -475,29 +535,22 @@ sudo service klipper restart
|
||||
|
||||
If after using this shortcut the software warns about needing to
|
||||
reflash the micro-controller or some other unusual error occurs, then
|
||||
follow the full upgrade steps outlined above. Note that the RESTART
|
||||
and FIRMWARE_RESTART g-code commands do not load new software - the
|
||||
above "sudo service klipper restart" and "make flash" commands are
|
||||
needed for a software change to take effect.
|
||||
follow the full upgrade steps outlined above.
|
||||
|
||||
When upgrading the software, be sure to check the
|
||||
[config changes](Config_Changes.md) document for information on
|
||||
software changes that may require updates to your printer.cfg file.
|
||||
If any errors persist then double check the
|
||||
[config changes](Config_Changes.md) document, as you may need to
|
||||
modify the printer configuration.
|
||||
|
||||
### Can I find out whether the printer has lost steps?
|
||||
Note that the RESTART and FIRMWARE_RESTART g-code commands do not load
|
||||
new software - the above "sudo service klipper restart" and "make
|
||||
flash" commands are needed for a software change to take effect.
|
||||
|
||||
In a way, yes. Home the printer, issue a `GET_POSITION` command, run
|
||||
your print, home again and issue another `GET_POSITION`. Then compare
|
||||
the values in the `mcu:` line.
|
||||
### How do I uninstall Klipper?
|
||||
|
||||
This might be helpful to tune settings like stepper motor currents,
|
||||
accelerations and speeds without needing to actually print something
|
||||
and waste filament: just run some high-speed moves in between the
|
||||
`GET_POSITION` commands.
|
||||
On the firmware end, nothing special needs to happen. Just follow the flashing directions for the new firmware.
|
||||
|
||||
Note that endstop switches themselves tend to trigger at slightly
|
||||
different positions, so a difference of a couple of microsteps is
|
||||
likely the result of endstop inaccuracies. A stepper motor itself can
|
||||
only lose steps in increments of 4 full steps. (So, if one is using 16
|
||||
microsteps, then a lost step on the stepper would result in the "mcu:"
|
||||
step counter being off by a multiple of 64 microsteps.)
|
||||
On the raspberry pi end, an uninstall script is available in [`scripts/klipper-uninstall.sh`](https://github.com/KevinOConnor/klipper/blob/master/scripts/klipper-uninstall.sh). Assuming you cloned `klipper` to `$HOME`
|
||||
```
|
||||
sudo ~/klipper/scripts/klipper-uninstall.sh
|
||||
rm -rf ~/klippy-env ~/klipper
|
||||
```
|
||||
|
||||
@@ -13,8 +13,8 @@ Klipper has several compelling features:
|
||||
movement translates to quieter and more stable printer operation.
|
||||
|
||||
* Best in class performance. Klipper is able to achieve high stepping
|
||||
rates on both new and old micro-controllers. Even an old 8bit AVR
|
||||
micro-controller can obtain rates over 175K steps per second. On
|
||||
rates on both new and old micro-controllers. Even old 8bit
|
||||
micro-controllers can obtain rates over 175K steps per second. On
|
||||
more recent micro-controllers, rates over 500K steps per second are
|
||||
possible. Higher stepper rates enable higher print velocities. The
|
||||
stepper event timing remains precise even at high speeds which
|
||||
@@ -34,6 +34,23 @@ Klipper has several compelling features:
|
||||
is stored in a standard config file which can be easily edited. This
|
||||
makes it easier to setup and maintain the hardware.
|
||||
|
||||
* Klipper supports "Smooth Pressure Advance" - a mechanism to account
|
||||
for the effects of pressure within an extruder. This reduces
|
||||
extruder "ooze" and improves the quality of print corners. Klipper's
|
||||
implementation does not introduce instantaneous extruder speed
|
||||
changes, which improves overall stability and robustness.
|
||||
|
||||
* Klipper supports "Input Shaping" to reduce the impact of vibrations
|
||||
on print quality. This can reduce or eliminate "ringing" (also known
|
||||
as "ghosting", "echoing", or "rippling") in prints. It may also
|
||||
allow one to obtain faster printing speeds while still maintaining
|
||||
high print quality.
|
||||
|
||||
* Klipper uses an "iterative solver" to calculate precise step times
|
||||
from simple kinematic equations. This makes porting Klipper to new
|
||||
types of robots easier and it keeps timing precise even with complex
|
||||
kinematics (no "line segmentation" is needed).
|
||||
|
||||
* Portable code. Klipper works on ARM, AVR, and PRU based
|
||||
micro-controllers. Existing "reprap" style printers can run Klipper
|
||||
without hardware modification - just add a Raspberry Pi. Klipper's
|
||||
@@ -45,19 +62,21 @@ Klipper has several compelling features:
|
||||
heating and thermistor algorithms, etc. are all written in Python.
|
||||
This makes it easier to develop new functionality.
|
||||
|
||||
* Klipper uses an "iterative solver" to calculate precise step times
|
||||
from simple kinematic equations. This makes porting Klipper to new
|
||||
types of robots easier and it keeps timing precise even with complex
|
||||
kinematics (no "line segmentation" is needed).
|
||||
* Custom programmable macros. New G-Code commands can be defined in
|
||||
the printer config file (no code changes are necessary). Those
|
||||
commands are programmable - allowing them to produce different
|
||||
actions depending on the state of the printer.
|
||||
|
||||
* Builtin API server. In addition to the standard G-Code interface,
|
||||
Klipper supports a rich JSON based application interface. This
|
||||
enables programmers to build external applications with detailed
|
||||
control of the printer.
|
||||
|
||||
Additional features
|
||||
===================
|
||||
|
||||
Klipper supports many standard 3d printer features:
|
||||
|
||||
* Klipper implements the "pressure advance" algorithm for extruders.
|
||||
When properly tuned, pressure advance reduces extruder ooze.
|
||||
|
||||
* Works with Octoprint. This allows the printer to be controlled using
|
||||
a regular web-browser. The same Raspberry Pi that runs Klipper can
|
||||
also run Octoprint.
|
||||
@@ -69,13 +88,14 @@ Klipper supports many standard 3d printer features:
|
||||
* Support for multiple extruders. Extruders with shared heaters and
|
||||
extruders on independent carriages (IDEX) are also supported.
|
||||
|
||||
* Support for cartesian, delta, and corexy style printers.
|
||||
* Support for cartesian, delta, corexy, corexz, rotary delta, polar,
|
||||
and cable winch style printers.
|
||||
|
||||
* Automatic bed leveling support. Klipper can be configured for basic
|
||||
bed tilt detection or full mesh bed leveling. If the bed uses
|
||||
multiple Z steppers then Klipper can also level by independently
|
||||
manipulating the Z steppers. Most Z height probes are supported,
|
||||
including servo activated probes.
|
||||
including BL-Touch probes and servo activated probes.
|
||||
|
||||
* Automatic delta calibration support. The calibration tool can
|
||||
perform basic height calibration as well as an enhanced X and Y
|
||||
@@ -83,9 +103,9 @@ Klipper supports many standard 3d printer features:
|
||||
probe or via manual probing.
|
||||
|
||||
* Support for common temperature sensors (eg, common thermistors,
|
||||
AD595, AD849x, PT100, MAX6675, MAX31855, MAX31856, MAX31865). Custom
|
||||
thermistors and custom analog temperature sensors can also be
|
||||
configured.
|
||||
AD595, AD597, AD849x, PT100, PT1000, MAX6675, MAX31855, MAX31856,
|
||||
MAX31865, BME280, HTU21D, and LM75). Custom thermistors and custom
|
||||
analog temperature sensors can also be configured.
|
||||
|
||||
* Basic thermal heater protection enabled by default.
|
||||
|
||||
@@ -98,7 +118,8 @@ Klipper supports many standard 3d printer features:
|
||||
AD5206, MCP4451, MCP4728, MCP4018, and PWM pins.
|
||||
|
||||
* Support for common LCD displays attached directly to the printer. A
|
||||
default menu is also available.
|
||||
default menu is also available. The contents of the display and menu
|
||||
can be fully customized via the config file.
|
||||
|
||||
* Constant acceleration and "look-ahead" support. All printer moves
|
||||
will gradually accelerate from standstill to cruising speed and then
|
||||
@@ -111,6 +132,9 @@ Klipper supports many standard 3d printer features:
|
||||
improve the accuracy of typical endstop switches. When properly
|
||||
tuned it can improve a print's first layer bed adhesion.
|
||||
|
||||
* Support for measuring and recording acceleration using an adxl345
|
||||
accelerometer.
|
||||
|
||||
* Support for limiting the top speed of short "zigzag" moves to reduce
|
||||
printer vibration and noise. See the [kinematics](Kinematics.md)
|
||||
document for more information.
|
||||
@@ -141,7 +165,7 @@ represent total number of steps per second on the micro-controller.
|
||||
| Smoothieboard (LPC1769) | 661K | 661K |
|
||||
| Beaglebone PRU | 680K | 680K |
|
||||
| Duet2 Wifi/Eth (SAM4E8E) | 686K | 686K |
|
||||
| Adafruit Metro M4 (SAMD51) | 733K | 694K |
|
||||
| Adafruit Metro M4 (SAMD51) | 761K | 692K |
|
||||
| BigTreeTech SKR Pro (STM32F407) | 922K | 711K |
|
||||
|
||||
On AVR platforms, the highest achievable step rate is with just one
|
||||
|
||||
262
docs/G-Codes.md
262
docs/G-Codes.md
@@ -9,13 +9,15 @@ Klipper supports the following standard G-Code commands:
|
||||
- Move to origin: `G28 [X] [Y] [Z]`
|
||||
- Turn off motors: `M18` or `M84`
|
||||
- Wait for current moves to finish: `M400`
|
||||
- Select tool: `T<index>`
|
||||
- Use absolute/relative distances for extrusion: `M82`, `M83`
|
||||
- Use absolute/relative coordinates: `G90`, `G91`
|
||||
- Set position: `G92 [X<pos>] [Y<pos>] [Z<pos>] [E<pos>]`
|
||||
- Set speed factor override percentage: `M220 S<percent>`
|
||||
- Set extrude factor override percentage: `M221 S<percent>`
|
||||
- Set acceleration: `M204 S<value>`
|
||||
- Set acceleration: `M204 S<value>` OR `M204 P<value> T<value>`
|
||||
- Note: If S is not specified and both P and T are specified, then
|
||||
the acceleration is set to the minimum of P and T. If only one of
|
||||
P or T is specified, the command has no effect.
|
||||
- Get extruder temperature: `M105`
|
||||
- Set extruder temperature: `M104 [T<index>] [S<temperature>]`
|
||||
- Set extruder temperature and wait: `M109 [T<index>] S<temperature>`
|
||||
@@ -43,8 +45,8 @@ possible G-Code command. Instead, Klipper prefers human readable
|
||||
If one requires a less common G-Code command then it may be possible
|
||||
to implement it with a custom Klipper gcode_macro (see
|
||||
[example-extras.cfg](https://github.com/KevinOConnor/klipper/tree/master/config/example-extras.cfg)
|
||||
for details). For example, one might use this to implement: `G10`,
|
||||
`G11`, `G12`, `G29`, `G30`, `G31`, `M42`, `M80`, `M81`, etc.
|
||||
for details). For example, one might use this to implement: `G12`,
|
||||
`G29`, `G30`, `G31`, `M42`, `M80`, `M81`, `T1`, etc.
|
||||
|
||||
## G-Code SD card commands
|
||||
|
||||
@@ -58,6 +60,25 @@ Klipper also supports the following standard G-Code commands if the
|
||||
- Set SD position: `M26 S<offset>`
|
||||
- Report SD print status: `M27`
|
||||
|
||||
In addition, the following extended commands are availble when the
|
||||
"virtual_sdcard" config section is enabled.
|
||||
- Load a file and start SD print: `SDCARD_PRINT_FILE FILENAME=<filename>`
|
||||
- Unload file and clear SD state: `SDCARD_RESET_FILE`
|
||||
|
||||
## G-Code arcs
|
||||
|
||||
The following standard G-Code commands are available if a "gcode_arcs"
|
||||
config section is enabled:
|
||||
- Controlled Arc Move (G2 or G3): `G2 [X<pos>] [Y<pos>] [Z<pos>]
|
||||
[E<pos>] [F<speed>] I<value> J<value>`
|
||||
|
||||
## G-Code firmware retraction
|
||||
|
||||
The following standard G-Code commands are available if a
|
||||
"firmware_retraction" config section is enabled:
|
||||
- Retract: `G10`
|
||||
- Unretract: `G11`
|
||||
|
||||
## G-Code display commands
|
||||
|
||||
The following standard G-Code commands are available if a "display"
|
||||
@@ -69,8 +90,6 @@ config section is enabled:
|
||||
|
||||
The following standard G-Code commands are currently available, but
|
||||
using them is not recommended:
|
||||
- Offset axes: `M206 [X<offset>] [Y<offset>] [Z<offset>]` (Use
|
||||
SET_GCODE_OFFSET instead.)
|
||||
- Get Endstop Status: `M119` (Use QUERY_ENDSTOPS instead.)
|
||||
|
||||
# Extended G-Code Commands
|
||||
@@ -87,6 +106,11 @@ The following standard commands are supported:
|
||||
- `QUERY_ENDSTOPS`: Probe the axis endstops and report if they are
|
||||
"triggered" or in an "open" state. This command is typically used to
|
||||
verify that an endstop is working correctly.
|
||||
- `QUERY_ADC [NAME=<config_name>] [PULLUP=<value>]`: Report the last
|
||||
analog value received for a configured analog pin. If NAME is not
|
||||
provided, the list of available adc names are reported. If PULLUP is
|
||||
provided (as a value in Ohms), the raw analog value along with the
|
||||
equivalent resistance given that pullup is reported.
|
||||
- `GET_POSITION`: Return information on the current location of the
|
||||
toolhead.
|
||||
- `SET_GCODE_OFFSET [X=<pos>|X_ADJUST=<adjust>]
|
||||
@@ -136,10 +160,25 @@ The following standard commands are supported:
|
||||
- `SET_HEATER_TEMPERATURE HEATER=<heater_name> [TARGET=<target_temperature>]`:
|
||||
Sets the target temperature for a heater. If a target temperature is
|
||||
not supplied, the target is 0.
|
||||
- `ACTIVATE_EXTRUDER EXTRUDER=<config_name>`: In a printer with
|
||||
multiple extruders this command is used to change the active
|
||||
extruder.
|
||||
- `SET_PRESSURE_ADVANCE [EXTRUDER=<config_name>] [ADVANCE=<pressure_advance>]
|
||||
[ADVANCE_LOOKAHEAD_TIME=<pressure_advance_lookahead_time>]`:
|
||||
Set pressure advance parameters. If EXTRUDER is not specified, it
|
||||
defaults to the active extruder.
|
||||
[SMOOTH_TIME=<pressure_advance_smooth_time>]`: Set pressure advance
|
||||
parameters. If EXTRUDER is not specified, it defaults to the active
|
||||
extruder.
|
||||
- `SET_EXTRUDER_STEP_DISTANCE [EXTRUDER=<config_name>] [DISTANCE=<distance>]`:
|
||||
Set a new value for the provided extruder's step_distance. Value is
|
||||
not retained on Klipper reset. Use with caution, small changes can
|
||||
result in excessive pressure between extruder and hot end. Do proper
|
||||
calibration steps with filament before use. If 'DISTANCE' value is
|
||||
not included command will return current step distance.
|
||||
- `SET_STEPPER_ENABLE STEPPER=<config_name> ENABLE=[0|1]`: Enable or
|
||||
disable only the given stepper. This is a diagnostic and debugging
|
||||
tool and must be used with care. Disabling an axis motor does not
|
||||
reset the homing information. Manually moving a disabled stepper may
|
||||
cause the machine to operate the motor outside of safe limits. This
|
||||
can lead to damage to axis components, hot ends, and print surface.
|
||||
- `STEPPER_BUZZ STEPPER=<config_name>`: Move the given stepper forward
|
||||
one mm and then backward one mm, repeated 10 times. This is a
|
||||
diagnostic tool to help verify stepper connectivity.
|
||||
@@ -168,6 +207,12 @@ The following standard commands are supported:
|
||||
adjustment will only be made every BAND millimeters of z height - in
|
||||
that case the formula used is `value = start + factor *
|
||||
((floor(z_height / band) + .5) * band)`.
|
||||
- `SET_DISPLAY_GROUP [DISPLAY=<display>] GROUP=<group>`: Set the
|
||||
active display group of an lcd display. This allows to define
|
||||
multiple display data groups in the config,
|
||||
e.g. `[display_data <group> <elementname>]` and switch between them
|
||||
using this extended gcode command. If DISPLAY is not specified it
|
||||
defaults to "display" (the primary display).
|
||||
- `SET_IDLE_TIMEOUT [TIMEOUT=<timeout>]`: Allows the user to set the
|
||||
idle timeout (in seconds).
|
||||
- `RESTART`: This will cause the host software to reload its config
|
||||
@@ -197,26 +242,40 @@ is enabled:
|
||||
|
||||
The following command is available when an "output_pin" config section
|
||||
is enabled:
|
||||
- `SET_PIN PIN=config_name VALUE=<value>`
|
||||
- `SET_PIN PIN=config_name VALUE=<value> CYCLE_TIME=<cycle_time>`
|
||||
|
||||
Note: Hardware PWM does not currently support the CYCLE_TIME parameter and will
|
||||
use the cycle time defined in the config.
|
||||
|
||||
## Manually Controlled Fans Commands
|
||||
|
||||
The following command is available when a "fan_generic" config section
|
||||
is enabled:
|
||||
- `SET_FAN_SPEED FAN=config_name SPEED=<speed>` This command sets
|
||||
the speed of a fan. <speed> must be between 0.0 and 1.0.
|
||||
|
||||
## Neopixel and Dotstar Commands
|
||||
|
||||
The following command is available when "neopixel" or "dotstar" config
|
||||
sections are enabled:
|
||||
- `SET_LED LED=<config_name> INDEX=<index> RED=<value> GREEN=<value>
|
||||
BLUE=<value>`: This sets the LED output. Each color <value> must be
|
||||
between 0.0 and 1.0. If multiple LED chips are daisy-chained then
|
||||
one may specify INDEX to alter the color of just the given chip (1
|
||||
for the first chip, 2 for the second, etc.). If INDEX is not
|
||||
provided then all LEDs in the daisy-chain will be set to the
|
||||
provided color.
|
||||
- `SET_LED LED=<config_name> RED=<value> GREEN=<value> BLUE=<value>
|
||||
[INDEX=<index>] [TRANSMIT=0]`: This sets the LED output. Each color
|
||||
<value> must be between 0.0 and 1.0. If multiple LED chips are
|
||||
daisy-chained then one may specify INDEX to alter the color of just
|
||||
the given chip (1 for the first chip, 2 for the second, etc.). If
|
||||
INDEX is not provided then all LEDs in the daisy-chain will be set
|
||||
to the provided color. If TRANSMIT=0 is specified then the color
|
||||
change will only be made on the next SET_LED command that does not
|
||||
specify TRANSMIT=0; this may be useful in combination with the INDEX
|
||||
parameter to batch multiple updates in a daisy-chain.
|
||||
|
||||
## Servo Commands
|
||||
|
||||
The following commands are available when a "servo" config section is
|
||||
enabled:
|
||||
- `SET_SERVO SERVO=config_name [WIDTH=<seconds>] [ENABLE=<0|1>]`
|
||||
- `SET_SERVO SERVO=config_name [ANGLE=<degrees>] [ENABLE=<0|1>]`
|
||||
- `SET_SERVO SERVO=config_name [ANGLE=<degrees> | WIDTH=<seconds>]`:
|
||||
Set the servo position to the given angle (in degrees) or pulse
|
||||
width (in seconds). Use `WIDTH=0` to disable the servo output.
|
||||
|
||||
## Manual stepper Commands
|
||||
|
||||
@@ -224,23 +283,37 @@ The following command is available when a "manual_stepper" config
|
||||
section is enabled:
|
||||
- `MANUAL_STEPPER STEPPER=config_name [ENABLE=[0|1]]
|
||||
[SET_POSITION=<pos>] [SPEED=<speed>] [ACCEL=<accel>]
|
||||
[MOVE=<pos> [STOP_ON_ENDSTOP=1]]`: This command will alter the state
|
||||
of the stepper. Use the ENABLE parameter to enable/disable the
|
||||
stepper. Use the SET_POSITION parameter to force the stepper to
|
||||
think it is at the given position. Use the MOVE parameter to request
|
||||
a movement to the given position. If SPEED and/or ACCEL is specified
|
||||
then the given values will be used instead of the defaults specified
|
||||
in the config file. If an ACCEL of zero is specified then no
|
||||
acceleration will be preformed. If STOP_ON_ENDSTOP is specified then
|
||||
the move will end early should the endstop report as triggered (use
|
||||
STOP_ON_ENDSTOP=-1 to stop early should the endstop report not
|
||||
triggered).
|
||||
[MOVE=<pos> [STOP_ON_ENDSTOP=[1|2|-1|-2]] [SYNC=0]]`: This command
|
||||
will alter the state of the stepper. Use the ENABLE parameter to
|
||||
enable/disable the stepper. Use the SET_POSITION parameter to force
|
||||
the stepper to think it is at the given position. Use the MOVE
|
||||
parameter to request a movement to the given position. If SPEED
|
||||
and/or ACCEL is specified then the given values will be used instead
|
||||
of the defaults specified in the config file. If an ACCEL of zero is
|
||||
specified then no acceleration will be performed. If
|
||||
STOP_ON_ENDSTOP=1 is specified then the move will end early should
|
||||
the endstop report as triggered (use STOP_ON_ENDSTOP=2 to complete
|
||||
the move without error even if the endstop does not trigger, use -1
|
||||
or -2 to stop when the endstop reports not triggered). Normally
|
||||
future G-Code commands will be scheduled to run after the stepper
|
||||
move completes, however if a manual stepper move uses SYNC=0 then
|
||||
future G-Code movement commands may run in parallel with the stepper
|
||||
movement.
|
||||
|
||||
## Extruder stepper Commands
|
||||
|
||||
The following command is available when an "extruder_stepper" config
|
||||
section is enabled:
|
||||
- `SYNC_STEPPER_TO_EXTRUDER STEPPER=<extruder_stepper config_name>
|
||||
[EXTRUDER=<extruder config_name>]`: This command will cause the given
|
||||
STEPPER to become synchronized to the given EXTRUDER, overriding
|
||||
the extruder defined in the "extruder_stepper" config section.
|
||||
|
||||
## Probe
|
||||
|
||||
The following commands are available when a "probe" config section is
|
||||
enabled:
|
||||
- `PROBE [PROBE_SPEED=<mm/s>] [SAMPLES=<count>]
|
||||
- `PROBE [PROBE_SPEED=<mm/s>] [LIFT_SPEED=<mm/s>] [SAMPLES=<count>]
|
||||
[SAMPLE_RETRACT_DIST=<mm>] [SAMPLES_TOLERANCE=<mm>]
|
||||
[SAMPLES_TOLERANCE_RETRIES=<count>]
|
||||
[SAMPLES_RESULT=median|average]`: Move the nozzle downwards until
|
||||
@@ -261,7 +334,9 @@ enabled:
|
||||
helper script useful for calibrating the probe's z_offset. See the
|
||||
PROBE command for details on the optional probe parameters. See the
|
||||
MANUAL_PROBE command for details on the SPEED parameter and the
|
||||
additional commands available while the tool is active.
|
||||
additional commands available while the tool is active. Please note,
|
||||
the PROBE_CALIBRATE command uses the speed variable to move in XY direction
|
||||
as well as Z.
|
||||
|
||||
## BLTouch
|
||||
|
||||
@@ -269,7 +344,14 @@ The following command is available when a "bltouch" config section is
|
||||
enabled:
|
||||
- `BLTOUCH_DEBUG COMMAND=<command>`: This sends a command to the
|
||||
BLTouch. It may be useful for debugging. Available commands are:
|
||||
pin_down, touch_mode, pin_up, self_test, reset.
|
||||
`pin_down`, `touch_mode`, `pin_up`, `self_test`, `reset`,
|
||||
(*1): `set_5V_output_mode`, `set_OD_output_mode`, `output_mode_store`
|
||||
|
||||
*** Note that the commands marked by (*1) are solely supported
|
||||
by a BL-Touch V3.0 or V3.1(+)
|
||||
|
||||
- `BLTOUCH_STORE MODE=<output_mode>`: This stores an output mode in the
|
||||
EEPROM of a BLTouch V3.1 Available output_modes are: `5V`, `OD`
|
||||
|
||||
See [Working with the BL-Touch](BLTouch.md) for more details.
|
||||
|
||||
@@ -303,7 +385,8 @@ section is enabled:
|
||||
|
||||
The following commands are available when the "bed_mesh" config
|
||||
section is enabled:
|
||||
- `BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>]`:
|
||||
- `BED_MESH_CALIBRATE [METHOD=manual] [<probe_parameter>=<value>]
|
||||
[<mesh_parameter>=<value>]`:
|
||||
This command probes the bed using generated points specified by the
|
||||
parameters in the config. After probing, a mesh is generated and
|
||||
z-movement is adjusted according to the mesh. See the PROBE command
|
||||
@@ -311,15 +394,15 @@ section is enabled:
|
||||
specified then the manual probing tool is activated - see the
|
||||
MANUAL_PROBE command above for details on the additional commands
|
||||
available while this tool is active.
|
||||
- `BED_MESH_OUTPUT`: This command outputs the current probed z values
|
||||
and current mesh values to the terminal.
|
||||
- `BED_MESH_MAP`: This command probes the bed in a similar fashion
|
||||
to BED_MESH_CALIBRATE, however no mesh is generated. Instead,
|
||||
the probed z values are serialized to json and output to the
|
||||
terminal. This allows octoprint plugins to easily capture the
|
||||
data and generate maps approximating the bed's surface. Note
|
||||
that although no mesh is generated, any currently stored mesh
|
||||
will be cleared.
|
||||
- `BED_MESH_OUTPUT PGP=[<0:1>]`: This command outputs the current probed
|
||||
z values and current mesh values to the terminal. If PGP=1 is specified
|
||||
the x,y coordinates generated by bed_mesh, along with their associated
|
||||
indices, will be output to the terminal.
|
||||
- `BED_MESH_MAP`: Like to BED_MESH_OUTPUT, this command prints the current
|
||||
state of the mesh to the terminal. Instead of printing the values in a
|
||||
human readable format, the state is serialized in json format. This allows
|
||||
octoprint plugins to easily capture the data and generate height maps
|
||||
approximating the bed's surface.
|
||||
- `BED_MESH_CLEAR`: This command clears the mesh and removes all
|
||||
z adjustment. It is recommended to put this in your end-gcode.
|
||||
- `BED_MESH_PROFILE LOAD=<name> SAVE=<name> REMOVE=<name>`: This
|
||||
@@ -409,13 +492,15 @@ section is enabled:
|
||||
the given distance (in mm) at the given constant velocity (in
|
||||
mm/s). If ACCEL is specified and is greater than zero, then the
|
||||
given acceleration (in mm/s^2) will be used; otherwise no
|
||||
acceleration is performed. No boundary checks are performed; no
|
||||
kinematic updates are made; other parallel steppers on an axis will
|
||||
not be moved. Use caution as an incorrect command could cause
|
||||
damage! Using this command will almost certainly place the low-level
|
||||
kinematics in an incorrect state; issue a G28 afterwards to reset
|
||||
the kinematics. This command is intended for low-level diagnostics
|
||||
and debugging.
|
||||
acceleration is performed. If acceleration is not performed then it
|
||||
can lead to the micro-controller reporting "No next step" errors
|
||||
(avoid these errors by specifying an ACCEL value or use a very low
|
||||
VELOCITY). No boundary checks are performed; no kinematic updates
|
||||
are made; other parallel steppers on an axis will not be moved. Use
|
||||
caution as an incorrect command could cause damage! Using this
|
||||
command will almost certainly place the low-level kinematics in an
|
||||
incorrect state; issue a G28 afterwards to reset the kinematics.
|
||||
This command is intended for low-level diagnostics and debugging.
|
||||
- `SET_KINEMATIC_POSITION [X=<value>] [Y=<value>] [Z=<value>]`: Force
|
||||
the low-level kinematic code to believe the toolhead is at the given
|
||||
cartesian position. This is a diagnostic and debugging command; use
|
||||
@@ -530,3 +615,80 @@ been enabled:
|
||||
delay duration for the identified [delayed_gcode] and starts the timer
|
||||
for gcode execution. A value of 0 will cancel a pending delayed gcode
|
||||
from executing.
|
||||
|
||||
## Resonance compensation
|
||||
|
||||
The following command is enabled if an [input_shaper] config section has
|
||||
been enabled:
|
||||
- `SET_INPUT_SHAPER [SHAPER_FREQ_X=<shaper_freq_x>]
|
||||
[SHAPER_FREQ_Y=<shaper_freq_y>] [DAMPING_RATIO_X=<damping_ratio_x>]
|
||||
[DAMPING_RATIO_Y=<damping_ratio_y>] [SHAPER_TYPE=<shaper>]
|
||||
[SHAPER_TYPE_X=<shaper_type_x>] [SHAPER_TYPE_Y=<shaper_type_y>]`: Modify
|
||||
input shaper parameters. Note that SHAPER_TYPE parameter resets input shaper
|
||||
for both X and Y axes even if different shaper types have been configured
|
||||
in [input_shaper] section. SHAPER_TYPE cannot be used together with either
|
||||
of SHAPER_TYPE_X and SHAPER_TYPE_Y parameters. See
|
||||
[example-extras.cfg](https://github.com/KevinOConnor/klipper/tree/master/config/example-extras.cfg)
|
||||
for more details on each of these parameters.
|
||||
|
||||
## Temperature Fan Commands
|
||||
|
||||
The following command is available when a "temperature_fan" config
|
||||
section is enabled:
|
||||
- `SET_TEMPERATURE_FAN_TARGET temperature_fan=<temperature_fan_name>
|
||||
[target=<target_temperature>]`: Sets the target temperature for a
|
||||
temperature_fan. If a target is not supplied, it is set to the
|
||||
specified temperature in the config file.
|
||||
|
||||
## Adxl345 Accelerometer Commands
|
||||
|
||||
The following commands are available when an "adxl345" config section is
|
||||
enabled:
|
||||
- `ACCELEROMETER_MEASURE [CHIP=<config_name>] [RATE=<value>]
|
||||
[NAME=<value>]`: Starts accelerometer measurements at the requested
|
||||
number of samples per second. If CHIP is not specified it defaults
|
||||
to "default". Valid rates are 25, 50, 100, 200, 400, 800, 1600,
|
||||
and 3200. The command works in a start-stop mode: when executed for
|
||||
the first time, it starts the measurements, next execution stops them.
|
||||
If RATE is not specified, then the default value is used (either from
|
||||
`printer.cfg` or `3200` default value). The results of measurements
|
||||
are written to a file named `/tmp/adxl345-<name>.csv` where "<name>"
|
||||
is the optional NAME parameter. If NAME is not specified it defaults
|
||||
to the current time in "YYYYMMDD_HHMMSS" format.
|
||||
- `ACCELEROMETER_QUERY [CHIP=<config_name>] [RATE=<value>]`: queries
|
||||
accelerometer for the current value. If CHIP is not specified it
|
||||
defaults to "default". If RATE is not specified, the default value is
|
||||
used. This command is useful to test the connection to the ADXL345
|
||||
accelerometer: one of the returned values should be a free-fall
|
||||
acceleration (+/- some noise of the chip).
|
||||
|
||||
## Resonance Testing Commands
|
||||
|
||||
The following commands are available when a "resonance_tester" config section
|
||||
is enabled:
|
||||
- `MEASURE_AXES_NOISE`: Measures and outputs the noise for all axes of all
|
||||
enabled accelerometer chips.
|
||||
- `TEST_RESONANCES AXIS=<axis> OUTPUT=<resonances,raw_data> [NAME=<name>]
|
||||
[FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>]`:
|
||||
Runs the resonance test in all configured probe points for the requested
|
||||
axis (X or Y) and measures the acceleration using the accelerometer chips
|
||||
configured for the respective axis. `OUTPUT` parameter is a comma-separated
|
||||
list of which outputs will be written. If `raw_data` is requested, then the
|
||||
raw accelerometer data is written into a file or a series of files
|
||||
`/tmp/raw_data_<axis>_[<point>_]<name>.csv` with (`<point>_` part of
|
||||
the name generated only if more than 1 probe point is configured). If
|
||||
`resonances` is specified, the frequency response is calculated (across
|
||||
all probe points) and written into `/tmp/resonances_<axis>_<name>.csv`
|
||||
file. If unset, OUTPUT defaults to `resonances`, and NAME defaults to
|
||||
the current time in "YYYYMMDD_HHMMSS" format.
|
||||
- `SHAPER_CALIBRATE [AXIS=<axis>] [NAME=<name>]
|
||||
[FREQ_START=<min_freq>] [FREQ_END=<max_freq>] [HZ_PER_SEC=<hz_per_sec>]`:
|
||||
Similarly to `TEST_RESONANCES`, runs the resonance test as configured, and
|
||||
tries to find the optimal parameters for the input shaper for the requested
|
||||
axis (or both X and Y axes if `AXIS` parameter is unset). The results of the
|
||||
tuning are printed to the console, and the frequency responses and the
|
||||
different input shapers values are written to a CSV file(s)
|
||||
`/tmp/calibration_data_<axis>_<name>.csv`. Unless specified, NAME defaults
|
||||
to the current time in "YYYYMMDD_HHMMSS" format. Note that the suggested
|
||||
input shaper parameters can be persisted in the config by issuing
|
||||
`SAVE_CONFIG` command.
|
||||
|
||||
122
docs/HallFilamentWidthSensor.md
Normal file
122
docs/HallFilamentWidthSensor.md
Normal file
@@ -0,0 +1,122 @@
|
||||
This document describes Filament Width Sensor host module. Hardware used for developing this host module is based on Two Hall liniar sensors (ss49e for example). Sensors in the body are located opposite sides. Principle of operation : two hall sensors work in differential mode, temperature drift same for sensor. Special temperature compensation not needed. You can find designs at [thingiverse.com](https://www.thingiverse.com/thing:4138933)
|
||||
|
||||
[Hall based filament width sensor assembly video](https://www.youtube.com/watch?v=TDO9tME8vp4)
|
||||
|
||||
## How does it work?
|
||||
Sensor generates two analog output based on calculated filament width. Sum of output voltage always equals to detected filament width . Host module monitors voltage changes and adjusts extrusion multiplier. I use aux2 connector on ramps-like board analog11 and analog12 pins. You can use different pins and differenr boards
|
||||
|
||||
## Configuration
|
||||
|
||||
[hall_filament_width_sensor]
|
||||
|
||||
adc1: analog11
|
||||
adc2: analog12
|
||||
# adc1 and adc2 channels select own pins Analog input pins on 3d printer board
|
||||
# Sensor power supply can be 3.3v or 5v
|
||||
|
||||
Cal_dia1: 1.50 # Reference diameter point 1 (mm)
|
||||
Cal_dia2: 2.00 # Reference diameter point 2 (mm)
|
||||
|
||||
# The measurement principle provides for two-point calibration
|
||||
# In calibration process you must use rods of known diameter
|
||||
# I use drill rods as the base diameter.
|
||||
# nominal filament diameter must be between Cal_dia1 and Cal_dia2
|
||||
# Your size may differ from the indicated ones, for example 2.05
|
||||
|
||||
Raw_dia1:10630 # Raw sensor value for reference point 1
|
||||
Raw_dia2:8300 # Raw sensor value for reference point 2
|
||||
|
||||
# Raw value of sensor in units
|
||||
# can be readed by command QUERY_RAW_FILAMENT_WIDTH
|
||||
|
||||
default_nominal_filament_diameter: 1.75 # This parameter is in millimeters (mm)
|
||||
|
||||
max_difference: 0.15
|
||||
# Maximum allowed filament diameter difference in millimeters (mm)
|
||||
# If difference between nominal filament diameter and sensor output is more
|
||||
# than +- max_difference, extrusion multiplier set back to %100
|
||||
|
||||
measurement_delay: 70
|
||||
# The distance from sensor to the melting chamber/hot-end in millimeters (mm).
|
||||
# The filament between the sensor and the hot-end will be treated as the default_nominal_filament_diameter.
|
||||
# Host module works with FIFO logic. It keeps each sensor value and position in
|
||||
# an array and POP them back in correct position.
|
||||
|
||||
#enable:False
|
||||
# Sensor enabled or disabled after power on. Disabled by default
|
||||
|
||||
# measurement_interval:10
|
||||
# Sensor readings done with 10 mm intervals by default. If necessary you are free to change this setting
|
||||
|
||||
#logging: False
|
||||
# Out diameter to terminal and klipper.log
|
||||
# can be turn on|of by command
|
||||
|
||||
#Virtual filament_switch_sensor suppurt. Create sensor named hall_filament_width_sensor.
|
||||
#
|
||||
#min_diameter:1.0
|
||||
#Minimal diameter for trigger virtual filament_switch_sensor.
|
||||
#use_current_dia_while_delay: False
|
||||
# Use the current diameter instead of the nominal diamenter while the measurement delay has not run through.
|
||||
#
|
||||
#Values from filament_switch_sensor. See the "filament_switch_sensor" section for information on these parameters.
|
||||
#
|
||||
#pause_on_runout: True
|
||||
#runout_gcode:
|
||||
#insert_gcode:
|
||||
#event_delay: 3.0
|
||||
#pause_delay: 0.5
|
||||
|
||||
|
||||
## Commands
|
||||
**QUERY_FILAMENT_WIDTH** - Return the current measured filament width as result
|
||||
|
||||
**RESET_FILAMENT_WIDTH_SENSOR** – Clear all sensor readings. Can be used after filament change.
|
||||
|
||||
**DISABLE_FILAMENT_WIDTH_SENSOR** – Turn off the filament width sensor and stop using it to do flow control
|
||||
|
||||
**ENABLE_FILAMENT_WIDTH_SENSOR** - Turn on the filament width sensor and start using it to do flow control
|
||||
|
||||
**QUERY_RAW_FILAMENT_WIDTH** Return the current ADC channel values and RAW sensor value for calibration points
|
||||
|
||||
**ENABLE_FILAMENT_WIDTH_LOG** - Turn on diameter logging
|
||||
|
||||
**DISABLE_FILAMENT_WIDTH_LOG** - Turn off diameter logging
|
||||
|
||||
## Menu variables
|
||||
|
||||
**hall_filament_width_sensor.Diameter** current measured filament width in mm
|
||||
|
||||
**hall_filament_width_sensor.Raw** current raw measured filament width in units
|
||||
|
||||
**hall_filament_width_sensor.is_active** Sensor on or off
|
||||
|
||||
## Template for menu variables
|
||||
[menu __main __filament __width_current]
|
||||
type: command
|
||||
enable: {'hall_filament_width_sensor' in printer}
|
||||
name: Dia: {'%.2F' % printer.hall_filament_width_sensor.Diameter}
|
||||
index: 0
|
||||
|
||||
[menu __main __filament __raw_width_current]
|
||||
type: command
|
||||
enable: {'hall_filament_width_sensor' in printer}
|
||||
name: Raw: {'%4.0F' % printer.hall_filament_width_sensor.Raw}
|
||||
index: 1
|
||||
|
||||
## Calibration procedure
|
||||
Insert first calibration rod (1.5 mm size) get first raw sensor value
|
||||
|
||||
To get raw sensor value you can use menu item or **QUERY_RAW_FILAMENT_WIDTH** command in terminal
|
||||
|
||||
Insert second calibration rod (2.0 mm size) get second raw sensor value
|
||||
|
||||
Save raw values in config
|
||||
|
||||
## How to enable sensor
|
||||
After power on by default sensor disabled.
|
||||
Enable sensor in start g-code by command **ENABLE_FILAMENT_WIDTH_SENSOR** or change enable parameter in config
|
||||
|
||||
## Logging
|
||||
After power on by default diameter Logging disabled.
|
||||
Data to log added on every measurement interval (10 mm by default)
|
||||
@@ -1,7 +1,6 @@
|
||||
These instructions assume the software will run on a Raspberry Pi
|
||||
computer in conjunction with OctoPrint. It is recommended that a
|
||||
Raspberry Pi 2 or Raspberry Pi 3 computer be used as the host machine
|
||||
(see the
|
||||
Raspberry Pi 2, 3, or 4 computer be used as the host machine (see the
|
||||
[FAQ](FAQ.md#can-i-run-klipper-on-something-other-than-a-raspberry-pi-3)
|
||||
for other machines).
|
||||
|
||||
@@ -14,11 +13,11 @@ Prepping an OS image
|
||||
====================
|
||||
|
||||
Start by installing [OctoPi](https://github.com/guysoft/OctoPi) on the
|
||||
Raspberry Pi computer. Use OctoPi v0.16.0 or later - see the
|
||||
Raspberry Pi computer. Use OctoPi v0.17.0 or later - see the
|
||||
[octopi releases](https://github.com/guysoft/OctoPi/releases) for
|
||||
release information. One should verify that OctoPi boots and that the
|
||||
OctoPrint web server works. After connecting to the OctoPrint web
|
||||
page, follow the prompt to upgrade OctoPrint to v1.3.11 or later.
|
||||
page, follow the prompt to upgrade OctoPrint to v1.4.2 or later.
|
||||
|
||||
After installing OctoPi and upgrading OctoPrint, it will be necessary
|
||||
to ssh into the target machine to run a handful of system commands. If
|
||||
|
||||
@@ -92,10 +92,6 @@ desired speed that a 90° corner should have (the "square corner
|
||||
velocity"), and the junction speeds for other angles are derived from
|
||||
that.
|
||||
|
||||
Klipper implements look-ahead between moves that have similar extruder
|
||||
flow rates. Other moves are relatively rare and implementing
|
||||
look-ahead between them is unnecessary.
|
||||
|
||||
Key formula for look-ahead:
|
||||
```
|
||||
end_velocity^2 = start_velocity^2 + 2*accel*move_distance
|
||||
@@ -268,35 +264,37 @@ through the nozzle orifice (as in
|
||||
key idea is that the relationship between filament, pressure, and flow
|
||||
rate can be modeled using a linear coefficient:
|
||||
```
|
||||
stepper_position = requested_e_position + pressure_advance_coefficient * nominal_extruder_velocity
|
||||
pa_position = nominal_position + pressure_advance_coefficient * nominal_velocity
|
||||
```
|
||||
|
||||
See the [pressure advance](Pressure_Advance.md) document for
|
||||
information on how to find this pressure advance coefficient.
|
||||
|
||||
Once configured, Klipper will push in an additional amount of filament
|
||||
during acceleration. The higher the desired filament flow rate, the
|
||||
more filament must be pushed in during acceleration to account for
|
||||
pressure. During head deceleration the extra filament is retracted
|
||||
(the extruder will have a negative velocity).
|
||||
The basic pressure advance formula can cause the extruder motor to
|
||||
make sudden velocity changes. Klipper implements "smoothing" of the
|
||||
extruder movement to avoid this.
|
||||
|
||||

|
||||

|
||||
|
||||
One may notice that the pressure advance algorithm can cause the
|
||||
extruder motor to make sudden velocity changes. This is tolerated
|
||||
based on the idea that the majority of the inertia in the system is in
|
||||
changing the extruder pressure. As long as the extruder pressure does
|
||||
not change rapidly the sudden changes in extruder motor velocity are
|
||||
tolerated.
|
||||
The above graph shows an example of two extrusion moves with a
|
||||
non-zero cornering velocity between them. Note that the pressure
|
||||
advance system causes additional filament to be pushed into the
|
||||
extruder during acceleration. The higher the desired filament flow
|
||||
rate, the more filament must be pushed in during acceleration to
|
||||
account for pressure. During head deceleration the extra filament is
|
||||
retracted (the extruder will have a negative velocity).
|
||||
|
||||
One area where sudden velocity changes become problematic is during
|
||||
small changes in head speed due to cornering.
|
||||
The "smoothing" is implemented using a weighted average of the
|
||||
extruder position over a small time period (as specified by the
|
||||
`pressure_advance_smooth_time` config parameter). This averaging can
|
||||
span multiple g-code moves. Note how the extruder motor will start
|
||||
moving prior to the nominal start of the first extrusion move and will
|
||||
continue to move after the nominal end of the last extrusion move.
|
||||
|
||||

|
||||
|
||||
To prevent this, the Klipper pressure advance code utilizes the move
|
||||
look-ahead queue to detect intermittent speed changes. During a
|
||||
deceleration event the code finds the maximum upcoming head speed
|
||||
within a configurable time window. The pressure is then only adjusted
|
||||
to this found maximum. This can greatly reduce (or even completely
|
||||
eliminate) pressure changes during cornering.
|
||||
Key formula for "smoothed pressure advance":
|
||||
```
|
||||
smooth_pa_position(t) =
|
||||
( definitive_integral(pa_position(x) * (smooth_time/2 - abs(t - x)) * dx,
|
||||
from=t-smooth_time/2, to=t+smooth_time/2)
|
||||
/ (smooth_time/2)^2 )
|
||||
```
|
||||
|
||||
@@ -133,15 +133,13 @@ This section lists some commonly used config commands.
|
||||
see the description of the 'set_pwm_out' and 'config_digital_out'
|
||||
commands for parameter description.
|
||||
|
||||
* `config_soft_pwm_out oid=%c pin=%u cycle_ticks=%u value=%c
|
||||
* `config_soft_pwm_out oid=%c pin=%u value=%c
|
||||
default_value=%c max_duration=%u` : This command creates an internal
|
||||
micro-controller object for software implemented PWM. Unlike
|
||||
hardware pwm pins, a software pwm object does not require any
|
||||
special hardware support (other than the ability to configure the
|
||||
pin as a digital output GPIO). Because the output switching is
|
||||
implemented in the micro-controller software, it is recommended that
|
||||
the cycle_ticks parameter correspond to a time of 10ms or greater.
|
||||
See the description of the 'set_pwm_out' and 'config_digital_out'
|
||||
pin as a digital output GPIO). See the description of
|
||||
the 'set_pwm_out' and 'config_digital_out'
|
||||
commands for parameter description.
|
||||
|
||||
* `config_analog_in oid=%c pin=%u` : This command is used to configure
|
||||
@@ -203,9 +201,13 @@ only of interest to developers looking to gain insight into Klipper.
|
||||
a hardware PWM output pin. See the 'schedule_digital_out' and
|
||||
'config_pwm_out' commands for more info.
|
||||
|
||||
* `schedule_soft_pwm_out oid=%c clock=%u on_ticks=%u` : Schedules a
|
||||
change to a software PWM output pin. See the 'schedule_digital_out'
|
||||
and 'config_soft_pwm_out' commands for more info.
|
||||
* `schedule_soft_pwm_out oid=%c clock=%u on_ticks=%u off_ticks=%u` : Schedules a
|
||||
change to a software PWM output pin. The parameters 'on_ticks' and 'off_ticks'
|
||||
define for how many ticks the pin will be on and off, respectively.
|
||||
Because the output switching is implemented in the micro-controller software,
|
||||
it is recommended that the sum of on_ticks and off_ticks parameters
|
||||
corresponds to a time of 10ms or greater. See the 'schedule_digital_out' and
|
||||
'config_soft_pwm_out' commands for more info.
|
||||
|
||||
* `query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c
|
||||
rest_ticks=%u min_value=%hu max_value=%hu` : This command sets up a
|
||||
|
||||
@@ -11,9 +11,11 @@ limiting factor. If one is using Trinamic stepper motor drivers then
|
||||
consider enabling [endstop phase](Endstop_Phase.md) detection to
|
||||
improve the accuracy of the switch.
|
||||
|
||||
To perform a Z endstop calibration, home the printer, move the head to
|
||||
a position near the center of the bed, navigate to the OctoPrint
|
||||
terminal tab, and run:
|
||||
To perform a Z endstop calibration, home the printer, command the head
|
||||
to move to a Z position that is at least five millimeters above the
|
||||
bed (if it is not already), command the head to move to an XY position
|
||||
near the center of the bed, then navigate to the OctoPrint terminal
|
||||
tab and run:
|
||||
```
|
||||
Z_ENDSTOP_CALIBRATE
|
||||
```
|
||||
@@ -142,8 +144,8 @@ This is another way to calibrate the bed level using the bed probe. To
|
||||
use it you must have a Z probe (BL Touch, Inductive sensor, etc).
|
||||
|
||||
To enable this feature, one would determine the nozzle coordinates
|
||||
near the screws and add them to the config file. For example, it might
|
||||
look like:
|
||||
such that the Z probe is above the screws, and then add them to the
|
||||
config file. For example, it might look like:
|
||||
|
||||
```
|
||||
[screws_tilt_adjust]
|
||||
@@ -183,3 +185,9 @@ This means that:
|
||||
|
||||
Repeat the process several times until you get a good level bed -
|
||||
normally when all adjustments are below 6 minutes.
|
||||
|
||||
If using a probe that is mounted on the side of the hotend (that is,
|
||||
it has an X or Y offset) then note that adjusting the bed tilt will
|
||||
invalidate any previous probe calibration that was performed with a
|
||||
tilted bed. Be sure to run [probe calibration](Probe_Calibrate.md)
|
||||
after the bed screws have been adjusted.
|
||||
|
||||
348
docs/Measuring_Resonances.md
Normal file
348
docs/Measuring_Resonances.md
Normal file
@@ -0,0 +1,348 @@
|
||||
Measuring Resonances
|
||||
====================
|
||||
|
||||
Klipper has built-in support for ADXL345 accelerometer, which can be used to
|
||||
measure resonance frequencies of the printer for different axes, and auto-tune
|
||||
[input shapers](Resonance_Compensation.md) to compensate for resonances.
|
||||
Note that using ADXL345 requires some soldering and crimping. ADXL345 can be
|
||||
connected to a Raspberry Pi directly, or to an SPI interface of an MCU
|
||||
board (it needs to be reasonably fast).
|
||||
|
||||
|
||||
Installation instructions
|
||||
===========================
|
||||
|
||||
## Wiring
|
||||
|
||||
You need to connect ADXL345 to your Raspberry Pi via SPI. Note that the I2C
|
||||
connection, which is suggested by ADXL345 documentation, has too low throughput
|
||||
and **will not work**. The recommended connection scheme:
|
||||
|
||||
| ADXL345 pin | RPi pin | RPi pin name |
|
||||
|:--:|:--:|:--:|
|
||||
| 3V3 (or VCC) | 01 | 3.3v DC power |
|
||||
| GND | 06 | Ground |
|
||||
| CS | 24 | GPIO08 (SPI0_CE0_N) |
|
||||
| SDO | 21 | GPIO09 (SPI0_MISO) |
|
||||
| SDA | 19 | GPIO10 (SPI0_MOSI) |
|
||||
| SCL | 23 | GPIO11 (SPI0_SCLK) |
|
||||
|
||||
Fritzing wiring diagrams for some of the ADXL345 boards:
|
||||
|
||||

|
||||
|
||||
|
||||
Double-check your wiring before powering up the Raspberry Pi to prevent
|
||||
damaging it or the accelerometer.
|
||||
|
||||
## Mounting the accelerometer
|
||||
|
||||
The accelerometer must be attached to the toolhead. One needs to design a proper
|
||||
mount that fits their own 3D printer. It is better to align the axes of the
|
||||
accelerometer with the printer's axes (but if it makes it more convenient,
|
||||
axes can be swapped - i.e. no need to align X axis with X and so forth - it
|
||||
should be fine even if Z axis of accelerometer is X axis of the printer, etc.).
|
||||
|
||||
An example of mounting ADXL345 on the SmartEffector:
|
||||
|
||||

|
||||
|
||||
Note that on a bed slinger printer one must design 2 mounts: one for the
|
||||
toolhead and one for the bed, and run the measurements twice.
|
||||
|
||||
## Software installation
|
||||
|
||||
Note that resonance measurements and shaper auto-calibration require additional
|
||||
software dependencies not installed by default. You will have to run on your
|
||||
Raspberry Pi
|
||||
```
|
||||
$ ~/klippy-env/bin/pip install -v numpy
|
||||
```
|
||||
to install `numpy` package. Note that, depending on the performance of the
|
||||
CPU, it may take *a lot* of time, up to 10-20 minutes. Be patient and wait
|
||||
for the completion of the installation. On some occasions, if the board has
|
||||
too little RAM, the installation may fail and you will need to enable swap.
|
||||
|
||||
If installing prerequisites takes too much time or fail for whatever reason,
|
||||
there is, in principle, another possibility to run a stand-alone script to
|
||||
automatically tune the input shapers (will be covered later in the guide).
|
||||
|
||||
In order to run stand-alone scripts, one must run the following command to
|
||||
install the required dependencies (either on Raspberry Pi, or on host,
|
||||
depending on where the scripts will be executed):
|
||||
```
|
||||
$ sudo apt install python-numpy python-matplotlib
|
||||
```
|
||||
|
||||
Afterwards, follow the instructions in the
|
||||
[RPi Microcontroller document](RPi_microcontroller.md) to setup the
|
||||
"linux mcu" on the Raspberry Pi.
|
||||
|
||||
Make sure the Linux SPI driver is enabled by running `sudo
|
||||
raspi-config` and enabling SPI under the "Interfacing options" menu.
|
||||
|
||||
Add the following to the printer.cfg file:
|
||||
```
|
||||
[mcu rpi]
|
||||
serial: /tmp/klipper_host_mcu
|
||||
|
||||
[adxl345]
|
||||
cs_pin: rpi:None
|
||||
|
||||
[resonance_tester]
|
||||
accel_chip: adxl345
|
||||
probe_points:
|
||||
100,100,20 # an example
|
||||
```
|
||||
It is advised to start with 1 probe point, in the middle of the print bed,
|
||||
slightly above it.
|
||||
|
||||
Restart Klipper via the `RESTART` command.
|
||||
|
||||
Measuring the resonances
|
||||
===========================
|
||||
|
||||
## Checking the setup
|
||||
|
||||
Now you can test a connection. In Octoprint, run `ACCELEROMETER_QUERY`. You
|
||||
should see the current measurements from the accelerometer, including the
|
||||
free-fall acceleration, e.g.
|
||||
```
|
||||
Recv: // adxl345 values (x, y, z): 470.719200, 941.438400, 9728.196800
|
||||
```
|
||||
|
||||
Try running `MEASURE_AXES_NOISE` in Octoprint, you should get some baseline
|
||||
numbers for the noise of accelerometer on the axes (should be somewhere
|
||||
in the range of ~1-100). Note that this feature will not be available if
|
||||
`numpy` package was not installed (see
|
||||
[Software installation](#software-installation) for more details).
|
||||
|
||||
## Measuring the resonances
|
||||
|
||||
Now you can run some real-life tests. In `printer.cfg` add or replace the
|
||||
following values:
|
||||
```
|
||||
[printer]
|
||||
max_accel: 7000
|
||||
max_accel_to_decel: 7000
|
||||
```
|
||||
(after you are done with the measurements, revert these values to their old,
|
||||
or the newly suggested values). Also, if you have enabled input shaper already,
|
||||
you will need to disable it prior to this test as follows:
|
||||
```
|
||||
SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0
|
||||
```
|
||||
as it is not valid to run the resonance testing with the input shaper enabled.
|
||||
|
||||
Run the following command:
|
||||
```
|
||||
TEST_RESONANCES AXIS=X
|
||||
```
|
||||
Note that it will create vibrations on X axis. If that works, run for Y axis
|
||||
as well:
|
||||
```
|
||||
TEST_RESONANCES AXIS=Y
|
||||
```
|
||||
This will generate 2 CSV files (`/tmp/resonances_x_*.csv` and
|
||||
`/tmp/resonances_y_*.csv`).
|
||||
|
||||
Note that the commands above require `numpy` to be installed installed. If you
|
||||
haven't installed it, you can instead pass `OUTPUT=raw_data` argument to the
|
||||
above commands (2 files `/tmp/raw_data_x_*.csv` and `/tmp/raw_data_y_*.csv`
|
||||
will be written). One can then run stand-alone scripts on Raspberry Pi
|
||||
(specify the correct file name on the command line):
|
||||
```
|
||||
$ ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png
|
||||
$ ~/klipper/scripts/calibrate_shaper.py /tmp/raw_data_x_*.csv -o /tmp/shaper_calibrate_x.png
|
||||
```
|
||||
or copy the data to the host and run the scripts there. See
|
||||
[Offline processing of the accelerometer data](#offline-processing-of-the-accelerometer-data)
|
||||
section for more details.
|
||||
|
||||
**Attention!** Be sure to observe the printer for the first time, to make sure
|
||||
the vibrations do not become too violent (`M112` command can be used to abort
|
||||
the test in case of emergency; hopefully it will not come to this though).
|
||||
If the vibrations do get too strong, you can attempt to specify a lower than the
|
||||
default value for `accel_per_hz` parameter in `[resonance_tester]` section, e.g.
|
||||
```
|
||||
[resonance_tester]
|
||||
accel_chip: adxl345
|
||||
accel_per_hz: 50 # default is 75
|
||||
probe_points: ...
|
||||
```
|
||||
|
||||
Generated CSV files show power spectral density of the vibrations depending on the
|
||||
frequency. Usually, the charts generated from these CSV files are relatively easy
|
||||
to read, with the peaks corresponding to the resonance frequencies:
|
||||
|
||||

|
||||
|
||||
The chart above shows the resonances for X axis at approx. 50 Hz, 56 Hz, 63 Hz,
|
||||
80 Hz and 104 Hz and one cross-resonance for Y axis at ~ 56 Hz. From this, one
|
||||
can derive that a good input shaper config in this case could be `2hump_ei` at
|
||||
around `shaper_freq_y = 45` (Hz):
|
||||
|
||||
||
|
||||
|:--:|
|
||||
|Input Shaper response to vibrations, lower is better.|
|
||||
|
||||
Note that the smaller resonance at 104 Hz requires less of vibration suppression
|
||||
(if at all).
|
||||
|
||||
## Input Shaper auto-calibration
|
||||
|
||||
Besides manually choosing the appropriate parameters for the input shaper
|
||||
feature, it is also possible to run an experimental auto-tuning for the
|
||||
input shaper.
|
||||
|
||||
In order to attempt to measure the resonance frequencies and automatically
|
||||
determine the best parameters for `[input_shaper]`, run the following command
|
||||
via Octoprint terminal:
|
||||
```
|
||||
SHAPER_CALIBRATE
|
||||
```
|
||||
|
||||
This will test all frequencies in range 5 Hz - 120 Hz and generate
|
||||
the csv output (`/tmp/calibration_data_*.csv` by default) for the frequency
|
||||
response and the suggested input shapers. You will also get the suggested
|
||||
frequencies for each input shaper, as well as which input shaper is recommended
|
||||
for your setup, on Octoprint console. For example:
|
||||
|
||||

|
||||
```
|
||||
Fitted shaper 'zv' frequency = 56.7 Hz (vibrations = 23.2%)
|
||||
Fitted shaper 'mzv' frequency = 52.9 Hz (vibrations = 10.9%)
|
||||
Fitted shaper 'ei' frequency = 62.0 Hz (vibrations = 8.9%)
|
||||
Fitted shaper '2hump_ei' frequency = 59.0 Hz (vibrations = 4.9%)
|
||||
Fitted shaper '3hump_ei' frequency = 65.0 Hz (vibrations = 3.3%)
|
||||
Recommended shaper_type_y = 2hump_ei, shaper_freq_y = 59.0 Hz
|
||||
```
|
||||
If you agree with the suggested parameters, you can execute `SAVE_CONFIG`
|
||||
now to save them and restart the Klipper.
|
||||
|
||||
|
||||
If your printer is a bed slinger printer, you will need to repeat the
|
||||
measurements twice: measure the resonances of X axis with the accelerometer
|
||||
attached to the toolhead and the resonances of Y axis - to the bed (the usual
|
||||
bed slinger setup). In this case, you can specify the axis you want to run the
|
||||
test for (by default the test is performed for both axes):
|
||||
```
|
||||
SHAPER_CALIBRATE AXIS=Y
|
||||
```
|
||||
|
||||
You can execute `SAVE_CONFIG` twice - after calibrating each axis.
|
||||
|
||||
However, you can connect two accelerometers simultaneously, though they must be
|
||||
connected to different boards (say, to an RPi and printer MCU board), or to two
|
||||
different physical SPI interfaces on the same board (rarely available).
|
||||
Then they can be configured in the following manner:
|
||||
```
|
||||
[adxl345 adxl345_x]
|
||||
# Assuming adxl345_x is connected to an RPi
|
||||
cs_pin: rpi:None
|
||||
|
||||
[adxl345 adxl345_y]
|
||||
# Assuming adxl345_y is connected to a printer MCU board
|
||||
cs_pin: ... # Printer board SPI chip select (CS) pin
|
||||
|
||||
[resonance_tester]
|
||||
accel_chip_x: adxl345_x
|
||||
accel_chip_y: adxl345_y
|
||||
probe_points: ...
|
||||
```
|
||||
then one can simply run `SHAPER_CALIBRATE` without specifying an axis to
|
||||
calibrate the input shaper for both axes in one go.
|
||||
|
||||
After the autocalibration is finished, you will still need to choose the
|
||||
`max_accel` value that does not create too much smoothing in the printed
|
||||
parts. Follow [this](Resonance_Compensation.md#selecting-max_accel) part of
|
||||
the input shaper tuning guide and print the test model.
|
||||
|
||||
## Input Shaper re-calibration
|
||||
|
||||
`SHAPER_CALIBRATE` command can be also used to re-calibrate the input shaper in
|
||||
the future, especially if some changes to the printer that can affect its
|
||||
kinematics are made. One can either re-run the full calibration using
|
||||
`SHAPER_CALIBRATE` command, or restrict the auto-calibration to a single axis by
|
||||
supplying `AXIS=` parameter, like
|
||||
```
|
||||
SHAPER_CALIBRATE AXIS=X
|
||||
```
|
||||
|
||||
**Warning!** It is not advisable to run the shaper autocalibration very
|
||||
frequently (e.g. before every print, or every day). In order to determine
|
||||
resonance frequencies, autocalibration creates intensive vibrations on each of
|
||||
the axes. Generally, 3D printers are not designed to withstand a prolonged
|
||||
exposure to vibrations near the resonance frequencies. Doing so may increase
|
||||
wear of the printer components and reduce their lifespan. There is also an
|
||||
increased risk of some parts unscrewing or becoming loose. Always check that
|
||||
all parts of the printer (including the ones that may normally not move) are
|
||||
securely fixed in place after each auto-tuning.
|
||||
|
||||
Also, due to some noise in measurements, it is possible the the tuning results
|
||||
will be slightly different from one calibration run to another one. Still, it
|
||||
is not expected that the resulting print quality will be affected too much.
|
||||
However, it is still advised to double-check the suggested parameters, and
|
||||
print some test prints before using them to confirm they are good.
|
||||
|
||||
## Offline processing of the accelerometer data
|
||||
|
||||
It is possible to generate the raw accelerometer data and process it offline
|
||||
(e.g. on a host machine), for example to find resonances. In order to do so,
|
||||
run the following command via Octoprint terminal:
|
||||
```
|
||||
TEST_RESONANCES AXIS=X OUTPUT=raw_data
|
||||
```
|
||||
(specify the desired test axis and the desired template for the raw
|
||||
accelerometer output, the data will be written into `/tmp` directory).
|
||||
|
||||
The raw data can also be obtained by running the command `ACCELEROMETER_MEASURE`
|
||||
command twice during some normal printer activity - first to start the
|
||||
measurements, and then to stop them and write the output file. Refer to
|
||||
[G-Codes](G-Codes.md#adxl345-accelerometer-commands) for more details.
|
||||
|
||||
The data can be processed later by the following scripts:
|
||||
`scripts/graph_accelerometer.py` and `scripts/calibrate_shaper.py`. Both
|
||||
of them accept one or several raw csv files as the input depending on the
|
||||
mode. The graph_accelerometer.py script supports several modes of operation:
|
||||
* plotting raw accelerometer data (use `-r` parameter), only 1 input is
|
||||
supported;
|
||||
* plotting a frequency response (no extra parameters required), if multiple
|
||||
inputs are specified, the average frequency response is computed;
|
||||
* comparison of the frequency response between several inputs (use `-c`
|
||||
parameter); you can additionally specify which accelerometer axis to
|
||||
consider via `-a x`, `-a y` or `-a z` parameter (if none specified,
|
||||
the sum of vibrations for all axes is used);
|
||||
* plotting the spectrogram (use `-s` parameter), only 1 input is supported;
|
||||
you can additionally specify which accelerometer axis to consider via
|
||||
`-a x`, `-a y` or `-a z` parameter (if none specified, the sum of vibrations
|
||||
for all axes is used).
|
||||
|
||||
For example,
|
||||
```
|
||||
$ ~/klipper/scripts/graph_accelerometer.py /tmp/raw_data_x_*.csv -o /tmp/resonances_x.png -c -a z
|
||||
```
|
||||
will plot the comparison of several `/tmp/raw_data_x_*.csv` files for Z axis to
|
||||
`/tmp/resonances_x.png` file.
|
||||
|
||||
The shaper_calibrate.py script accepts 1 or several inputs and can run automatic
|
||||
tuning of the input shaper and suggest the best parameters that work well for
|
||||
all provided inputs. It prints the suggested parameters to the console, and can
|
||||
additionally generate the chart if `-o output.png` parameter is provided, or
|
||||
the CSV file if `-c output.csv` parameter is specified.
|
||||
|
||||
Providing several inputs to shaper_calibrate.py script can be useful if running
|
||||
some advanced tuning of the input shapers, for example:
|
||||
* Running `TEST_RESONANCES AXIS=X OUTPUT=raw_data` (and `Y` axis) for a single
|
||||
axis twice on a bed slinger printer with the accelerometer attached to the
|
||||
toolhead the first time, and the accelerometer attached to the bed the
|
||||
second time in order to detect axes cross-resonances and attempt to cancel
|
||||
them with input shapers.
|
||||
* Running `TEST_RESONANCES AXIS=Y OUTPUT=raw_data` twice on a bed slinger with
|
||||
a glass bed and a magnetic surfaces (which is lighter) to find the input
|
||||
shaper parameters that work well for any print surface configuration.
|
||||
* Combining the resonance data from multiple test points.
|
||||
* Combining the resonance data from 2 axis (e.g. on a bed slinger printer
|
||||
to configure X-axis input_shaper from both X and Y axes resonances to
|
||||
cancel vibrations of the *bed* in case the nozzle 'catches' a print when
|
||||
moving in X axis direction).
|
||||
@@ -29,6 +29,10 @@ communication with the Klipper developers.
|
||||
similar).
|
||||
- [Endstop phase](Endstop_Phase.md): Stepper assisted Z endstop
|
||||
positioning.
|
||||
- [Resonance compensation](Resonance_Compensation.md): A tool to
|
||||
reduce ringing in prints.
|
||||
- [Measuring resonances](Measuring_Resonances.md): Information on
|
||||
using adxl345 accelerometer hardware to measure resonance.
|
||||
- [Pressure advance](Pressure_Advance.md): Calibrate extruder
|
||||
pressure.
|
||||
- [Slicers](Slicers.md): Configure "slicer" software for Klipper.
|
||||
@@ -48,6 +52,8 @@ communication with the Klipper developers.
|
||||
implements motion.
|
||||
- [Protocol](Protocol.md): Information on the low-level messaging
|
||||
protocol between host and micro-controller.
|
||||
- [API Server](API_Server.md): Information on Klipper's command and
|
||||
control API.
|
||||
- [MCU commands](MCU_Commands.md): A description of low-level commands
|
||||
implemented in the micro-controller software.
|
||||
- [Debugging](Debugging.md): Information on how to test and debug
|
||||
@@ -60,12 +66,13 @@ communication with the Klipper developers.
|
||||
|
||||
# Device Specific Documents
|
||||
|
||||
- [Bootloaders](Bootloaders.md): Developer information on
|
||||
micro-controller flashing.
|
||||
- [stm32f1](stm32f1.md): Information on the STM32F1 micro-controller
|
||||
port.
|
||||
- [Raspberry Pi as Micro-controller](RPi_microcontroller.md): Details
|
||||
for controlling devices wired to the GPIO pins of a Raspberry Pi.
|
||||
- [Beaglebone](beaglebone.md): Details for running Klipper on the
|
||||
Beaglebone PRU.
|
||||
- [Bootloaders](Bootloaders.md): Developer information on
|
||||
micro-controller flashing.
|
||||
- [stm32f0](stm32f0_CAN.md): Information on the STM32F0 micro-controller
|
||||
port.
|
||||
- [TSL1401CL filament width sensor](TSL1401CL_Filament_Width_Sensor.md)
|
||||
- [Hall filament width sensor](HallFilamentWidthSensor.md)
|
||||
|
||||
@@ -13,58 +13,65 @@ uses the second feature (reducing blobbing during cornering) as a
|
||||
mechanism for tuning.
|
||||
|
||||
In order to calibrate pressure advance the printer must be configured
|
||||
and operational. The tuning test involves printing objects and
|
||||
inspecting the differences between objects. It is a good idea to read
|
||||
this document in full prior to running the test.
|
||||
and operational as the tuning test involves printing and inspecting a
|
||||
test object. It is a good idea to read this document in full prior to
|
||||
running the test.
|
||||
|
||||
Use a slicer to generate g-code for the large hollow square found in
|
||||
[docs/prints/square.stl](prints/square.stl). Use a high speed (eg,
|
||||
100mm/s) and a coarse layer height (the layer height should be around
|
||||
75% of the nozzle diameter). It is fine to use a low infill (eg, 10%).
|
||||
[docs/prints/square_tower.stl](prints/square_tower.stl). Use a high
|
||||
speed (eg, 100mm/s), zero infill, and a coarse layer height (the layer
|
||||
height should be around 75% of the nozzle diameter). Make sure any
|
||||
"dynamic acceleration control" is disabled in the slicer.
|
||||
|
||||
Prepare for the test by issuing the following G-Code commands:
|
||||
`SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500` and
|
||||
`SET_PRESSURE_ADVANCE ADVANCE_LOOKAHEAD_TIME=0`. These commands make
|
||||
the nozzle travel slower through corners and they emphasize the
|
||||
effects of extruder pressure.
|
||||
Prepare for the test by issuing the following G-Code command:
|
||||
```
|
||||
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
|
||||
```
|
||||
This command makes the nozzle travel slower through corners to
|
||||
emphasize the effects of extruder pressure. Then for printers with a
|
||||
direct drive extruder run the command:
|
||||
```
|
||||
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
|
||||
```
|
||||
For long bowden extruders use:
|
||||
```
|
||||
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.020
|
||||
```
|
||||
Then print the object. When fully printed the test print looks like:
|
||||
|
||||
For the first print use a pressure advance of zero by running
|
||||
`SET_PRESSURE_ADVANCE ADVANCE=0.000`. Then print at least 10 layers of
|
||||
the test object. While the object is printing, make a note of which
|
||||
direction the head is moving during external perimeters. What many
|
||||
people see here is blobbing occurring at the corners - extra filament
|
||||
at the corner in the direction the head travels followed by a possible
|
||||
lack of filament on the side immediately after that corner:
|
||||

|
||||
|
||||

|
||||
The above TUNING_TOWER command instructs Klipper to alter the
|
||||
pressure_advance setting on each layer of the print. Higher layers in
|
||||
the print will have a larger pressure advance value set. Layers below
|
||||
the ideal pressure_advance setting will have blobbing at the corners,
|
||||
and layers above the ideal setting can lead to rounded corners and
|
||||
poor extrusion leading up to the corner.
|
||||
|
||||
This blobbing is the result of pressure in the extruder being released
|
||||
as a blob when the head slows down to corner.
|
||||
One can cancel the print early if one observes that the corners are no
|
||||
longer printing well (and thus one can avoid printing layers that are
|
||||
known to be above the ideal pressure_advance value).
|
||||
|
||||
The next step is to increase pressure advance (start with
|
||||
`SET_PRESSURE_ADVANCE ADVANCE=0.050`) and reprint the test object.
|
||||
With pressure advance, the extruder will retract when the head slows
|
||||
down, thus countering the pressure buildup and ideally eliminate the
|
||||
blobbing.
|
||||
Inspect the print and then use a digital calipers to find the height
|
||||
that has the best quality corners. When in doubt, prefer a lower
|
||||
height.
|
||||
|
||||
If a test run is done with a pressure advance setting that is too
|
||||
high, one typically sees a dimple in the corner followed by possible
|
||||
blobbing after the corner (too much filament is retracted during slow
|
||||
down and then too much filament is extruded during the following speed
|
||||
up after cornering):
|
||||

|
||||
|
||||

|
||||
The pressure_advance value can then be calculated as `pressure_advance
|
||||
= <start> + <measured_height> * <factor>`. (For example, `0 + 12.90 *
|
||||
.020` would be `.258`.)
|
||||
|
||||
The goal is to find the smallest pressure advance value that results
|
||||
in good quality corners:
|
||||
|
||||

|
||||
It is possible to choose custom settings for START and FACTOR if that
|
||||
helps identify the best pressure advance setting. When doing this, be
|
||||
sure to issue the TUNING_TOWER command at the start of each test
|
||||
print.
|
||||
|
||||
Typical pressure advance values are between 0.050 and 1.000 (the high
|
||||
end usually only with bowden extruders). If there is no significant
|
||||
improvement after gradually increasing pressure advance to 1.000, then
|
||||
pressure advance is unlikely to improve the quality of prints. Return
|
||||
to a default configuration with pressure advance disabled.
|
||||
improvement with a pressure advance up to 1.000, then pressure advance
|
||||
is unlikely to improve the quality of prints. Return to a default
|
||||
configuration with pressure advance disabled.
|
||||
|
||||
Although this tuning exercise directly improves the quality of
|
||||
corners, it's worth remembering that a good pressure advance
|
||||
@@ -72,8 +79,8 @@ configuration also reduces ooze throughout the print.
|
||||
|
||||
At the completion of this test, update the extruder's pressure_advance
|
||||
setting in the configuration file and issue a RESTART command. The
|
||||
RESTART command will also return the acceleration, cornering speeds,
|
||||
and look-ahead times to their normal values.
|
||||
RESTART command will clear the test state and return the acceleration
|
||||
and cornering speeds to their normal values.
|
||||
|
||||
Important Notes
|
||||
===============
|
||||
@@ -85,26 +92,31 @@ Important Notes
|
||||
pressure advance on each printer and with each spool of filament.
|
||||
|
||||
* Printing temperature and extrusion rates can impact pressure
|
||||
advance. Be sure to tune the extruder
|
||||
advance. Be sure to tune the extruder
|
||||
[E steps](http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide#E_steps)
|
||||
and
|
||||
[nozzle temperature](http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide#Nozzle_Temperature)
|
||||
prior to tuning pressure advance.
|
||||
|
||||
* It is not unusual for one corner of the test print to be
|
||||
consistently different than the other three corners. This typically
|
||||
occurs when the slicer arranges to always change Z height at that
|
||||
corner. If this occurs, then ignore that corner and tune pressure
|
||||
advance using the other three corners.
|
||||
* The test print is designed to run with a high extruder flow rate,
|
||||
but otherwise "normal" slicer settings. A high flow rate is obtained
|
||||
by using a high printing speed (eg, 100mm/s) and a coarse layer
|
||||
height (typically around 75% of the nozzle diameter). Other slicer
|
||||
settings should be similar to their defaults (eg, perimeters of 2 or
|
||||
3 lines, normal retraction amount). It can be useful to set the
|
||||
external perimeter speed to be the same speed as the rest of the
|
||||
print, but it is not a requirement.
|
||||
|
||||
* Check for warping at the corners during the test prints (the corners
|
||||
detaching from the bed and rising a small distance upwards during
|
||||
the print). If one corner appears warped then ignore that corner
|
||||
when tuning. If significant warping is seen throughout the test then
|
||||
typical solutions are to reduce the slicer's first layer speed,
|
||||
adjust the bed temperature, and/or to use the slicer's brim feature.
|
||||
Pressure advance itself is unlikely to impact warping, but this
|
||||
tuning test is sensitive to it.
|
||||
* It is common for the test print to show different behavior on each
|
||||
corner. Often the slicer will arrange to change layers at one corner
|
||||
which can result in that corner being significantly different from
|
||||
the remaining three corners. If this occurs, then ignore that corner
|
||||
and tune pressure advance using the other three corners. It is also
|
||||
common for the remaining corners to vary slightly. (This can occur
|
||||
due to small differences in how the printer's frame reacts to
|
||||
cornering in certain directions.) Try to choose a value that works
|
||||
well for all the remaining corners. If in doubt, prefer a lower
|
||||
pressure advance value.
|
||||
|
||||
* If a high pressure advance value (eg, over 0.200) is used then one
|
||||
may find that the extruder skips when returning to the printer's
|
||||
@@ -115,17 +127,6 @@ Important Notes
|
||||
enough torque to push the required filament. If this occurs, either
|
||||
use a lower acceleration value or disable pressure advance.
|
||||
|
||||
* The pressure_advance_lookahead_time parameter controls how far in
|
||||
advance to check if a head slow-down is immediately followed by a
|
||||
speed-up - it reduces pointless pressure changes in the head. It is
|
||||
recommended to follow the steps above so that it is set to zero
|
||||
during tuning and to use the default (0.010) during normal prints.
|
||||
It is possible to tune this setting - higher values will reduce the
|
||||
amount of pressure change in the nozzle during cornering, but
|
||||
setting it too high can cause blobbing during cornering. (Tuning
|
||||
this value is unlikely to impact ooze.) The default of 10ms should
|
||||
work well on most printers.
|
||||
|
||||
* Once pressure advance is tuned in Klipper, it may still be useful to
|
||||
configure a small retract value in the slicer (eg, 0.75mm) and to
|
||||
utilize the slicer's "wipe on retract option" if available. These
|
||||
@@ -134,10 +135,12 @@ Important Notes
|
||||
plastic). It is recommended to disable the slicer's "z-lift on
|
||||
retract" option.
|
||||
|
||||
* Configuring pressure advance results in extra extruder movement
|
||||
during move acceleration and deceleration. That extra movement is
|
||||
not further constrained by any other other configuration parameter.
|
||||
The pressure advance settings only impact extruder movement; they do
|
||||
not alter toolhead XYZ movement or look-ahead calculations. A change
|
||||
in pressure advance will not change the path or timing of the
|
||||
toolhead nor will it change the overall printing time.
|
||||
* The pressure advance system does not change the timing or path of
|
||||
the toolhead. A print with pressure advance enabled will take the
|
||||
same amount of time as a print without pressure advance. Pressure
|
||||
advance also does not change the total amount of filament extruded
|
||||
during a print. Pressure advance results in extra extruder movement
|
||||
during move acceleration and deceleration. A very high pressure
|
||||
advance setting will result in a very large amount of extruder
|
||||
movement during acceleration and deceleration, and no configuration
|
||||
setting places a limit on the amount of that movement.
|
||||
|
||||
@@ -70,6 +70,21 @@ results to the config file with:
|
||||
SAVE_CONFIG
|
||||
```
|
||||
|
||||
Note that if a change is made to the printer's motion system, hotend
|
||||
position, or probe location then it will invalidate the results of
|
||||
PROBE_CALIBRATE.
|
||||
|
||||
If the probe has an X or Y offset and the bed tilt is changed (eg, by
|
||||
adjusting bed screws, running DELTA_CALIBRATE, running Z_TILT_ADJUST,
|
||||
running QUAD_GANTRY_LEVEL, or similar) then it will invalidate the
|
||||
results of PROBE_CALIBRATE. After making any of the above adjustments
|
||||
it will be necessary to run PROBE_CALIBRATE again.
|
||||
|
||||
If the results of PROBE_CALIBRATE are invalidated, then any previous
|
||||
[bed mesh](Bed_Mesh.md) results that were obtained using the probe are
|
||||
also invalidated - it will be necessary to rerun BED_MESH_CALIBRATE
|
||||
after recalibrating the probe.
|
||||
|
||||
# Repeatability check
|
||||
|
||||
After calibrating the probe X, Y, and Z offsets it is a good idea to
|
||||
@@ -98,19 +113,20 @@ Recv: // probe accuracy results: maximum 2.519448, minimum 2.506948, range 0.012
|
||||
|
||||
Ideally the tool will report an identical maximum and minimum value.
|
||||
(That is, ideally the probe obtains an identical result on all ten
|
||||
probes.) However, it's normal for the minimum and maximum values
|
||||
to differ by one Z step_distance or up to 5 microns (.005mm).
|
||||
The distance between the minimum and the maximum value is called the
|
||||
range. So, in the above example, since the printer uses a
|
||||
Z step_distance of .0125, a range of 0.012500 would be considered normal.
|
||||
probes.) However, it's normal for the minimum and maximum values to
|
||||
differ by one Z step_distance or up to 5 microns (.005mm). The
|
||||
distance between the minimum and the maximum value is called the
|
||||
range. So, in the above example, since the printer uses a Z
|
||||
step_distance of .0125, a range of 0.012500 would be considered
|
||||
normal.
|
||||
|
||||
If the results of the test show a range value that is greater than
|
||||
25 microns (.025mm) then the probe does not have sufficient accuracy
|
||||
for typical bed leveling procedures. It may be possible to tune the
|
||||
probe speed and/or probe start height to improve the repeatability
|
||||
of the probe. The `PROBE_ACCURACY` command allows one to run tests
|
||||
with different parameters to see their impact - see
|
||||
the [G-Codes document](G-Codes.md) for further details. If the probe
|
||||
If the results of the test show a range value that is greater than 25
|
||||
microns (.025mm) then the probe does not have sufficient accuracy for
|
||||
typical bed leveling procedures. It may be possible to tune the probe
|
||||
speed and/or probe start height to improve the repeatability of the
|
||||
probe. The `PROBE_ACCURACY` command allows one to run tests with
|
||||
different parameters to see their impact - see the
|
||||
[G-Codes document](G-Codes.md) for further details. If the probe
|
||||
generally obtains repeatable results but has an occasional outlier,
|
||||
then it may be possible to account for that by using multiple samples
|
||||
on each probe - read the description of the probe `samples` config
|
||||
@@ -138,9 +154,9 @@ This is a common issue with probes on delta printers, however it can
|
||||
occur on all printers.
|
||||
|
||||
One can check for a location bias by using the `PROBE_CALIBRATE`
|
||||
command to measuring the probe z_offset at various X and Y
|
||||
locations. Ideally, the probe z_offset would be a constant value at
|
||||
every printer location.
|
||||
command to measuring the probe z_offset at various X and Y locations.
|
||||
Ideally, the probe z_offset would be a constant value at every printer
|
||||
location.
|
||||
|
||||
For delta printers, try measuring the z_offset at a position near the
|
||||
A tower, at a position near the B tower, and at a position near the C
|
||||
|
||||
155
docs/RPi_microcontroller.md
Normal file
155
docs/RPi_microcontroller.md
Normal file
@@ -0,0 +1,155 @@
|
||||
This document describes the process of running Klipper on a RPi
|
||||
and use the same RPi as secondary mcu.
|
||||
|
||||
Why use RPi as a secondary MCU?
|
||||
===============================
|
||||
Often the MCUs dedicated to controlling 3D printers have a limited and
|
||||
pre-configured number of exposed pins to manage the main printing
|
||||
functions (thermal resistors, extruders, steppers ...).
|
||||
Using the RPi where Klipper is installed as a secondary MCU gives the
|
||||
possibility to directly use the GPIOs and the buses (i2c, spi) of the RPi
|
||||
inside klipper without using Octoprint plugins (if used) or external
|
||||
programs giving the ability to control everything within the print GCODE.
|
||||
|
||||
**Warning**: If your platform is a _Beaglebone_ and you have correctly followed the installation steps, the linux mcu is already installed and configured for your system.
|
||||
|
||||
Install the rc script
|
||||
=====================
|
||||
|
||||
If you want to use the host as a secondary MCU the klipper_mcu process must run before the klippy process.
|
||||
|
||||
After installing Klipper, install the script. run:
|
||||
```
|
||||
cd ~/klipper/
|
||||
sudo cp "./scripts/klipper-mcu-start.sh" /etc/init.d/klipper_mcu
|
||||
sudo update-rc.d klipper_mcu defaults
|
||||
```
|
||||
|
||||
Building the micro-controller code
|
||||
==================================
|
||||
|
||||
To compile the Klipper micro-controller code, start by configuring it
|
||||
for the "Linux process":
|
||||
```
|
||||
cd ~/klipper/
|
||||
make menuconfig
|
||||
```
|
||||
|
||||
To build and install the new micro-controller code, run:
|
||||
```
|
||||
sudo service klipper stop
|
||||
make flash
|
||||
sudo service klipper start
|
||||
```
|
||||
|
||||
If klippy.log reports a "Permission denied" error when attempting to connect
|
||||
to `/tmp/klipper_host_mcu` then you need to add your user to the tty group.
|
||||
The following command will add the "pi" user to the tty group:
|
||||
```
|
||||
sudo usermod -a -G tty pi
|
||||
```
|
||||
|
||||
Remaining configuration
|
||||
=======================
|
||||
|
||||
Complete the installation by configuring Klipper secondary MCU
|
||||
following the instructions in
|
||||
[RaspberryPi sample config](../config/sample-raspberry-pi.cfg) and
|
||||
[Multi MCU sample config](../config/sample-multi-mcu.cfg).
|
||||
|
||||
Optional: Identify the correct gpiochip
|
||||
=======================================
|
||||
On Rasperry and on many clones the pins exposed on the GPIO belong to the first gpiochip. They can therefore be used on klipper simply by referring them with the name `gpio0..n`.
|
||||
However, there are cases in which the exposed pins belong to gpiochips other than the first. For example in the case of some OrangePi models or if a Port Expander is used. In these cases it is useful to use the commands to access the _Linux GPIO character device_ to verify the configuration.
|
||||
|
||||
To install the _Linux GPIO character device - binary_ on a debian based distro like octopi run:
|
||||
```
|
||||
sudo apt-get install gpiod
|
||||
```
|
||||
|
||||
To check available gpiochip run:
|
||||
```
|
||||
gpiodetect
|
||||
```
|
||||
|
||||
To check the pin number and the pin availability tun:
|
||||
```
|
||||
gpioinfo
|
||||
```
|
||||
|
||||
The chosen pin can thus be used within the configuration as `gpiochip<n>/gpio<o>` where **n** is the chip number as seen by the `gpiodetect` command and **o** is the line number seen by the` gpioinfo` command.
|
||||
|
||||
***Warning:*** only gpio marked as `unused` can be used. It is not possible for a _line_ to be used by multiple processes simultaneously.
|
||||
|
||||
For example on a RPi 3B+ where klipper use the GPIO20 for a switch:
|
||||
```
|
||||
$ gpiodetect
|
||||
gpiochip0 [pinctrl-bcm2835] (54 lines)
|
||||
gpiochip1 [raspberrypi-exp-gpio] (8 lines)
|
||||
|
||||
$ gpioinfo
|
||||
gpiochip0 - 54 lines:
|
||||
line 0: unnamed unused input active-high
|
||||
line 1: unnamed unused input active-high
|
||||
line 2: unnamed unused input active-high
|
||||
line 3: unnamed unused input active-high
|
||||
line 4: unnamed unused input active-high
|
||||
line 5: unnamed unused input active-high
|
||||
line 6: unnamed unused input active-high
|
||||
line 7: unnamed unused input active-high
|
||||
line 8: unnamed unused input active-high
|
||||
line 9: unnamed unused input active-high
|
||||
line 10: unnamed unused input active-high
|
||||
line 11: unnamed unused input active-high
|
||||
line 12: unnamed unused input active-high
|
||||
line 13: unnamed unused input active-high
|
||||
line 14: unnamed unused input active-high
|
||||
line 15: unnamed unused input active-high
|
||||
line 16: unnamed unused input active-high
|
||||
line 17: unnamed unused input active-high
|
||||
line 18: unnamed unused input active-high
|
||||
line 19: unnamed unused input active-high
|
||||
line 20: unnamed "klipper" output active-high [used]
|
||||
line 21: unnamed unused input active-high
|
||||
line 22: unnamed unused input active-high
|
||||
line 23: unnamed unused input active-high
|
||||
line 24: unnamed unused input active-high
|
||||
line 25: unnamed unused input active-high
|
||||
line 26: unnamed unused input active-high
|
||||
line 27: unnamed unused input active-high
|
||||
line 28: unnamed unused input active-high
|
||||
line 29: unnamed "led0" output active-high [used]
|
||||
line 30: unnamed unused input active-high
|
||||
line 31: unnamed unused input active-high
|
||||
line 32: unnamed unused input active-high
|
||||
line 33: unnamed unused input active-high
|
||||
line 34: unnamed unused input active-high
|
||||
line 35: unnamed unused input active-high
|
||||
line 36: unnamed unused input active-high
|
||||
line 37: unnamed unused input active-high
|
||||
line 38: unnamed unused input active-high
|
||||
line 39: unnamed unused input active-high
|
||||
line 40: unnamed unused input active-high
|
||||
line 41: unnamed unused input active-high
|
||||
line 42: unnamed unused input active-high
|
||||
line 43: unnamed unused input active-high
|
||||
line 44: unnamed unused input active-high
|
||||
line 45: unnamed unused input active-high
|
||||
line 46: unnamed unused input active-high
|
||||
line 47: unnamed unused input active-high
|
||||
line 48: unnamed unused input active-high
|
||||
line 49: unnamed unused input active-high
|
||||
line 50: unnamed unused input active-high
|
||||
line 51: unnamed unused input active-high
|
||||
line 52: unnamed unused input active-high
|
||||
line 53: unnamed unused input active-high
|
||||
gpiochip1 - 8 lines:
|
||||
line 0: unnamed unused input active-high
|
||||
line 1: unnamed unused input active-high
|
||||
line 2: unnamed "led1" output active-low [used]
|
||||
line 3: unnamed unused input active-high
|
||||
line 4: unnamed unused input active-high
|
||||
line 5: unnamed unused input active-high
|
||||
line 6: unnamed unused input active-high
|
||||
line 7: unnamed unused input active-high
|
||||
```
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user