Compare commits
566 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d3bc877007 | |||
| 700549ee5d | |||
| ef94ddf53c | |||
| 3efe4aeef8 | |||
| 28deff01b8 | |||
| cca1cca3a5 | |||
| a2babb532d | |||
| 8c34233452 | |||
| b8066fb36f | |||
| 20f6676d63 | |||
| c28749a567 | |||
| df87278fce | |||
| 4be8d7720e | |||
| 760bf49a00 | |||
| 567941e341 | |||
| 57fff2e95e | |||
| 94c965fad6 | |||
| 6a3967ee33 | |||
| 534bffa7a9 | |||
| e1e1a0c344 | |||
| ab79933d1f | |||
| 69297b2d7b | |||
| 015839fc50 | |||
| d609489b22 | |||
| 167169e1bf | |||
| 395a9f59ac | |||
| 14663efe0d | |||
| ae5923a3d0 | |||
| 859248433f | |||
| 09c90c2f6c | |||
| 41e0955c27 | |||
| 232a10410d | |||
| 76c92a1fab | |||
| 312f63dbe8 | |||
| cf96109056 | |||
| dcec7178d1 | |||
| 3e78a01262 | |||
| 2ff967f3e6 | |||
| 1ff7d10c80 | |||
| 4cb45c10dd | |||
| abd6ba62b4 | |||
| f17bae1f70 | |||
| 8e0f3b7eba | |||
| 009a6104c5 | |||
| fcceed5be6 | |||
| 457489d7ac | |||
| 30b327d24c | |||
| 6c97c5595c | |||
| 553d5ca283 | |||
| e6e3132f79 | |||
| cd2ac3b759 | |||
| bfbf5f8200 | |||
| 814925d692 | |||
| 406ef69702 | |||
| 379926961c | |||
| 5b03f23fa2 | |||
| e3cedfa0ec | |||
| bb0508b6cf | |||
| 5c1888467f | |||
| 85777a56c6 | |||
| d1e8d4cd9d | |||
| 797d6a97e7 | |||
| b492e0878d | |||
| 98d362c2da | |||
| 80abc872f3 | |||
| e90cbf5c16 | |||
| ada836db29 | |||
| fc140c4962 | |||
| f4246dc8ff | |||
| 66faedb2b8 | |||
| bd776df8c1 | |||
| 05449cf6ee | |||
| 12f092c812 | |||
| 941943c167 | |||
| 5b11b33854 | |||
| a4a587a897 | |||
| ba1706a265 | |||
| c2c8aafda2 | |||
| 627afb29df | |||
| 61d00d8990 | |||
| f0f9fb7465 | |||
| 99592c8458 | |||
| 31514f453a | |||
| 134116b874 | |||
| 89c6e92b66 | |||
| e80958b631 | |||
| fe7e890b09 | |||
| a1632cfa0a | |||
| e687782875 | |||
| 1446b5f01d | |||
| efc6a9c1b8 | |||
| b3c36c98fd | |||
| 3c7bfe798d | |||
| 9651d01e1a | |||
| eb314373bb | |||
| 6c45fa7dcc | |||
| ece89bcf7a | |||
| afbc6e3e2f | |||
| 1e47c17b46 | |||
| ebe6719e12 | |||
| 80a232419d | |||
| 5fb0d401eb | |||
| ed04d0b6be | |||
| 786cdea124 | |||
| ee7163fd3a | |||
| a9f8e518bf | |||
| a18324bc8d | |||
| 254a11b083 | |||
| aeb6d465a4 | |||
| 325f09ea6c | |||
| d26c8cc5c8 | |||
| c7f04fbcc7 | |||
| 4171520729 | |||
| 41bfff14e2 | |||
| 424d0bae8b | |||
| 5c59ee4e93 | |||
| 37bc0fce62 | |||
| d5368461f9 | |||
| e907654d6a | |||
| 6c45d0fd81 | |||
| 8a51e2960c | |||
| 725d9d9a56 | |||
| 499bb85a95 | |||
| 90f5f82926 | |||
| 0c616700f3 | |||
| 6dcf42f1a7 | |||
| a1c65fd3d5 | |||
| 7b79f443ef | |||
| 907cafcbfd | |||
| 17f69f8ca2 | |||
| cfcd069501 | |||
| b8b7ef1902 | |||
| 42f7f9e013 | |||
| 0b49bddec2 | |||
| 7e028ec429 | |||
| 2e26a7c752 | |||
| 2e1b7d3a22 | |||
| 4c3dc8bf07 | |||
| 4857a3ba48 | |||
| 3d24c329af | |||
| 311f6aff72 | |||
| 8fb30aaed6 | |||
| 6cb9bb27fe | |||
| 43a95ae5ad | |||
| dd1a84b23f | |||
| d4270f15a9 | |||
| c61c0a9aeb | |||
| 062131554f | |||
| 3d043976f7 | |||
| 93da4e83f7 | |||
| 43c96eb31f | |||
| 7c95f762f2 | |||
| 92eb55f246 | |||
| 428be27893 | |||
| 8d5a37fb3d | |||
| 7769a22064 | |||
| d9da126776 | |||
| 499d5c3b24 | |||
| 7164fd499e | |||
| c10d763d98 | |||
| 4ebff8eaa5 | |||
| 09bc34f4dc | |||
| 4414825e0d | |||
| 50c2702ba5 | |||
| 9dda022705 | |||
| b3338ccb01 | |||
| 40bb0cbf7a | |||
| 26d20ebcfc | |||
| 824f71d503 | |||
| 445227c807 | |||
| 699aa35df6 | |||
| 570722a0fe | |||
| 0bc66bf22c | |||
| 896dfa0577 | |||
| e47029199e | |||
| 8326c1c279 | |||
| 979a6a6459 | |||
| 07f8da36d2 | |||
| dce665a083 | |||
| 7b09ab6bda | |||
| 5bdb4bbc5e | |||
| 634b7fa7d4 | |||
| 772275ab0c | |||
| 11e28f389e | |||
| 21217d53df | |||
| da8e946efb | |||
| dde8bb7c8b | |||
| 83263076dc | |||
| ec61b07836 | |||
| 57a51fd5db | |||
| fc89de6d8b | |||
| 6c9b5ab8e8 | |||
| 92011e3d8c | |||
| 7864b133a8 | |||
| 0b6b7c9c7e | |||
| f17a3c2474 | |||
| 5a72b6818e | |||
| 4cc5444144 | |||
| 51bc50214a | |||
| 748bf32388 | |||
| 5426fc1735 | |||
| 87d8223251 | |||
| b378deaf89 | |||
| f4b76b1ee7 | |||
| e94f79ccea | |||
| d91710e9aa | |||
| 761df686bd | |||
| 897bc2ac1f | |||
| 1c107b3949 | |||
| 5b270417ed | |||
| 2f55870edb | |||
| f7dacd1f50 | |||
| 28d72f48f1 | |||
| 76a610cf81 | |||
| 8d1d9040b6 | |||
| a17ffe1ece | |||
| 731c8e6372 | |||
| abb6b8ad54 | |||
| c2eff60d3f | |||
| 1419126721 | |||
| a453be7357 | |||
| 1d615e0a67 | |||
| 707707d71a | |||
| e556ab1dff | |||
| a27b08e6af | |||
| dac29e0f75 | |||
| 9128d9ab45 | |||
| 6bb05c4543 | |||
| b7dc4d9973 | |||
| c9e3caf928 | |||
| 4134a6b526 | |||
| 36cc03a9b4 | |||
| 2a41f0ff84 | |||
| e6d10f6ddd | |||
| 97e13a30ba | |||
| 45c74406cf | |||
| e1c5a43247 | |||
| efc198f952 | |||
| 7f0945d2b1 | |||
| 4406fba994 | |||
| 19b62c14f0 | |||
| d28f5d8a78 | |||
| 5d5ff36446 | |||
| b88957e0d4 | |||
| dd071a4a65 | |||
| 8db1197c9b | |||
| 82e662fc69 | |||
| 2c2b991b59 | |||
| 0dd0033b33 | |||
| ba0bd33c38 | |||
| b2c20a8c0f | |||
| ece7a2bf36 | |||
| d87845052d | |||
| ea74ceb791 | |||
| 04b07a6ecc | |||
| eb8af486d2 | |||
| bfe7fbe5c0 | |||
| 87b591bf53 | |||
| 6411d65c48 | |||
| 46752588b9 | |||
| 5938dae200 | |||
| c5e0f08e35 | |||
| 1e2ccca063 | |||
| e4937b0285 | |||
| 1aab9906e6 | |||
| 663ff7f92a | |||
| 9f295581f0 | |||
| c34d7a29a6 | |||
| 862def2ef4 | |||
| 6a5d3b580d | |||
| d336e413aa | |||
| 789b2928a8 | |||
| fc7d7f87b4 | |||
| 0282452cea | |||
| 9a305a467b | |||
| 90ccac4bcf | |||
| fff50d3958 | |||
| 2130f10de8 | |||
| ebda4663c3 | |||
| e2c3695e11 | |||
| 911079104e | |||
| 65a0212866 | |||
| 147d9d76fc | |||
| 9118e135f9 | |||
| 4288c4fb4f | |||
| 1919cb0d1e | |||
| e800743268 | |||
| 61db0fd102 | |||
| 9a9bbfc57c | |||
| a32f7b329c | |||
| ac33a378c0 | |||
| 445865ea03 | |||
| 4296a8b74e | |||
| 4a96433b7e | |||
| 8d69394ae1 | |||
| c74d4dede6 | |||
| 155aa62fb0 | |||
| a5fa586642 | |||
| 4ecd41ef90 | |||
| 1b41e1f645 | |||
| 65bd4c8c94 | |||
| 7ed0761e09 | |||
| 9657e7d3ee | |||
| 8206bb9bb9 | |||
| df91346188 | |||
| 6354b40231 | |||
| 7236109f2a | |||
| 515f05093f | |||
| b6d5886dce | |||
| 17f8a494bf | |||
| be17033762 | |||
| 89b93058e3 | |||
| 05b66234ae | |||
| 84a0a77c59 | |||
| d33ae33103 | |||
| 266ae8912a | |||
| 6b9ca16f36 | |||
| 74d6dee920 | |||
| d9c8072037 | |||
| bad432add7 | |||
| 46b32e4548 | |||
| ca99d67ede | |||
| 2c7a39bc0e | |||
| 0f1e8c195d | |||
| 5d6366d4e6 | |||
| 51587c4b43 | |||
| 9677f3f2f5 | |||
| fc2eaab7f3 | |||
| c6a7adc293 | |||
| 4cece2d72e | |||
| 2d71569138 | |||
| b2d3c8aedd | |||
| 50ab9c2e04 | |||
| f1e33afda4 | |||
| 78d8c598e1 | |||
| eb39d6e3e2 | |||
| 194f8b2f55 | |||
| 6f89db11f0 | |||
| 25114414cd | |||
| 3fe333143c | |||
| d013bddfa8 | |||
| 58556991da | |||
| 01e7e234c6 | |||
| 0cbe448edf | |||
| a3645ec921 | |||
| 71367fd518 | |||
| b0eae68f57 | |||
| 493f0b0c62 | |||
| f379a326cc | |||
| 33279a1e02 | |||
| ac959b12ee | |||
| 55c700d537 | |||
| f0d545b950 | |||
| 868e7db4ae | |||
| fb5e0ffe16 | |||
| 73ed0c63b4 | |||
| b3a97b5013 | |||
| 78af2b1444 | |||
| 082da23391 | |||
| b1a4788593 | |||
| b15e531464 | |||
| 44e657766e | |||
| 735405b2a4 | |||
| ffa901f373 | |||
| 361cbba113 | |||
| 5ed63a5724 | |||
| 5cbe0244c5 | |||
| 1f52c9f5df | |||
| af81cb4cbb | |||
| 0392329cb9 | |||
| 1d167a6874 | |||
| f4028fe088 | |||
| 002a06c507 | |||
| 2dfb7c212c | |||
| ad915b667e | |||
| 4ce228f2a0 | |||
| 2881f0a48d | |||
| d252d1b6a2 | |||
| 6d574883a0 | |||
| 82ca6248e2 | |||
| 26ffa558a3 | |||
| 3ff7515527 | |||
| 62d8e35adc | |||
| 34cfbc90cd | |||
| 85b967657e | |||
| c99bd69889 | |||
| ad5638f78c | |||
| e271521c39 | |||
| c2ea22da49 | |||
| ceb62fc7e1 | |||
| 48f7652143 | |||
| 850203fb3a | |||
| 3129260c44 | |||
| 3b4116e73b | |||
| 5e8892d6b5 | |||
| 76af9ac7c5 | |||
| ba5910ab6c | |||
| a83f6db679 | |||
| 2c309a8f7c | |||
| 22dbb2117c | |||
| 364f8fb613 | |||
| d7fda2fe49 | |||
| 1519b0e7c1 | |||
| 49599caade | |||
| 02f15f6775 | |||
| 52e20aeab3 | |||
| ea906e4da7 | |||
| c2ca85aeb2 | |||
| 11fc9564c9 | |||
| 8a0a5cfccc | |||
| b29dbbd5e4 | |||
| ebcd1aaf88 | |||
| 0e1f0efc4b | |||
| 6ce2b1ff4a | |||
| b3a38fd300 | |||
| 3c061a9f9a | |||
| dc2d215355 | |||
| 75badae2f8 | |||
| 94a4af1d7f | |||
| 5970fe72d1 | |||
| 01f452c37c | |||
| 47245675fc | |||
| e09b4ce4a5 | |||
| 13599a73c7 | |||
| e16743da45 | |||
| 43c24f0027 | |||
| 3843a5151a | |||
| 6c064bb7d6 | |||
| aad1acc418 | |||
| 3370329751 | |||
| f0fe26c411 | |||
| ffb5353294 | |||
| e806e6419a | |||
| d6f49c6626 | |||
| 55a87da036 | |||
| ffe0e2d19a | |||
| 99c4900a98 | |||
| a3abfeac47 | |||
| 7f4e4b1212 | |||
| 7852369987 | |||
| 00d358d92d | |||
| 13a06711ad | |||
| 4dc49f8424 | |||
| c2321b1cdd | |||
| 455a24f6ff | |||
| 238fb53617 | |||
| 6b6630e11b | |||
| d30e478f97 | |||
| 5a9e52a3e0 | |||
| 8606644343 | |||
| 0cd398c25d | |||
| a5737cba7c | |||
| 0fef9a2983 | |||
| 14a4257c7b | |||
| 56e2e331ed | |||
| 091f94a6bf | |||
| 4ec4ecff1a | |||
| f1a1c6873e | |||
| 2266c0780d | |||
| b213a45efb | |||
| 6f86c46fa6 | |||
| 1fbcbc05f6 | |||
| c262ea92e0 | |||
| b17bcd56da | |||
| 267f77b18b | |||
| 645096b87a | |||
| 40d95a4e23 | |||
| c06af63f87 | |||
| 15040821e0 | |||
| 2da4398fb5 | |||
| 67c9b1e332 | |||
| 37399e3cb5 | |||
| a7fb55ea6d | |||
| e51b5774db | |||
| 056350d9bf | |||
| 0d48fd4b6b | |||
| 0e582bcfb7 | |||
| 68ae7c8d7a | |||
| ba29da56e0 | |||
| 0696dda470 | |||
| cbfca29522 | |||
| 233f824dd6 | |||
| b17e2d3dcd | |||
| 92fbea2906 | |||
| 94e90ca26c | |||
| 301958b3e0 | |||
| ee50dfaaf3 | |||
| b0ba5cae73 | |||
| 91841d75c9 | |||
| 445003dbb8 | |||
| f01a14e7d0 | |||
| 5a5dba6fc8 | |||
| ae676490c9 | |||
| 2819228d4f | |||
| 9a688d1456 | |||
| b63e82f309 | |||
| 539e0c2f31 | |||
| 60a4ca1182 | |||
| df42428281 | |||
| 2604742191 | |||
| b3407a371b | |||
| c33d99c5b2 | |||
| 7325035aac | |||
| f7a201b0d0 | |||
| 9c5957fc77 | |||
| bbb2b86c34 | |||
| 4da14b14f4 | |||
| 66db6c3acc | |||
| efd93169e5 | |||
| f1cccd65c2 | |||
| 192db2ab1b | |||
| 3b0127cf8e | |||
| 59ab971f81 | |||
| 11104f177b | |||
| 081bf1f879 | |||
| 9a364990d9 | |||
| e1e043d0d0 | |||
| a9487c9443 | |||
| 8d961b51cc | |||
| fe1fce5f56 | |||
| efb9ce24d9 | |||
| e2f07917ab | |||
| fe96376a73 | |||
| 47cae2929f | |||
| 5402eaf9bd | |||
| 911a87e006 | |||
| f04d1096d4 | |||
| 71396f77d3 | |||
| dca48f0e63 | |||
| a6dafb058e | |||
| a1e04942a2 | |||
| a20d0794e6 | |||
| 3279337f47 | |||
| 83b6bc8e05 | |||
| 6cb0fa4128 | |||
| 4b7f8ad9c6 | |||
| 232e8682d1 | |||
| 56ca47ab9d | |||
| 421dd62800 | |||
| 26dba44cd3 | |||
| 34b5041576 | |||
| 6c2e6ea38e | |||
| 1c4ed8b106 | |||
| 6e4a5cc8c6 | |||
| d35e2fda10 | |||
| 6ed52fb765 | |||
| 110afff415 | |||
| d92fa40c62 | |||
| faa270071d | |||
| 787fdc95bb | |||
| d66e9efac5 | |||
| 8908b15471 | |||
| ce507deb9f | |||
| a59066bca9 | |||
| 0446dd3ad8 | |||
| bef9791ea3 | |||
| 66bedc1a24 | |||
| 77769e284f | |||
| d14b068147 | |||
| 6876e79d42 | |||
| 7fcb5c1424 | |||
| 0cc4b08b93 | |||
| 267f3a03d9 | |||
| ae7c602031 | |||
| 3cd9af2409 | |||
| c095ee9ce9 |
@@ -0,0 +1,36 @@
|
||||
Thank you for submitting your feedback to the Marlin project.
|
||||
Please use one of the templates below to fill out this box.
|
||||
|
||||
------------------------------------------------------------
|
||||
### Feature Request
|
||||
Please put [FR] in the issue title: `[FR] Add-on that goes 'ping'`
|
||||
|
||||
------------------------------------------------------------
|
||||
### Compile Error
|
||||
When I compile with `FEATURE_X` I get an error:
|
||||
```
|
||||
Paste_the_error_text_here
|
||||
```
|
||||
|
||||
------------------------------------------------------------
|
||||
### Bug Report
|
||||
- Description: ---
|
||||
- Expected behaviour: ---
|
||||
- Actual behaviour: ---
|
||||
- Steps to reproduce:
|
||||
- Do this
|
||||
- Do that
|
||||
|
||||
Attach a ZIP of `Configuration.h` and `Configuration_adv.h` by dropping here.
|
||||
|
||||
------------------------------------------------------------
|
||||
### Bug Report Tips
|
||||
- When troubleshooting, use `M502` followed by `M500` to reset EEPROM to defaults.
|
||||
- Use `DEBUG_LEVELING_FEATURE` with `M111 S247` for detailed logging of homing/leveling.
|
||||
- Format text with: **bold**, _italic_, `code`.
|
||||
- Format C++ with three backticks, plus "cpp":
|
||||
```cpp
|
||||
void my_function(bool do_it) {
|
||||
// Hold this spot
|
||||
}
|
||||
```
|
||||
+8
-4
@@ -52,6 +52,7 @@ tags
|
||||
*.lo
|
||||
*.o
|
||||
*.obj
|
||||
*.ino.cpp
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
@@ -115,10 +116,9 @@ tags
|
||||
*.dSYM/
|
||||
*.su
|
||||
|
||||
#PlatformIO files/dirs
|
||||
.pioenvs
|
||||
.piolib
|
||||
.piolibdeps
|
||||
# PlatformIO files/dirs
|
||||
.pio*
|
||||
lib/readme.txt
|
||||
|
||||
#Visual Studio
|
||||
*.sln
|
||||
@@ -132,3 +132,7 @@ Marlin/.vs/
|
||||
#cmake
|
||||
CMakeLists.txt
|
||||
Marlin/CMakeLists.txt
|
||||
CMakeListsPrivate.txt
|
||||
|
||||
#CLion
|
||||
cmake-build-*
|
||||
|
||||
+50
-128
@@ -71,48 +71,15 @@ script:
|
||||
#
|
||||
- build_marlin
|
||||
#
|
||||
# Test heated bed temperature sensor
|
||||
#
|
||||
- opt_set TEMP_SENSOR_BED 1
|
||||
- build_marlin
|
||||
#
|
||||
# Test 2 extruders on basic RAMPS 1.4
|
||||
# Test 2 extruders (one MAX6675) and heated bed on basic RAMPS 1.4
|
||||
# plus a "Fix Mounted" Probe with Safe Homing and some arc options
|
||||
#
|
||||
- opt_set MOTHERBOARD BOARD_RAMPS_14_EEB
|
||||
- opt_set EXTRUDERS 2
|
||||
- opt_set TEMP_SENSOR_1 1
|
||||
- build_marlin
|
||||
#
|
||||
# Test 5 extruders on AZTEEG_X3_PRO (can use any board with >=5 extruders defined)
|
||||
# Include a test for LIN_ADVANCE here also
|
||||
#
|
||||
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
|
||||
- opt_set EXTRUDERS 5
|
||||
- opt_set TEMP_SENSOR_1 1
|
||||
- opt_set TEMP_SENSOR_2 5
|
||||
- opt_set TEMP_SENSOR_3 20
|
||||
- opt_set TEMP_SENSOR_4 999
|
||||
- opt_set TEMP_SENSOR_BED 1
|
||||
- opt_enable_adv LIN_ADVANCE
|
||||
- build_marlin
|
||||
#
|
||||
# Test PIDTEMPBED
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set TEMP_SENSOR_BED 1
|
||||
- opt_enable PIDTEMPBED
|
||||
- build_marlin
|
||||
#
|
||||
# Test MAX6675
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set TEMP_SENSOR_0 -2
|
||||
- build_marlin
|
||||
#
|
||||
# Test a "Fix Mounted" Probe along with Safe Homing
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable FIX_MOUNTED_PROBE Z_SAFE_HOMING
|
||||
- opt_set TEMP_SENSOR_1 1
|
||||
- opt_set TEMP_SENSOR_BED 1
|
||||
- opt_enable PIDTEMPBED FIX_MOUNTED_PROBE Z_SAFE_HOMING ARC_P_CIRCLES CNC_WORKSPACE_PLANES
|
||||
- build_marlin
|
||||
#
|
||||
# ...with AUTO_BED_LEVELING_LINEAR, Z_MIN_PROBE_REPEATABILITY_TEST, and DEBUG_LEVELING_FEATURE
|
||||
@@ -126,6 +93,7 @@ script:
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable AUTO_BED_LEVELING_UBL UBL_G26_MESH_EDITING ENABLE_LEVELING_FADE_HEIGHT FIX_MOUNTED_PROBE EEPROM_SETTINGS G3D_PANEL
|
||||
- opt_enable_adv CUSTOM_USER_MENUS I2C_POSITION_ENCODERS BABYSTEPPING
|
||||
- build_marlin
|
||||
#
|
||||
# Test a Sled Z Probe
|
||||
@@ -150,17 +118,27 @@ script:
|
||||
- opt_enable MESH_BED_LEVELING MESH_G28_REST_ORIGIN LCD_BED_LEVELING ULTIMAKERCONTROLLER
|
||||
- build_marlin
|
||||
#
|
||||
# Test PROBE_MANUALLY feature, with LCD support
|
||||
# Test PROBE_MANUALLY feature, with LCD support,
|
||||
# EEPROM_SETTINGS, EEPROM_CHITCHAT, M100_FREE_MEMORY_WATCHER,
|
||||
# INCH_MODE_SUPPORT, TEMPERATURE_UNITS_SUPPORT
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set MOTHERBOARD BOARD_MINIRAMBO
|
||||
- opt_enable PROBE_MANUALLY AUTO_BED_LEVELING_BILINEAR LCD_BED_LEVELING ULTIMAKERCONTROLLER
|
||||
- opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT M100_FREE_MEMORY_WATCHER M100_FREE_MEMORY_DUMPER M100_FREE_MEMORY_CORRUPTOR INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT
|
||||
- build_marlin
|
||||
#
|
||||
# Test EEPROM_SETTINGS, EEPROM_CHITCHAT, M100_FREE_MEMORY_WATCHER,
|
||||
# INCH_MODE_SUPPORT, TEMPERATURE_UNITS_SUPPORT
|
||||
# Test 5 extruders on AZTEEG_X3_PRO (can use any board with >=5 extruders defined)
|
||||
# Include a test for LIN_ADVANCE here also
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable EEPROM_SETTINGS EEPROM_CHITCHAT M100_FREE_MEMORY_WATCHER M100_FREE_MEMORY_DUMPER M100_FREE_MEMORY_CORRUPTOR INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT
|
||||
- opt_set MOTHERBOARD BOARD_AZTEEG_X3_PRO
|
||||
- opt_set EXTRUDERS 5
|
||||
- opt_set TEMP_SENSOR_1 1
|
||||
- opt_set TEMP_SENSOR_2 5
|
||||
- opt_set TEMP_SENSOR_3 20
|
||||
- opt_set TEMP_SENSOR_4 999
|
||||
- opt_set TEMP_SENSOR_BED 1
|
||||
- opt_enable_adv LIN_ADVANCE
|
||||
- build_marlin
|
||||
#
|
||||
# Mixing Extruder with 5 steppers
|
||||
@@ -201,34 +179,19 @@ script:
|
||||
- build_marlin
|
||||
#
|
||||
# Test MINIRAMBO for PWM_MOTOR_CURRENT
|
||||
# ULTIMAKERCONTROLLER, FILAMENT_LCD_DISPLAY, FILAMENT_WIDTH_SENSOR,
|
||||
# PRINTCOUNTER, NOZZLE_PARK_FEATURE, NOZZLE_CLEAN_FEATURE, PCA9632,
|
||||
# Z_DUAL_STEPPER_DRIVERS, Z_DUAL_ENDSTOPS, BEZIER_CURVE_SUPPORT, EXPERIMENTAL_I2CBUS,
|
||||
# FILAMENT_CHANGE_FEATURE, PARK_HEAD_ON_PAUSE, LCD_INFO_MENU,
|
||||
#
|
||||
- restore_configs
|
||||
- opt_set MOTHERBOARD BOARD_MINIRAMBO
|
||||
- build_marlin
|
||||
#
|
||||
# Test FILAMENT_CHANGE_FEATURE, PARK_HEAD_ON_PAUSE, and LCD_INFO_MENU
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable ULTIMAKERCONTROLLER
|
||||
- opt_enable_adv FILAMENT_CHANGE_FEATURE PARK_HEAD_ON_PAUSE LCD_INFO_MENU
|
||||
- build_marlin
|
||||
#
|
||||
# Enable filament sensor
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable FILAMENT_WIDTH_SENSOR
|
||||
- build_marlin
|
||||
#
|
||||
# Enable filament sensor with LCD display
|
||||
#
|
||||
- opt_enable ULTIMAKERCONTROLLER FILAMENT_LCD_DISPLAY
|
||||
- build_marlin
|
||||
#
|
||||
# Enable BEZIER_CURVE_SUPPORT, EXPERIMENTAL_I2CBUS, and I2C_SLAVE_ADDRESS
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable_adv BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS
|
||||
- opt_enable ULTIMAKERCONTROLLER FILAMENT_LCD_DISPLAY FILAMENT_WIDTH_SENSOR SDSUPPORT
|
||||
- opt_enable PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE PCA9632
|
||||
- opt_enable_adv Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS BEZIER_CURVE_SUPPORT EXPERIMENTAL_I2CBUS
|
||||
- opt_set_adv I2C_SLAVE_ADDRESS 63
|
||||
- opt_enable_adv FILAMENT_CHANGE_FEATURE PARK_HEAD_ON_PAUSE LCD_INFO_MENU
|
||||
- pins_set RAMPS X_MAX_PIN -1
|
||||
- opt_set_adv Z2_MAX_PIN 2
|
||||
- build_marlin
|
||||
#
|
||||
# Enable COREXY
|
||||
@@ -239,38 +202,12 @@ script:
|
||||
#
|
||||
# Enable COREYX (swapped)
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable COREYX
|
||||
- build_marlin
|
||||
#
|
||||
# Enable Z_DUAL_STEPPER_DRIVERS, Z_DUAL_ENDSTOPS
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable_adv Z_DUAL_STEPPER_DRIVERS Z_DUAL_ENDSTOPS
|
||||
- pins_set RAMPS X_MAX_PIN -1
|
||||
- opt_set_adv Z2_MAX_PIN 2
|
||||
- build_marlin
|
||||
#
|
||||
# Test PRINTCOUNTER
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable PRINTCOUNTER
|
||||
- build_marlin
|
||||
#
|
||||
# Test NOZZLE_PARK_FEATURE
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable NOZZLE_PARK_FEATURE
|
||||
- build_marlin
|
||||
#
|
||||
# Test NOZZLE_CLEAN_FEATURE
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable NOZZLE_CLEAN_FEATURE
|
||||
- build_marlin
|
||||
#- restore_configs
|
||||
#- opt_enable COREYX
|
||||
#- build_marlin
|
||||
#
|
||||
#
|
||||
######## STANDARD LCD/PANELS ##############
|
||||
######## Other Standard LCD/Panels ##############
|
||||
#
|
||||
# ULTRA_LCD
|
||||
#
|
||||
@@ -284,12 +221,6 @@ script:
|
||||
- opt_enable DOGLCD
|
||||
- build_marlin
|
||||
#
|
||||
# ULTIMAKERCONTROLLER
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable ULTIMAKERCONTROLLER
|
||||
- build_marlin
|
||||
#
|
||||
# MAKRPANEL
|
||||
# Needs to use Melzi and Sanguino hardware
|
||||
#
|
||||
@@ -297,31 +228,29 @@ script:
|
||||
#- opt_enable MAKRPANEL
|
||||
#- build_marlin
|
||||
#
|
||||
# REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, and BABYSTEPPING
|
||||
# REPRAP_DISCOUNT_SMART_CONTROLLER, SDSUPPORT, BABYSTEPPING, RIGIDBOARD_V2, and DAC_MOTOR_CURRENT_DEFAULT
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING
|
||||
- opt_set MOTHERBOARD BOARD_RIGIDBOARD_V2
|
||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT BABYSTEPPING DAC_MOTOR_CURRENT_DEFAULT
|
||||
- build_marlin
|
||||
#
|
||||
# G3D_PANEL
|
||||
# G3D_PANEL with SDCARD_SORT_ALPHA and STATUS_MESSAGE_SCROLLING
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable G3D_PANEL SDSUPPORT
|
||||
- build_marlin
|
||||
#
|
||||
# Add SDCARD_SORT_ALPHA, test G3D_PANEL again
|
||||
#
|
||||
- opt_enable_adv SDCARD_SORT_ALPHA
|
||||
- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING
|
||||
- opt_set_adv SDSORT_GCODE true
|
||||
- opt_set_adv SDSORT_USES_RAM true
|
||||
- opt_set_adv SDSORT_USES_STACK true
|
||||
- opt_set_adv SDSORT_CACHE_NAMES true
|
||||
- build_marlin
|
||||
#
|
||||
# REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
# REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER with SDCARD_SORT_ALPHA and STATUS_MESSAGE_SCROLLING
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT
|
||||
- opt_enable_adv SDCARD_SORT_ALPHA STATUS_MESSAGE_SCROLLING
|
||||
- build_marlin
|
||||
#
|
||||
# REPRAPWORLD_KEYPAD
|
||||
@@ -371,21 +300,20 @@ script:
|
||||
######## Example Configurations ##############
|
||||
#
|
||||
# BQ Hephestos 2
|
||||
- restore_configs
|
||||
- use_example_configs Hephestos_2
|
||||
- build_marlin
|
||||
#- restore_configs
|
||||
#- use_example_configs Hephestos_2
|
||||
#- build_marlin
|
||||
#
|
||||
# Delta Config (generic)
|
||||
- restore_configs
|
||||
# Delta Config (generic) + ABL bilinear + PROBE_MANUALLY
|
||||
- use_example_configs delta/generic
|
||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU
|
||||
- opt_enable REPRAP_DISCOUNT_SMART_CONTROLLER DELTA_CALIBRATION_MENU AUTO_BED_LEVELING_BILINEAR PROBE_MANUALLY
|
||||
- build_marlin
|
||||
#
|
||||
# Delta Config (generic) + ABL + ALLEN_KEY
|
||||
# Delta Config (generic) + UBL + ALLEN_KEY + OLED_PANEL_TINYBOY2 + EEPROM_SETTINGS
|
||||
#
|
||||
- use_example_configs delta/generic
|
||||
- opt_disable DISABLE_MIN_ENDSTOPS
|
||||
- opt_enable AUTO_BED_LEVELING_BILINEAR Z_PROBE_ALLEN_KEY
|
||||
- opt_enable AUTO_BED_LEVELING_UBL Z_PROBE_ALLEN_KEY EEPROM_SETTINGS EEPROM_CHITCHAT OLED_PANEL_TINYBOY2
|
||||
- build_marlin
|
||||
#
|
||||
# Delta Config (FLSUN AC because it's complex)
|
||||
@@ -398,17 +326,11 @@ script:
|
||||
#- use_example_configs makibox
|
||||
#- build_marlin
|
||||
#
|
||||
# SCARA Config
|
||||
# SCARA with TMC2130
|
||||
#
|
||||
- use_example_configs SCARA
|
||||
- opt_enable AUTO_BED_LEVELING_BILINEAR FIX_MOUNTED_PROBE USE_ZMIN_PLUG EEPROM_SETTINGS EEPROM_CHITCHAT ULTIMAKERCONTROLLER
|
||||
- build_marlin
|
||||
#
|
||||
# TMC2130 Config
|
||||
#
|
||||
- restore_configs
|
||||
- opt_enable_adv HAVE_TMC2130 X_IS_TMC2130 Y_IS_TMC2130 Z_IS_TMC2130
|
||||
- build_marlin
|
||||
- opt_enable_adv AUTOMATIC_CURRENT_CONTROL STEALTHCHOP HYBRID_THRESHOLD SENSORLESS_HOMING
|
||||
- build_marlin
|
||||
#
|
||||
|
||||
+117
-70
@@ -31,22 +31,43 @@
|
||||
#define LCD_HAS_DIRECTIONAL_BUTTONS (BUTTON_EXISTS(UP) || BUTTON_EXISTS(DWN) || BUTTON_EXISTS(LFT) || BUTTON_EXISTS(RT))
|
||||
|
||||
#if ENABLED(CARTESIO_UI)
|
||||
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
#define DEFAULT_LCD_CONTRAST 90
|
||||
#define LCD_CONTRAST_MIN 60
|
||||
#define LCD_CONTRAST_MAX 140
|
||||
#endif
|
||||
|
||||
#if ENABLED(MAKRPANEL) || ENABLED(MINIPANEL)
|
||||
#elif ENABLED(MAKRPANEL) || ENABLED(MINIPANEL)
|
||||
|
||||
#define DOGLCD
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
#define DEFAULT_LCD_CONTRAST 17
|
||||
#endif
|
||||
|
||||
#if ENABLED(miniVIKI) || ENABLED(VIKI2) || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
||||
#elif ENABLED(ANET_KEYPAD_LCD)
|
||||
|
||||
#define REPRAPWORLD_KEYPAD
|
||||
#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
|
||||
#define ADC_KEYPAD
|
||||
#define ADC_KEY_NUM 8
|
||||
#define ULTIPANEL
|
||||
// this helps to implement ADC_KEYPAD menus
|
||||
#define ENCODER_STEPS_PER_MENU_ITEM 1
|
||||
#define REVERSE_MENU_DIRECTION
|
||||
|
||||
#elif ENABLED(ANET_FULL_GRAPHICS_LCD)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
|
||||
#elif ENABLED(BQ_LCD_SMART_CONTROLLER)
|
||||
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
#define LONG_FILENAME_HOST_SUPPORT
|
||||
|
||||
#elif ENABLED(miniVIKI) || ENABLED(VIKI2) || ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
||||
|
||||
#define ULTRA_LCD //general LCD support, also 16x2
|
||||
#define DOGLCD // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
|
||||
#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
|
||||
@@ -65,14 +86,28 @@
|
||||
#define SD_DETECT_INVERTED
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#elif ENABLED(OLED_PANEL_TINYBOY2)
|
||||
|
||||
#if ENABLED(OLED_PANEL_TINYBOY2)
|
||||
#define U8GLIB_SSD1306
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
#define REVERSE_ENCODER_DIRECTION
|
||||
#define REVERSE_MENU_DIRECTION
|
||||
|
||||
#elif ENABLED(RA_CONTROL_PANEL)
|
||||
|
||||
#define LCD_I2C_TYPE_PCA8574
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
|
||||
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
|
||||
|
||||
#define DOGLCD
|
||||
#define U8GLIB_ST7920
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
|
||||
#endif
|
||||
|
||||
// Generic support for SSD1306 / SH1106 OLED based LCDs.
|
||||
@@ -85,14 +120,7 @@
|
||||
#define ULTIMAKERCONTROLLER
|
||||
#endif
|
||||
|
||||
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
|
||||
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
|
||||
#ifndef LONG_FILENAME_HOST_SUPPORT
|
||||
#define LONG_FILENAME_HOST_SUPPORT
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
|
||||
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) || ENABLED(LCD_FOR_MELZI)
|
||||
#define DOGLCD
|
||||
#define U8GLIB_ST7920
|
||||
#define REPRAP_DISCOUNT_SMART_CONTROLLER
|
||||
@@ -101,24 +129,16 @@
|
||||
#if ENABLED(ULTIMAKERCONTROLLER) \
|
||||
|| ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) \
|
||||
|| ENABLED(G3D_PANEL) \
|
||||
|| ENABLED(RIGIDBOT_PANEL) \
|
||||
|| ENABLED(REPRAPWORLD_KEYPAD)
|
||||
|| ENABLED(RIGIDBOT_PANEL)
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
#endif
|
||||
|
||||
#if ENABLED(RA_CONTROL_PANEL)
|
||||
#define LCD_I2C_TYPE_PCA8574
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
#endif
|
||||
|
||||
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
|
||||
#define DOGLCD
|
||||
#define U8GLIB_ST7920
|
||||
#define ULTIPANEL
|
||||
#if ENABLED(REPRAPWORLD_KEYPAD)
|
||||
#define NEWPANEL
|
||||
#if ENABLED(ULTIPANEL) && !defined(REPRAPWORLD_KEYPAD_MOVE_STEP)
|
||||
#define REPRAPWORLD_KEYPAD_MOVE_STEP 1.0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -126,29 +146,35 @@
|
||||
*/
|
||||
|
||||
#if ENABLED(LCD_I2C_SAINSMART_YWROBOT)
|
||||
// This uses the LiquidCrystal_I2C library ( https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home )
|
||||
// Make sure it is placed in the Arduino libraries directory.
|
||||
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
|
||||
#define LCD_I2C_TYPE_PCF8575
|
||||
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
#endif
|
||||
|
||||
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
|
||||
#if ENABLED(LCD_I2C_PANELOLU2)
|
||||
#elif ENABLED(LCD_I2C_PANELOLU2)
|
||||
|
||||
// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
|
||||
|
||||
#define LCD_I2C_TYPE_MCP23017
|
||||
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
|
||||
#define ULTIPANEL
|
||||
#define NEWPANEL
|
||||
#endif
|
||||
|
||||
// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
|
||||
#if ENABLED(LCD_I2C_VIKI)
|
||||
// This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||
// Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||
// Note: The pause/stop/resume LCD button pin should be connected to the Arduino
|
||||
// BTN_ENC pin (or set BTN_ENC to -1 if not used)
|
||||
#elif ENABLED(LCD_I2C_VIKI)
|
||||
|
||||
/**
|
||||
* Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
|
||||
*
|
||||
* This uses the LiquidTWI2 library v1.2.3 or later ( https://github.com/lincomatic/LiquidTWI2 )
|
||||
* Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
|
||||
* Note: The pause/stop/resume LCD button pin should be connected to the Arduino
|
||||
* BTN_ENC pin (or set BTN_ENC to -1 if not used)
|
||||
*/
|
||||
#define LCD_I2C_TYPE_MCP23017
|
||||
#define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
|
||||
#define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
|
||||
@@ -205,7 +231,7 @@
|
||||
#ifndef LCD_HEIGHT
|
||||
#define LCD_HEIGHT 4
|
||||
#endif
|
||||
#else //no panel but just LCD
|
||||
#else // no panel but just LCD
|
||||
#if ENABLED(ULTRA_LCD)
|
||||
#ifndef LCD_WIDTH
|
||||
#define LCD_WIDTH 16
|
||||
@@ -238,15 +264,21 @@
|
||||
#define LCD_STR_FILAM_MUL "\xa4"
|
||||
#else
|
||||
/* Custom characters defined in the first 8 characters of the LCD */
|
||||
#define LCD_STR_BEDTEMP "\x00" // Print only as a char. This will have 'unexpected' results when used in a string!
|
||||
#define LCD_STR_DEGREE "\x01"
|
||||
#define LCD_STR_THERMOMETER "\x02"
|
||||
#define LCD_STR_UPLEVEL "\x03"
|
||||
#define LCD_BEDTEMP_CHAR 0x00 // Print only as a char. This will have 'unexpected' results when used in a string!
|
||||
#define LCD_DEGREE_CHAR 0x01
|
||||
#define LCD_STR_THERMOMETER "\x02" // Still used with string concatenation
|
||||
#define LCD_UPLEVEL_CHAR 0x03
|
||||
#define LCD_STR_REFRESH "\x04"
|
||||
#define LCD_STR_FOLDER "\x05"
|
||||
#define LCD_STR_FEEDRATE "\x06"
|
||||
#define LCD_STR_CLOCK "\x07"
|
||||
#define LCD_FEEDRATE_CHAR 0x06
|
||||
#define LCD_CLOCK_CHAR 0x07
|
||||
#define LCD_STR_ARROW_RIGHT ">" /* from the default character set */
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#define LCD_UBL_BOXTOP_CHAR 0x01
|
||||
#define LCD_UBL_BOXBOT_CHAR 0x02
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -281,6 +313,11 @@
|
||||
|
||||
#define HAS_DEBUG_MENU ENABLED(LCD_PROGRESS_BAR_TEST)
|
||||
|
||||
// MK2 Multiplexer forces SINGLENOZZLE to be enabled
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
#define SINGLENOZZLE
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Extruders have some combination of stepper motors and hotends
|
||||
* so we separate these concepts into the defines:
|
||||
@@ -288,39 +325,38 @@
|
||||
* EXTRUDERS - Number of Selectable Tools
|
||||
* HOTENDS - Number of hotends, whether connected or separate
|
||||
* E_STEPPERS - Number of actual E stepper motors
|
||||
* E_MANUAL - Number of E steppers for LCD move options
|
||||
* TOOL_E_INDEX - Index to use when getting/setting the tool state
|
||||
*
|
||||
*/
|
||||
#if ENABLED(SINGLENOZZLE) // One hotend, multi-extruder
|
||||
#define HOTENDS 1
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#if ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER) // One hotend, one thermistor, no XY offset
|
||||
#define HOTENDS 1
|
||||
#undef TEMP_SENSOR_1_AS_REDUNDANT
|
||||
#undef HOTEND_OFFSET_X
|
||||
#undef HOTEND_OFFSET_Y
|
||||
#elif ENABLED(SWITCHING_EXTRUDER) // One E stepper, unified E axis, two hotends
|
||||
#define HOTENDS EXTRUDERS
|
||||
#define E_STEPPERS 1
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#ifndef HOTEND_OFFSET_Z
|
||||
#else // Two hotends
|
||||
#define HOTENDS EXTRUDERS
|
||||
#if ENABLED(SWITCHING_NOZZLE) && !defined(HOTEND_OFFSET_Z)
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#elif ENABLED(MIXING_EXTRUDER) // Multi-stepper, unified E axis, one hotend
|
||||
#define HOTENDS 1
|
||||
#define E_STEPPERS MIXING_STEPPERS
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#else // One stepper, E axis, and hotend per tool
|
||||
#define HOTENDS EXTRUDERS
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#endif
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(MIXING_EXTRUDER) // Unified E axis
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
#define E_STEPPERS MIXING_STEPPERS
|
||||
#else
|
||||
#define E_STEPPERS 1 // One E stepper
|
||||
#endif
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#else
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Distinct E Factors – Disable by commenting out DISTINCT_E_FACTORS
|
||||
* DISTINCT_E_FACTORS affects how some E factors are accessed
|
||||
*/
|
||||
#if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
|
||||
#define XYZE_N (XYZ + E_STEPPERS)
|
||||
@@ -357,6 +393,10 @@
|
||||
#define BLTOUCH_RESET 160
|
||||
#define _TEST_BLTOUCH(P) (READ(P##_PIN) != P##_ENDSTOP_INVERTING)
|
||||
|
||||
// Always disable probe pin inverting for BLTouch
|
||||
#undef Z_MIN_PROBE_ENDSTOP_INVERTING
|
||||
#define Z_MIN_PROBE_ENDSTOP_INVERTING false
|
||||
|
||||
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
|
||||
#undef Z_MIN_ENDSTOP_INVERTING
|
||||
#define Z_MIN_ENDSTOP_INVERTING false
|
||||
@@ -371,6 +411,13 @@
|
||||
*/
|
||||
#define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
|
||||
|
||||
/**
|
||||
* UBL has its own manual probing, so this just causes trouble.
|
||||
*/
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#undef PROBE_MANUALLY
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set a flag for any enabled probe
|
||||
*/
|
||||
@@ -386,6 +433,6 @@
|
||||
|
||||
#define HAS_SOFTWARE_ENDSTOPS (ENABLED(MIN_SOFTWARE_ENDSTOPS) || ENABLED(MAX_SOFTWARE_ENDSTOPS))
|
||||
#define HAS_RESUME_CONTINUE (ENABLED(NEWPANEL) || ENABLED(EMERGENCY_PARSER))
|
||||
#define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED))
|
||||
#define HAS_COLOR_LEDS (ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632))
|
||||
|
||||
#endif //CONDITIONALS_LCD_H
|
||||
#endif // CONDITIONALS_LCD_H
|
||||
|
||||
+50
-11
@@ -326,7 +326,7 @@
|
||||
#ifndef HOTEND_OFFSET_Y
|
||||
#define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
|
||||
#endif
|
||||
#if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER))
|
||||
#if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE))
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#endif
|
||||
@@ -579,7 +579,7 @@
|
||||
#define HAS_SUICIDE (PIN_EXISTS(SUICIDE))
|
||||
#define HAS_PHOTOGRAPH (PIN_EXISTS(PHOTOGRAPH))
|
||||
#define HAS_BUZZER (PIN_EXISTS(BEEPER) || ENABLED(LCD_USE_I2C_BUZZER))
|
||||
#define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT))
|
||||
#define HAS_CASE_LIGHT (PIN_EXISTS(CASE_LIGHT) && ENABLED(CASE_LIGHT_ENABLE))
|
||||
|
||||
// Digital control
|
||||
#define HAS_MICROSTEPS (HAS_X_MICROSTEPS || HAS_Y_MICROSTEPS || HAS_Z_MICROSTEPS || HAS_E0_MICROSTEPS || HAS_E1_MICROSTEPS || HAS_E2_MICROSTEPS || HAS_E3_MICROSTEPS || HAS_E4_MICROSTEPS)
|
||||
@@ -649,10 +649,11 @@
|
||||
/**
|
||||
* Heater & Fan Pausing
|
||||
*/
|
||||
#if ENABLED(PROBING_FANS_OFF) && FAN_COUNT == 0
|
||||
#if FAN_COUNT == 0
|
||||
#undef PROBING_FANS_OFF
|
||||
#endif
|
||||
#define QUIET_PROBING (ENABLED(PROBING_HEATERS_OFF) || ENABLED(PROBING_FANS_OFF))
|
||||
#define QUIET_PROBING (HAS_BED_PROBE && (ENABLED(PROBING_HEATERS_OFF) || ENABLED(PROBING_FANS_OFF)))
|
||||
#define HEATER_IDLE_HANDLER (ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PROBING_HEATERS_OFF))
|
||||
|
||||
/**
|
||||
* Servos and probes
|
||||
@@ -730,11 +731,13 @@
|
||||
/**
|
||||
* Set granular options based on the specific type of leveling
|
||||
*/
|
||||
|
||||
#define UBL_DELTA (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)))
|
||||
#define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
|
||||
#define ABL_GRID (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
|
||||
#define HAS_ABL (ABL_PLANAR || ABL_GRID || ENABLED(AUTO_BED_LEVELING_UBL))
|
||||
#define HAS_LEVELING (HAS_ABL || ENABLED(MESH_BED_LEVELING))
|
||||
#define PLANNER_LEVELING (ABL_PLANAR || ABL_GRID || ENABLED(MESH_BED_LEVELING))
|
||||
#define PLANNER_LEVELING (ABL_PLANAR || ABL_GRID || ENABLED(MESH_BED_LEVELING) || UBL_DELTA)
|
||||
#define HAS_PROBING_PROCEDURE (HAS_ABL || ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST))
|
||||
#if HAS_PROBING_PROCEDURE
|
||||
#define PROBE_BED_WIDTH abs(RIGHT_PROBE_BED_POSITION - (LEFT_PROBE_BED_POSITION))
|
||||
@@ -779,12 +782,19 @@
|
||||
#define MANUAL_PROBE_HEIGHT Z_HOMING_HEIGHT
|
||||
#endif
|
||||
|
||||
#if IS_KINEMATIC
|
||||
// Check for this in the code instead
|
||||
#define MIN_PROBE_X X_MIN_POS
|
||||
#define MAX_PROBE_X X_MAX_POS
|
||||
#define MIN_PROBE_Y Y_MIN_POS
|
||||
#define MAX_PROBE_Y Y_MAX_POS
|
||||
#if ENABLED(DELTA)
|
||||
// These will be further constrained in code, but UBL_PROBE_PT values
|
||||
// cannot be compile-time verified within the radius.
|
||||
#define MIN_PROBE_X (-DELTA_PRINTABLE_RADIUS)
|
||||
#define MAX_PROBE_X ( DELTA_PRINTABLE_RADIUS)
|
||||
#define MIN_PROBE_Y (-DELTA_PRINTABLE_RADIUS)
|
||||
#define MAX_PROBE_Y ( DELTA_PRINTABLE_RADIUS)
|
||||
#elif IS_SCARA
|
||||
#define SCARA_PRINTABLE_RADIUS (SCARA_LINKAGE_1 + SCARA_LINKAGE_2)
|
||||
#define MIN_PROBE_X (-SCARA_PRINTABLE_RADIUS)
|
||||
#define MAX_PROBE_X ( SCARA_PRINTABLE_RADIUS)
|
||||
#define MIN_PROBE_Y (-SCARA_PRINTABLE_RADIUS)
|
||||
#define MAX_PROBE_Y ( SCARA_PRINTABLE_RADIUS)
|
||||
#else
|
||||
// Boundaries for probing based on set limits
|
||||
#define MIN_PROBE_X (max(X_MIN_POS, X_MIN_POS + X_PROBE_OFFSET_FROM_EXTRUDER))
|
||||
@@ -814,4 +824,33 @@
|
||||
#define LCD_TIMEOUT_TO_STATUS 15000
|
||||
#endif
|
||||
|
||||
/**
|
||||
* DELTA_SEGMENT_MIN_LENGTH and DELTA_PROBEABLE_RADIUS for UBL_DELTA
|
||||
*/
|
||||
#if UBL_DELTA
|
||||
#ifndef DELTA_SEGMENT_MIN_LENGTH
|
||||
#if IS_SCARA
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 0.25 // SCARA minimum segment size is 0.25mm
|
||||
#elif ENABLED(DELTA)
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 0.10 // mm (still subject to DELTA_SEGMENTS_PER_SECOND)
|
||||
#else // CARTESIAN
|
||||
#define DELTA_SEGMENT_MIN_LENGTH 1.00 // mm (similar to G2/G3 arc segmentation)
|
||||
#endif
|
||||
#endif
|
||||
#ifndef DELTA_PROBEABLE_RADIUS
|
||||
#define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Shorthand
|
||||
#define GRID_MAX_POINTS ((GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y))
|
||||
|
||||
// Add commands that need sub-codes to this list
|
||||
#define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET)
|
||||
|
||||
// MESH_BED_LEVELING overrides PROBE_MANUALLY
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#undef PROBE_MANUALLY
|
||||
#endif
|
||||
|
||||
#endif // CONDITIONALS_POST_H
|
||||
|
||||
+80
-25
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Delta printer replace the configuration files with the files in the
|
||||
// example_configurations/delta directory.
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,41 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1[, E2, E3]
|
||||
#if EXTRUDERS > 3
|
||||
#define SWITCHING_EXTRUDER_E23_SERVO_NR 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +196,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +334,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
#define DEFAULT_Kp 22.2
|
||||
#define DEFAULT_Ki 1.08
|
||||
@@ -555,7 +588,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -870,13 +902,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -929,6 +964,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -953,13 +989,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1118,10 +1151,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1143,7 +1177,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1357,6 +1391,21 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1373,6 +1422,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1463,12 +1515,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1506,7 +1561,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
+230
-36
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -639,7 +648,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -669,10 +678,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -761,22 +776,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -787,16 +803,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1017,7 +1034,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1132,6 +1149,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1140,12 +1206,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1165,4 +1231,132 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
+346
-337
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,359 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016, 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef I2CPOSENC_H
|
||||
#define I2CPOSENC_H
|
||||
|
||||
#include "MarlinConfig.h"
|
||||
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#include "enum.h"
|
||||
#include "macros.h"
|
||||
#include "types.h"
|
||||
#include <Wire.h>
|
||||
|
||||
//=========== Advanced / Less-Common Encoder Configuration Settings ==========
|
||||
|
||||
#define I2CPE_EC_THRESH_PROPORTIONAL // if enabled adjusts the error correction threshold
|
||||
// proportional to the current speed of the axis allows
|
||||
// for very small error margin at low speeds without
|
||||
// stuttering due to reading latency at high speeds
|
||||
|
||||
#define I2CPE_DEBUG // enable encoder-related debug serial echos
|
||||
|
||||
#define I2CPE_REBOOT_TIME 5000 // time we wait for an encoder module to reboot
|
||||
// after changing address.
|
||||
|
||||
#define I2CPE_MAG_SIG_GOOD 0
|
||||
#define I2CPE_MAG_SIG_MID 1
|
||||
#define I2CPE_MAG_SIG_BAD 2
|
||||
#define I2CPE_MAG_SIG_NF 255
|
||||
|
||||
#define I2CPE_REQ_REPORT 0
|
||||
#define I2CPE_RESET_COUNT 1
|
||||
#define I2CPE_SET_ADDR 2
|
||||
#define I2CPE_SET_REPORT_MODE 3
|
||||
#define I2CPE_CLEAR_EEPROM 4
|
||||
|
||||
#define I2CPE_LED_PAR_MODE 10
|
||||
#define I2CPE_LED_PAR_BRT 11
|
||||
#define I2CPE_LED_PAR_RATE 14
|
||||
|
||||
#define I2CPE_REPORT_DISTANCE 0
|
||||
#define I2CPE_REPORT_STRENGTH 1
|
||||
#define I2CPE_REPORT_VERSION 2
|
||||
|
||||
// Default I2C addresses
|
||||
#define I2CPE_PRESET_ADDR_X 30
|
||||
#define I2CPE_PRESET_ADDR_Y 31
|
||||
#define I2CPE_PRESET_ADDR_Z 32
|
||||
#define I2CPE_PRESET_ADDR_E 33
|
||||
|
||||
#define I2CPE_DEF_AXIS X_AXIS
|
||||
#define I2CPE_DEF_ADDR I2CPE_PRESET_ADDR_X
|
||||
|
||||
// Error event counter; tracks how many times there is an error exceeding a certain threshold
|
||||
#define I2CPE_ERR_CNT_THRESH 3.00
|
||||
#define I2CPE_ERR_CNT_DEBOUNCE_MS 2000
|
||||
|
||||
#if ENABLED(I2CPE_ERR_ROLLING_AVERAGE)
|
||||
#define I2CPE_ERR_ARRAY_SIZE 32
|
||||
#endif
|
||||
|
||||
// Error Correction Methods
|
||||
#define I2CPE_ECM_NONE 0
|
||||
#define I2CPE_ECM_MICROSTEP 1
|
||||
#define I2CPE_ECM_PLANNER 2
|
||||
#define I2CPE_ECM_STALLDETECT 3
|
||||
|
||||
// Encoder types
|
||||
#define I2CPE_ENC_TYPE_ROTARY 0
|
||||
#define I2CPE_ENC_TYPE_LINEAR 1
|
||||
|
||||
// Parser
|
||||
#define I2CPE_PARSE_ERR 1
|
||||
#define I2CPE_PARSE_OK 0
|
||||
|
||||
#define LOOP_PE(VAR) LOOP_L_N(VAR, I2CPE_ENCODER_CNT)
|
||||
#define CHECK_IDX() do{ if (!WITHIN(idx, 0, I2CPE_ENCODER_CNT - 1)) return; }while(0)
|
||||
|
||||
extern const char axis_codes[XYZE];
|
||||
|
||||
typedef union {
|
||||
volatile int32_t val = 0;
|
||||
uint8_t bval[4];
|
||||
} i2cLong;
|
||||
|
||||
class I2CPositionEncoder {
|
||||
private:
|
||||
AxisEnum encoderAxis = I2CPE_DEF_AXIS;
|
||||
|
||||
uint8_t i2cAddress = I2CPE_DEF_ADDR,
|
||||
ecMethod = I2CPE_DEF_EC_METHOD,
|
||||
type = I2CPE_DEF_TYPE,
|
||||
H = I2CPE_MAG_SIG_NF; // Magnetic field strength
|
||||
|
||||
int encoderTicksPerUnit = I2CPE_DEF_ENC_TICKS_UNIT,
|
||||
stepperTicks = I2CPE_DEF_TICKS_REV,
|
||||
errorCount = 0,
|
||||
errorPrev = 0;
|
||||
|
||||
float ecThreshold = I2CPE_DEF_EC_THRESH;
|
||||
|
||||
bool homed = false,
|
||||
trusted = false,
|
||||
initialised = false,
|
||||
active = false,
|
||||
invert = false,
|
||||
ec = true;
|
||||
|
||||
float axisOffset = 0;
|
||||
|
||||
int32_t axisOffsetTicks = 0,
|
||||
zeroOffset = 0,
|
||||
lastPosition = 0,
|
||||
position;
|
||||
|
||||
millis_t lastPositionTime = 0,
|
||||
nextErrorCountTime = 0,
|
||||
lastErrorTime;
|
||||
|
||||
//double positionMm; //calculate
|
||||
|
||||
#if ENABLED(I2CPE_ERR_ROLLING_AVERAGE)
|
||||
uint8_t errIdx = 0;
|
||||
int err[I2CPE_ERR_ARRAY_SIZE] = { 0 };
|
||||
#endif
|
||||
|
||||
//float positionMm; //calculate
|
||||
|
||||
public:
|
||||
void init(const uint8_t address, const AxisEnum axis);
|
||||
void reset();
|
||||
|
||||
void update();
|
||||
|
||||
void set_homed();
|
||||
|
||||
int32_t get_raw_count();
|
||||
|
||||
FORCE_INLINE float mm_from_count(const int32_t count) {
|
||||
switch (type) {
|
||||
default: return -1;
|
||||
case I2CPE_ENC_TYPE_LINEAR:
|
||||
return count / encoderTicksPerUnit;
|
||||
case I2CPE_ENC_TYPE_ROTARY:
|
||||
return (count * stepperTicks) / (encoderTicksPerUnit * planner.axis_steps_per_mm[encoderAxis]);
|
||||
}
|
||||
}
|
||||
|
||||
FORCE_INLINE float get_position_mm() { return mm_from_count(get_position()); }
|
||||
FORCE_INLINE int32_t get_position() { return get_raw_count() - zeroOffset - axisOffsetTicks; }
|
||||
|
||||
int32_t get_axis_error_steps(const bool report);
|
||||
float get_axis_error_mm(const bool report);
|
||||
|
||||
void calibrate_steps_mm(const uint8_t iter);
|
||||
|
||||
bool passes_test(const bool report);
|
||||
|
||||
bool test_axis(void);
|
||||
|
||||
FORCE_INLINE int get_error_count(void) { return errorCount; }
|
||||
FORCE_INLINE void set_error_count(const int newCount) { errorCount = newCount; }
|
||||
|
||||
FORCE_INLINE uint8_t get_address() { return i2cAddress; }
|
||||
FORCE_INLINE void set_address(const uint8_t addr) { i2cAddress = addr; }
|
||||
|
||||
FORCE_INLINE bool get_active(void) { return active; }
|
||||
FORCE_INLINE void set_active(const bool a) { active = a; }
|
||||
|
||||
FORCE_INLINE void set_inverted(const bool i) { invert = i; }
|
||||
|
||||
FORCE_INLINE AxisEnum get_axis() { return encoderAxis; }
|
||||
|
||||
FORCE_INLINE bool get_ec_enabled() { return ec; }
|
||||
FORCE_INLINE void set_ec_enabled(const bool enabled) { ec = enabled; }
|
||||
|
||||
FORCE_INLINE uint8_t get_ec_method() { return ecMethod; }
|
||||
FORCE_INLINE void set_ec_method(const byte method) { ecMethod = method; }
|
||||
|
||||
FORCE_INLINE float get_ec_threshold() { return ecThreshold; }
|
||||
FORCE_INLINE void set_ec_threshold(const float newThreshold) { ecThreshold = newThreshold; }
|
||||
|
||||
FORCE_INLINE int get_encoder_ticks_mm() {
|
||||
switch (type) {
|
||||
default: return 0;
|
||||
case I2CPE_ENC_TYPE_LINEAR:
|
||||
return encoderTicksPerUnit;
|
||||
case I2CPE_ENC_TYPE_ROTARY:
|
||||
return (int)((encoderTicksPerUnit / stepperTicks) * planner.axis_steps_per_mm[encoderAxis]);
|
||||
}
|
||||
}
|
||||
|
||||
FORCE_INLINE int get_ticks_unit() { return encoderTicksPerUnit; }
|
||||
FORCE_INLINE void set_ticks_unit(const int ticks) { encoderTicksPerUnit = ticks; }
|
||||
|
||||
FORCE_INLINE uint8_t get_type() { return type; }
|
||||
FORCE_INLINE void set_type(const byte newType) { type = newType; }
|
||||
|
||||
FORCE_INLINE int get_stepper_ticks() { return stepperTicks; }
|
||||
FORCE_INLINE void set_stepper_ticks(const int ticks) { stepperTicks = ticks; }
|
||||
|
||||
FORCE_INLINE float get_axis_offset() { return axisOffset; }
|
||||
FORCE_INLINE void set_axis_offset(const float newOffset) {
|
||||
axisOffset = newOffset;
|
||||
axisOffsetTicks = int32_t(axisOffset * get_encoder_ticks_mm());
|
||||
}
|
||||
|
||||
FORCE_INLINE void set_current_position(const float newPositionMm) {
|
||||
set_axis_offset(get_position_mm() - newPositionMm + axisOffset);
|
||||
}
|
||||
};
|
||||
|
||||
class I2CPositionEncodersMgr {
|
||||
private:
|
||||
static bool I2CPE_anyaxis;
|
||||
static uint8_t I2CPE_addr, I2CPE_idx;
|
||||
|
||||
public:
|
||||
|
||||
static void init(void);
|
||||
|
||||
// consider only updating one endoder per call / tick if encoders become too time intensive
|
||||
static void update(void) { LOOP_PE(i) encoders[i].update(); }
|
||||
|
||||
static void homed(const AxisEnum axis) {
|
||||
LOOP_PE(i)
|
||||
if (encoders[i].get_axis() == axis) encoders[i].set_homed();
|
||||
}
|
||||
|
||||
static void report_position(const int8_t idx, const bool units, const bool noOffset);
|
||||
|
||||
static void report_status(const int8_t idx) {
|
||||
CHECK_IDX();
|
||||
SERIAL_ECHOPAIR("Encoder ",idx);
|
||||
SERIAL_ECHOPGM(": ");
|
||||
encoders[idx].get_raw_count();
|
||||
encoders[idx].passes_test(true);
|
||||
}
|
||||
|
||||
static void report_error(const int8_t idx) {
|
||||
CHECK_IDX();
|
||||
encoders[idx].get_axis_error_steps(true);
|
||||
}
|
||||
|
||||
static void test_axis(const int8_t idx) {
|
||||
CHECK_IDX();
|
||||
encoders[idx].test_axis();
|
||||
}
|
||||
|
||||
static void calibrate_steps_mm(const int8_t idx, const int iterations) {
|
||||
CHECK_IDX();
|
||||
encoders[idx].calibrate_steps_mm(iterations);
|
||||
}
|
||||
|
||||
static void change_module_address(const uint8_t oldaddr, const uint8_t newaddr);
|
||||
static void report_module_firmware(const uint8_t address);
|
||||
|
||||
static void report_error_count(const int8_t idx, const AxisEnum axis) {
|
||||
CHECK_IDX();
|
||||
SERIAL_ECHOPAIR("Error count on ", axis_codes[axis]);
|
||||
SERIAL_ECHOLNPAIR(" axis is ", encoders[idx].get_error_count());
|
||||
}
|
||||
|
||||
static void reset_error_count(const int8_t idx, const AxisEnum axis) {
|
||||
CHECK_IDX();
|
||||
encoders[idx].set_error_count(0);
|
||||
SERIAL_ECHOPAIR("Error count on ", axis_codes[axis]);
|
||||
SERIAL_ECHOLNPGM(" axis has been reset.");
|
||||
}
|
||||
|
||||
static void enable_ec(const int8_t idx, const bool enabled, const AxisEnum axis) {
|
||||
CHECK_IDX();
|
||||
encoders[idx].set_ec_enabled(enabled);
|
||||
SERIAL_ECHOPAIR("Error correction on ", axis_codes[axis]);
|
||||
SERIAL_ECHOPGM(" axis is ");
|
||||
serialprintPGM(encoders[idx].get_ec_enabled() ? PSTR("en") : PSTR("dis"));
|
||||
SERIAL_ECHOLNPGM("abled.");
|
||||
}
|
||||
|
||||
static void set_ec_threshold(const int8_t idx, const float newThreshold, const AxisEnum axis) {
|
||||
CHECK_IDX();
|
||||
encoders[idx].set_ec_threshold(newThreshold);
|
||||
SERIAL_ECHOPAIR("Error correct threshold for ", axis_codes[axis]);
|
||||
SERIAL_ECHOPAIR_F(" axis set to ", newThreshold);
|
||||
SERIAL_ECHOLNPGM("mm.");
|
||||
}
|
||||
|
||||
static void get_ec_threshold(const int8_t idx, const AxisEnum axis) {
|
||||
CHECK_IDX();
|
||||
const float threshold = encoders[idx].get_ec_threshold();
|
||||
SERIAL_ECHOPAIR("Error correct threshold for ", axis_codes[axis]);
|
||||
SERIAL_ECHOPAIR_F(" axis is ", threshold);
|
||||
SERIAL_ECHOLNPGM("mm.");
|
||||
}
|
||||
|
||||
static int8_t idx_from_axis(const AxisEnum axis) {
|
||||
LOOP_PE(i)
|
||||
if (encoders[i].get_axis() == axis) return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int8_t idx_from_addr(const uint8_t addr) {
|
||||
LOOP_PE(i)
|
||||
if (encoders[i].get_address() == addr) return i;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int8_t parse();
|
||||
|
||||
static void M860();
|
||||
static void M861();
|
||||
static void M862();
|
||||
static void M863();
|
||||
static void M864();
|
||||
static void M865();
|
||||
static void M866();
|
||||
static void M867();
|
||||
static void M868();
|
||||
static void M869();
|
||||
|
||||
static I2CPositionEncoder encoders[I2CPE_ENCODER_CNT];
|
||||
};
|
||||
|
||||
extern I2CPositionEncodersMgr I2CPEM;
|
||||
|
||||
FORCE_INLINE static void gcode_M860() { I2CPEM.M860(); }
|
||||
FORCE_INLINE static void gcode_M861() { I2CPEM.M861(); }
|
||||
FORCE_INLINE static void gcode_M862() { I2CPEM.M862(); }
|
||||
FORCE_INLINE static void gcode_M863() { I2CPEM.M863(); }
|
||||
FORCE_INLINE static void gcode_M864() { I2CPEM.M864(); }
|
||||
FORCE_INLINE static void gcode_M865() { I2CPEM.M865(); }
|
||||
FORCE_INLINE static void gcode_M866() { I2CPEM.M866(); }
|
||||
FORCE_INLINE static void gcode_M867() { I2CPEM.M867(); }
|
||||
FORCE_INLINE static void gcode_M868() { I2CPEM.M868(); }
|
||||
FORCE_INLINE static void gcode_M869() { I2CPEM.M869(); }
|
||||
|
||||
#endif //I2C_POSITION_ENCODERS
|
||||
#endif //I2CPOSENC_H
|
||||
@@ -61,6 +61,7 @@ extern size_t __heap_start, __heap_end, __flp;
|
||||
extern char __bss_end;
|
||||
|
||||
#include "Marlin.h"
|
||||
#include "gcode.h"
|
||||
#include "hex_print_routines.h"
|
||||
|
||||
//
|
||||
@@ -78,7 +79,7 @@ char* top_of_stack() {
|
||||
}
|
||||
|
||||
// Count the number of test bytes at the specified location.
|
||||
int16_t count_test_bytes(const uint8_t * const ptr) {
|
||||
int16_t count_test_bytes(const char * const ptr) {
|
||||
for (uint16_t i = 0; i < 32000; i++)
|
||||
if (((char) ptr[i]) != TEST_BYTE)
|
||||
return i - 1;
|
||||
@@ -100,13 +101,13 @@ int16_t count_test_bytes(const uint8_t * const ptr) {
|
||||
* the block. If so, it may indicate memory corruption due to a bad pointer.
|
||||
* Unexpected bytes are flagged in the right column.
|
||||
*/
|
||||
void dump_free_memory(const uint8_t *ptr, const uint8_t *sp) {
|
||||
void dump_free_memory(const char *ptr, const char *sp) {
|
||||
//
|
||||
// Start and end the dump on a nice 16 byte boundary
|
||||
// (even though the values are not 16-byte aligned).
|
||||
//
|
||||
ptr = (uint8_t *)((uint16_t)ptr & 0xFFF0); // Align to 16-byte boundary
|
||||
sp = (uint8_t *)((uint16_t)sp | 0x000F); // Align sp to the 15th byte (at or above sp)
|
||||
ptr = (char *)((uint16_t)ptr & 0xFFF0); // Align to 16-byte boundary
|
||||
sp = (char *)((uint16_t)sp | 0x000F); // Align sp to the 15th byte (at or above sp)
|
||||
|
||||
// Dump command main loop
|
||||
while (ptr < sp) {
|
||||
@@ -121,7 +122,7 @@ int16_t count_test_bytes(const uint8_t * const ptr) {
|
||||
SERIAL_CHAR('|'); // Point out non test bytes
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
char ccc = (char)ptr[i]; // cast to char before automatically casting to char on assignment, in case the compiler is broken
|
||||
if (&ptr[i] >= command_queue && &ptr[i] < &command_queue[BUFSIZE][MAX_CMD_SIZE]) { // Print out ASCII in the command buffer area
|
||||
if (&ptr[i] >= (const char*)command_queue && &ptr[i] < (const char*)(command_queue + sizeof(command_queue))) { // Print out ASCII in the command buffer area
|
||||
if (!WITHIN(ccc, ' ', 0x7E)) ccc = ' ';
|
||||
}
|
||||
else { // If not in the command buffer area, flag bytes that don't match the test byte
|
||||
@@ -129,7 +130,7 @@ int16_t count_test_bytes(const uint8_t * const ptr) {
|
||||
}
|
||||
SERIAL_CHAR(ccc);
|
||||
}
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
ptr += 16;
|
||||
safe_delay(25);
|
||||
idle();
|
||||
@@ -153,15 +154,14 @@ void M100_dump_routine(const char * const title, const char *start, const char *
|
||||
* Return the number of free bytes in the memory pool,
|
||||
* with other vital statistics defining the pool.
|
||||
*/
|
||||
void free_memory_pool_report(const char * const ptr, const uint16_t size) {
|
||||
int16_t max_cnt = -1;
|
||||
uint16_t block_cnt = 0;
|
||||
void free_memory_pool_report(char * const ptr, const int16_t size) {
|
||||
int16_t max_cnt = -1, block_cnt = 0;
|
||||
char *max_addr = NULL;
|
||||
// Find the longest block of test bytes in the buffer
|
||||
for (uint16_t i = 0; i < size; i++) {
|
||||
char * const addr = ptr + i;
|
||||
for (int16_t i = 0; i < size; i++) {
|
||||
char *addr = ptr + i;
|
||||
if (*addr == TEST_BYTE) {
|
||||
const uint16_t j = count_test_bytes(addr);
|
||||
const int16_t j = count_test_bytes(addr);
|
||||
if (j > 8) {
|
||||
SERIAL_ECHOPAIR("Found ", j);
|
||||
SERIAL_ECHOLNPAIR(" bytes free at ", hex_address(addr));
|
||||
@@ -189,19 +189,17 @@ void free_memory_pool_report(const char * const ptr, const uint16_t size) {
|
||||
* This is useful to check the correctness of the M100 D and the M100 F commands.
|
||||
*/
|
||||
void corrupt_free_memory(char *ptr, const uint16_t size) {
|
||||
if (code_seen('C')) {
|
||||
ptr += 8;
|
||||
const uint16_t near_top = top_of_stack() - ptr - 250, // -250 to avoid interrupt activity that's altered the stack.
|
||||
j = near_top / (size + 1);
|
||||
ptr += 8;
|
||||
const uint16_t near_top = top_of_stack() - ptr - 250, // -250 to avoid interrupt activity that's altered the stack.
|
||||
j = near_top / (size + 1);
|
||||
|
||||
SERIAL_ECHOLNPGM("Corrupting free memory block.\n");
|
||||
for (uint16_t i = 1; i <= size; i++) {
|
||||
char * const addr = ptr + i * j;
|
||||
*addr = i;
|
||||
SERIAL_ECHOPAIR("\nCorrupting address: ", hex_address(addr));
|
||||
}
|
||||
SERIAL_EOL;
|
||||
SERIAL_ECHOLNPGM("Corrupting free memory block.\n");
|
||||
for (uint16_t i = 1; i <= size; i++) {
|
||||
char * const addr = ptr + i * j;
|
||||
*addr = i;
|
||||
SERIAL_ECHOPAIR("\nCorrupting address: ", hex_address(addr));
|
||||
}
|
||||
SERIAL_EOL();
|
||||
}
|
||||
#endif // M100_FREE_MEMORY_CORRUPTOR
|
||||
|
||||
@@ -209,7 +207,7 @@ void free_memory_pool_report(const char * const ptr, const uint16_t size) {
|
||||
* M100 I
|
||||
* Init memory for the M100 tests. (Automatically applied on the first M100.)
|
||||
*/
|
||||
void init_free_memory(uint8_t *ptr, int16_t size) {
|
||||
void init_free_memory(char *ptr, int16_t size) {
|
||||
SERIAL_ECHOLNPGM("Initializing free memory block.\n\n");
|
||||
|
||||
size -= 250; // -250 to avoid interrupt activity that's altered the stack.
|
||||
@@ -225,11 +223,11 @@ void init_free_memory(uint8_t *ptr, int16_t size) {
|
||||
SERIAL_ECHO(size);
|
||||
SERIAL_ECHOLNPGM(" bytes of memory initialized.\n");
|
||||
|
||||
for (uint16_t i = 0; i < size; i++) {
|
||||
if ((char)ptr[i] != TEST_BYTE) {
|
||||
for (int16_t i = 0; i < size; i++) {
|
||||
if (ptr[i] != TEST_BYTE) {
|
||||
SERIAL_ECHOPAIR("? address : ", hex_address(ptr + i));
|
||||
SERIAL_ECHOLNPAIR("=", hex_byte(ptr[i]));
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -248,23 +246,23 @@ void gcode_M100() {
|
||||
|
||||
// Always init on the first invocation of M100
|
||||
static bool m100_not_initialized = true;
|
||||
if (m100_not_initialized || code_seen('I')) {
|
||||
if (m100_not_initialized || parser.seen('I')) {
|
||||
m100_not_initialized = false;
|
||||
init_free_memory(ptr, sp - ptr);
|
||||
}
|
||||
|
||||
#if ENABLED(M100_FREE_MEMORY_DUMPER)
|
||||
if (code_seen('D'))
|
||||
if (parser.seen('D'))
|
||||
return dump_free_memory(ptr, sp);
|
||||
#endif
|
||||
|
||||
if (code_seen('F'))
|
||||
if (parser.seen('F'))
|
||||
return free_memory_pool_report(ptr, sp - ptr);
|
||||
|
||||
#if ENABLED(M100_FREE_MEMORY_CORRUPTOR)
|
||||
|
||||
if (code_seen('C'))
|
||||
return corrupt_free_memory(ptr, code_value_int());
|
||||
if (parser.seen('C'))
|
||||
return corrupt_free_memory(ptr, parser.value_int());
|
||||
|
||||
#endif
|
||||
}
|
||||
@@ -292,7 +290,7 @@ int check_for_free_memory_corruption(const char * const title) {
|
||||
// idle();
|
||||
safe_delay(20);
|
||||
#ifdef M100_FREE_MEMORY_DUMPER
|
||||
M100_dump_routine(" Memory corruption detected with sp<Heap\n", (char*)0x1B80, 0x21FF);
|
||||
M100_dump_routine(" Memory corruption detected with sp<Heap\n", (char*)0x1B80, (char*)0x21FF);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -323,7 +321,7 @@ int check_for_free_memory_corruption(const char * const title) {
|
||||
SERIAL_ECHOPGM(" return=");
|
||||
if (block_cnt == 1) {
|
||||
SERIAL_CHAR('0'); // if the block_cnt is 1, nothing has broken up the free memory
|
||||
SERIAL_EOL; // area and it is appropriate to say 'no corruption'.
|
||||
SERIAL_EOL(); // area and it is appropriate to say 'no corruption'.
|
||||
return 0;
|
||||
}
|
||||
SERIAL_ECHOLNPGM("true");
|
||||
|
||||
+2
-2
@@ -290,8 +290,8 @@ ifeq ($(HARDWARE_VARIANT), Teensy)
|
||||
SRC = wiring.c
|
||||
VPATH += $(ARDUINO_INSTALL_DIR)/hardware/teensy/cores/teensy
|
||||
endif
|
||||
CXXSRC = WMath.cpp WString.cpp Print.cpp Marlin_main.cpp \
|
||||
MarlinSerial.cpp Sd2Card.cpp SdBaseFile.cpp SdFatUtil.cpp \
|
||||
CXXSRC = WMath.cpp WString.cpp Print.cpp Marlin_main.cpp \
|
||||
MarlinSerial.cpp Sd2Card.cpp SdBaseFile.cpp SdFatUtil.cpp \
|
||||
SdFile.cpp SdVolume.cpp planner.cpp stepper.cpp \
|
||||
temperature.cpp cardreader.cpp configuration_store.cpp \
|
||||
watchdog.cpp SPI.cpp servo.cpp Tone.cpp ultralcd.cpp digipot_mcp4451.cpp \
|
||||
|
||||
+80
-29
@@ -35,6 +35,10 @@
|
||||
|
||||
#include "MarlinConfig.h"
|
||||
|
||||
#ifdef DEBUG_GCODE_PARSER
|
||||
#include "gcode.h"
|
||||
#endif
|
||||
|
||||
#include "enum.h"
|
||||
#include "types.h"
|
||||
#include "fastio.h"
|
||||
@@ -48,7 +52,7 @@
|
||||
#endif
|
||||
|
||||
void idle(
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
bool no_stepper_sleep = false // pass true to keep steppers from disabling on timeout
|
||||
#endif
|
||||
);
|
||||
@@ -206,7 +210,7 @@ inline void refresh_cmd_timeout() { previous_cmd_ms = millis(); }
|
||||
/**
|
||||
* Feedrate scaling and conversion
|
||||
*/
|
||||
extern int feedrate_percentage;
|
||||
extern int16_t feedrate_percentage;
|
||||
|
||||
#define MMM_TO_MMS(MM_M) ((MM_M)/60.0)
|
||||
#define MMS_TO_MMM(MM_S) ((MM_S)*60.0)
|
||||
@@ -214,11 +218,11 @@ extern int feedrate_percentage;
|
||||
|
||||
extern bool axis_relative_modes[];
|
||||
extern bool volumetric_enabled;
|
||||
extern int flow_percentage[EXTRUDERS]; // Extrusion factor for each extruder
|
||||
extern int16_t flow_percentage[EXTRUDERS]; // Extrusion factor for each extruder
|
||||
extern float filament_size[EXTRUDERS]; // cross-sectional area of filament (in millimeters), typically around 1.75 or 2.85, 0 disables the volumetric calculations for the extruder.
|
||||
extern float volumetric_multiplier[EXTRUDERS]; // reciprocal of cross-sectional area of filament (in square millimeters), stored this way to reduce computational burden in planner
|
||||
extern bool axis_known_position[XYZ]; // axis[n].is_known
|
||||
extern bool axis_homed[XYZ]; // axis[n].is_homed
|
||||
extern bool axis_known_position[XYZ];
|
||||
extern bool axis_homed[XYZ];
|
||||
extern volatile bool wait_for_heatup;
|
||||
|
||||
#if HAS_RESUME_CONTINUE
|
||||
@@ -287,22 +291,6 @@ extern float soft_endstop_min[XYZ], soft_endstop_max[XYZ];
|
||||
void update_software_endstops(const AxisEnum axis);
|
||||
#endif
|
||||
|
||||
// GCode support for external objects
|
||||
bool code_seen(char);
|
||||
int code_value_int();
|
||||
int16_t code_value_temp_abs();
|
||||
int16_t code_value_temp_diff();
|
||||
|
||||
#if ENABLED(INCH_MODE_SUPPORT)
|
||||
float code_value_linear_units();
|
||||
float code_value_axis_units(const AxisEnum axis);
|
||||
float code_value_per_axis_unit(const AxisEnum axis);
|
||||
#else
|
||||
#define code_value_linear_units() code_value_float()
|
||||
#define code_value_axis_units(A) code_value_float()
|
||||
#define code_value_per_axis_unit(A) code_value_float()
|
||||
#endif
|
||||
|
||||
#if IS_KINEMATIC
|
||||
extern float delta[ABC];
|
||||
void inverse_kinematics(const float logical[XYZ]);
|
||||
@@ -326,7 +314,6 @@ int16_t code_value_temp_diff();
|
||||
extern float bilinear_grid_factor[2],
|
||||
z_values[GRID_MAX_POINTS_X][GRID_MAX_POINTS_Y];
|
||||
float bilinear_z_offset(const float logical[XYZ]);
|
||||
void set_bed_leveling_enabled(bool enable=true);
|
||||
#endif
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
@@ -335,6 +322,9 @@ int16_t code_value_temp_diff();
|
||||
#endif
|
||||
|
||||
#if HAS_LEVELING
|
||||
bool leveling_is_valid();
|
||||
bool leveling_is_active();
|
||||
void set_bed_leveling_enabled(const bool enable=true);
|
||||
void reset_bed_level();
|
||||
#endif
|
||||
|
||||
@@ -351,6 +341,9 @@ int16_t code_value_temp_diff();
|
||||
void refresh_zprobe_zoffset(const bool no_babystep=false);
|
||||
#define DEPLOY_PROBE() set_probe_deployed(true)
|
||||
#define STOW_PROBE() set_probe_deployed(false)
|
||||
#else
|
||||
#define DEPLOY_PROBE()
|
||||
#define STOW_PROBE()
|
||||
#endif
|
||||
|
||||
#if ENABLED(HOST_KEEPALIVE_FEATURE)
|
||||
@@ -377,13 +370,13 @@ int16_t code_value_temp_diff();
|
||||
extern bool filament_sensor; // Flag that filament sensor readings should control extrusion
|
||||
extern float filament_width_nominal, // Theoretical filament diameter i.e., 3.00 or 1.75
|
||||
filament_width_meas; // Measured filament diameter
|
||||
extern int8_t measurement_delay[]; // Ring buffer to delay measurement
|
||||
extern int filwidth_delay_index[2]; // Ring buffer indexes. Used by planner, temperature, and main code
|
||||
extern int meas_delay_cm; // Delay distance
|
||||
extern uint8_t meas_delay_cm, // Delay distance
|
||||
measurement_delay[]; // Ring buffer to delay measurement
|
||||
extern int8_t filwidth_delay_index[2]; // Ring buffer indexes. Used by planner, temperature, and main code
|
||||
#endif
|
||||
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
extern FilamentChangeMenuResponse filament_change_menu_response;
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
extern AdvancedPauseMenuResponse advanced_pause_menu_response;
|
||||
#endif
|
||||
|
||||
#if ENABLED(PID_EXTRUSION_SCALING)
|
||||
@@ -426,7 +419,65 @@ void do_blocking_move_to_z(const float &z, const float &fr_mm_s=0.0);
|
||||
void do_blocking_move_to_xy(const float &x, const float &y, const float &fr_mm_s=0.0);
|
||||
|
||||
#if ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) || HAS_PROBING_PROCEDURE || HOTENDS > 1 || ENABLED(NOZZLE_CLEAN_FEATURE) || ENABLED(NOZZLE_PARK_FEATURE)
|
||||
bool axis_unhomed_error(const bool x, const bool y, const bool z);
|
||||
bool axis_unhomed_error(const bool x=true, const bool y=true, const bool z=true);
|
||||
#endif
|
||||
|
||||
#endif //MARLIN_H
|
||||
/**
|
||||
* position_is_reachable family of functions
|
||||
*/
|
||||
|
||||
#if IS_KINEMATIC // (DELTA or SCARA)
|
||||
|
||||
#if IS_SCARA
|
||||
extern const float L1, L2;
|
||||
#endif
|
||||
|
||||
inline bool position_is_reachable_raw_xy(const float &rx, const float &ry) {
|
||||
#if ENABLED(DELTA)
|
||||
return HYPOT2(rx, ry) <= sq(DELTA_PRINTABLE_RADIUS);
|
||||
#elif IS_SCARA
|
||||
#if MIDDLE_DEAD_ZONE_R > 0
|
||||
const float R2 = HYPOT2(rx - SCARA_OFFSET_X, ry - SCARA_OFFSET_Y);
|
||||
return R2 >= sq(float(MIDDLE_DEAD_ZONE_R)) && R2 <= sq(L1 + L2);
|
||||
#else
|
||||
return HYPOT2(rx - SCARA_OFFSET_X, ry - SCARA_OFFSET_Y) <= sq(L1 + L2);
|
||||
#endif
|
||||
#else // CARTESIAN
|
||||
// To be migrated from MakerArm branch in future
|
||||
#endif
|
||||
}
|
||||
|
||||
inline bool position_is_reachable_by_probe_raw_xy(const float &rx, const float &ry) {
|
||||
|
||||
// Both the nozzle and the probe must be able to reach the point.
|
||||
// This won't work on SCARA since the probe offset rotates with the arm.
|
||||
|
||||
return position_is_reachable_raw_xy(rx, ry)
|
||||
&& position_is_reachable_raw_xy(rx - X_PROBE_OFFSET_FROM_EXTRUDER, ry - Y_PROBE_OFFSET_FROM_EXTRUDER);
|
||||
}
|
||||
|
||||
#else // CARTESIAN
|
||||
|
||||
inline bool position_is_reachable_raw_xy(const float &rx, const float &ry) {
|
||||
// Add 0.001 margin to deal with float imprecision
|
||||
return WITHIN(rx, X_MIN_POS - 0.001, X_MAX_POS + 0.001)
|
||||
&& WITHIN(ry, Y_MIN_POS - 0.001, Y_MAX_POS + 0.001);
|
||||
}
|
||||
|
||||
inline bool position_is_reachable_by_probe_raw_xy(const float &rx, const float &ry) {
|
||||
// Add 0.001 margin to deal with float imprecision
|
||||
return WITHIN(rx, MIN_PROBE_X - 0.001, MAX_PROBE_X + 0.001)
|
||||
&& WITHIN(ry, MIN_PROBE_Y - 0.001, MAX_PROBE_Y + 0.001);
|
||||
}
|
||||
|
||||
#endif // CARTESIAN
|
||||
|
||||
FORCE_INLINE bool position_is_reachable_by_probe_xy(const float &lx, const float &ly) {
|
||||
return position_is_reachable_by_probe_raw_xy(RAW_X_POSITION(lx), RAW_Y_POSITION(ly));
|
||||
}
|
||||
|
||||
FORCE_INLINE bool position_is_reachable_xy(const float &lx, const float &ly) {
|
||||
return position_is_reachable_raw_xy(RAW_X_POSITION(lx), RAW_Y_POSITION(ly));
|
||||
}
|
||||
|
||||
#endif // MARLIN_H
|
||||
|
||||
@@ -320,7 +320,8 @@
|
||||
// space for us.
|
||||
if (TEST(M_UCSRxA, M_UDREx))
|
||||
_tx_udr_empty_irq();
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
// nop, the interrupt handler will free up space for us
|
||||
}
|
||||
}
|
||||
|
||||
+2711
-1912
File diff suppressed because it is too large
Load Diff
+396
-209
@@ -99,7 +99,31 @@
|
||||
#elif defined(SERVO_DEACTIVATION_DELAY)
|
||||
#error "SERVO_DEACTIVATION_DELAY is deprecated. Use SERVO_DELAY instead."
|
||||
#elif ENABLED(FILAMENTCHANGEENABLE)
|
||||
#error "FILAMENTCHANGEENABLE is now FILAMENT_CHANGE_FEATURE. Please update your configuration."
|
||||
#error "FILAMENTCHANGEENABLE is now ADVANCED_PAUSE_FEATURE. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#error "FILAMENT_CHANGE_FEATURE is now ADVANCED_PAUSE_FEATURE. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_X_POS)
|
||||
#error "FILAMENT_CHANGE_X_POS is now PAUSE_PARK_X_POS. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_Y_POS)
|
||||
#error "FILAMENT_CHANGE_Y_POS is now PAUSE_PARK_Y_POS. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_Z_ADD)
|
||||
#error "FILAMENT_CHANGE_Z_ADD is now PAUSE_PARK_Z_ADD. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_XY_FEEDRATE)
|
||||
#error "FILAMENT_CHANGE_XY_FEEDRATE is now PAUSE_PARK_XY_FEEDRATE. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_Z_FEEDRATE)
|
||||
#error "FILAMENT_CHANGE_Z_FEEDRATE is now PAUSE_PARK_Z_FEEDRATE. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_RETRACT_FEEDRATE)
|
||||
#error "FILAMENT_CHANGE_RETRACT_FEEDRATE is now PAUSE_PARK_RETRACT_FEEDRATE. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_RETRACT_LENGTH)
|
||||
#error "FILAMENT_CHANGE_RETRACT_LENGTH is now PAUSE_PARK_RETRACT_LENGTH. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_EXTRUDE_FEEDRATE)
|
||||
#error "FILAMENT_CHANGE_EXTRUDE_FEEDRATE is now ADVANCED_PAUSE_EXTRUDE_FEEDRATE. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_EXTRUDE_LENGTH)
|
||||
#error "FILAMENT_CHANGE_EXTRUDE_LENGTH is now ADVANCED_PAUSE_EXTRUDE_LENGTH. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_NOZZLE_TIMEOUT)
|
||||
#error "FILAMENT_CHANGE_NOZZLE_TIMEOUT is now PAUSE_PARK_NOZZLE_TIMEOUT. Please update your configuration."
|
||||
#elif ENABLED(FILAMENT_CHANGE_NO_STEPPER_TIMEOUT)
|
||||
#error "FILAMENT_CHANGE_NO_STEPPER_TIMEOUT is now PAUSE_PARK_NO_STEPPER_TIMEOUT. Please update your configuration."
|
||||
#elif defined(PLA_PREHEAT_HOTEND_TEMP)
|
||||
#error "PLA_PREHEAT_HOTEND_TEMP is now PREHEAT_1_TEMP_HOTEND. Please update your configuration."
|
||||
#elif defined(PLA_PREHEAT_HPB_TEMP)
|
||||
@@ -157,7 +181,11 @@
|
||||
#elif defined(UBL_MESH_NUM_X_POINTS) || defined(UBL_MESH_NUM_Y_POINTS)
|
||||
#error "UBL_MESH_NUM_[XY]_POINTS is now GRID_MAX_POINTS_[XY]. Please update your configuration."
|
||||
#elif defined(UBL_MESH_EDIT_ENABLED)
|
||||
#error "UBL_MESH_EDIT_ENABLED is now UBL_G26_MESH_EDITING. Please update your configuration."
|
||||
#error "UBL_MESH_EDIT_ENABLED is now UBL_G26_MESH_VALIDATION. Please update your configuration."
|
||||
#elif defined(UBL_MESH_EDITING)
|
||||
#error "UBL_MESH_EDITING is now UBL_G26_MESH_VALIDATION. Please update your configuration."
|
||||
#elif defined(BLTOUCH_HEATERS_OFF)
|
||||
#error "BLTOUCH_HEATERS_OFF is now PROBING_HEATERS_OFF. Please update your configuration."
|
||||
#elif defined(BEEPER)
|
||||
#error "BEEPER is now BEEPER_PIN. Please update your pins definitions."
|
||||
#elif defined(SDCARDDETECT)
|
||||
@@ -243,20 +271,13 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Delta requirements
|
||||
* I2C Position Encoders
|
||||
*/
|
||||
#if ENABLED(DELTA)
|
||||
#if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
|
||||
#error "You probably want to use Max Endstops for DELTA!"
|
||||
#elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
#error "DELTA is incompatible with ENABLE_LEVELING_FADE_HEIGHT. Please disable it."
|
||||
#endif
|
||||
#if ABL_GRID
|
||||
#if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
|
||||
#error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
|
||||
#elif GRID_MAX_POINTS_X < 3
|
||||
#error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be 3 or higher."
|
||||
#endif
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
#if DISABLED(BABYSTEPPING)
|
||||
#error "I2C_POSITION_ENCODERS requires BABYSTEPPING."
|
||||
#elif !WITHIN(I2CPE_ENCODER_CNT, 1, 5)
|
||||
#error "I2CPE_ENCODER_CNT must be between 1 and 5."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -264,12 +285,14 @@
|
||||
* Babystepping
|
||||
*/
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
#if DISABLED(ULTRA_LCD)
|
||||
#if DISABLED(ULTRA_LCD) && DISABLED(I2C_POSITION_ENCODERS)
|
||||
#error "BABYSTEPPING requires an LCD controller."
|
||||
#elif ENABLED(SCARA)
|
||||
#error "BABYSTEPPING is not implemented for SCARA yet."
|
||||
#elif ENABLED(DELTA) && ENABLED(BABYSTEP_XY)
|
||||
#error "BABYSTEPPING only implemented for Z axis on deltabots."
|
||||
#elif ENABLED(BABYSTEP_ZPROBE_OFFSET) && ENABLED(MESH_BED_LEVELING)
|
||||
#error "MESH_BED_LEVELING and BABYSTEP_ZPROBE_OFFSET is not a valid combination"
|
||||
#elif ENABLED(BABYSTEP_ZPROBE_OFFSET) && !HAS_BED_PROBE
|
||||
#error "BABYSTEP_ZPROBE_OFFSET requires a probe."
|
||||
#endif
|
||||
@@ -283,21 +306,23 @@
|
||||
#error "FILAMENT_RUNOUT_SENSOR requires FIL_RUNOUT_PIN."
|
||||
#elif DISABLED(SDSUPPORT) && DISABLED(PRINTJOB_TIMER_AUTOSTART)
|
||||
#error "FILAMENT_RUNOUT_SENSOR requires SDSUPPORT or PRINTJOB_TIMER_AUTOSTART."
|
||||
#elif DISABLED(FILAMENT_CHANGE_FEATURE)
|
||||
static_assert(NULL == strstr(FILAMENT_RUNOUT_SCRIPT, "M600"), "FILAMENT_CHANGE_FEATURE is required to use M600 with FILAMENT_RUNOUT_SENSOR.");
|
||||
#elif DISABLED(ADVANCED_PAUSE_FEATURE)
|
||||
static_assert(NULL == strstr(FILAMENT_RUNOUT_SCRIPT, "M600"), "ADVANCED_PAUSE_FEATURE is required to use M600 with FILAMENT_RUNOUT_SENSOR.");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change with Extruder Runout Prevention
|
||||
* Advanced Pause
|
||||
*/
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#if DISABLED(ULTIPANEL)
|
||||
#error "FILAMENT_CHANGE_FEATURE currently requires an LCD controller."
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#if DISABLED(NEWPANEL)
|
||||
#error "ADVANCED_PAUSE_FEATURE currently requires an LCD controller."
|
||||
#elif ENABLED(EXTRUDER_RUNOUT_PREVENT)
|
||||
#error "EXTRUDER_RUNOUT_PREVENT is incompatible with FILAMENT_CHANGE_FEATURE."
|
||||
#elif ENABLED(PARK_HEAD_ON_PAUSE) && DISABLED(SDSUPPORT) && DISABLED(ULTIPANEL) && DISABLED(EMERGENCY_PARSER)
|
||||
#error "EXTRUDER_RUNOUT_PREVENT is incompatible with ADVANCED_PAUSE_FEATURE."
|
||||
#elif ENABLED(PARK_HEAD_ON_PAUSE) && DISABLED(SDSUPPORT) && DISABLED(NEWPANEL) && DISABLED(EMERGENCY_PARSER)
|
||||
#error "PARK_HEAD_ON_PAUSE requires SDSUPPORT, EMERGENCY_PARSER, or an LCD controller."
|
||||
#elif ENABLED(HOME_BEFORE_FILAMENT_CHANGE) && DISABLED(PAUSE_PARK_NO_STEPPER_TIMEOUT)
|
||||
#error "HOME_BEFORE_FILAMENT_CHANGE requires PAUSE_PARK_NO_STEPPER_TIMEOUT"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -325,29 +350,41 @@
|
||||
#error "EXTRUDERS must be 1 with HEATERS_PARALLEL."
|
||||
#endif
|
||||
|
||||
#elif ENABLED(MK2_MULTIPLEXER)
|
||||
#error "MK2_MULTIPLEXER requires 2 or more EXTRUDERS."
|
||||
#elif ENABLED(SINGLENOZZLE)
|
||||
#error "SINGLENOZZLE requires 2 or more EXTRUDERS."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Only one type of extruder allowed
|
||||
* Sanity checking for the Průša MK2 Multiplexer
|
||||
*/
|
||||
#if (ENABLED(SWITCHING_EXTRUDER) && (ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER))) \
|
||||
|| (ENABLED(SINGLENOZZLE) && ENABLED(MIXING_EXTRUDER))
|
||||
#error "Please define only one type of extruder: SINGLENOZZLE, SWITCHING_EXTRUDER, or MIXING_EXTRUDER."
|
||||
#ifdef SNMM
|
||||
#error "SNMM is now MK2_MULTIPLEXER. Please update your configuration."
|
||||
#elif ENABLED(MK2_MULTIPLEXER) && DISABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#error "ADVANCED_PAUSE_FEATURE is required with MK2_MULTIPLEXER."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* A Dual Nozzle carriage with switching servo
|
||||
*/
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#if ENABLED(DUAL_X_CARRIAGE)
|
||||
#error "SWITCHING_NOZZLE and DUAL_X_CARRIAGE are incompatible."
|
||||
#elif ENABLED(SINGLENOZZLE)
|
||||
#error "SWITCHING_NOZZLE and SINGLENOZZLE are incompatible."
|
||||
#elif EXTRUDERS != 2
|
||||
#error "SWITCHING_NOZZLE requires exactly 2 EXTRUDERS."
|
||||
#elif NUM_SERVOS < 1
|
||||
#error "SWITCHING_NOZZLE requires NUM_SERVOS >= 1."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Single Stepper Dual Extruder with switching servo
|
||||
*/
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#if ENABLED(DUAL_X_CARRIAGE)
|
||||
#error "SWITCHING_EXTRUDER and DUAL_X_CARRIAGE are incompatible."
|
||||
#elif EXTRUDERS != 2
|
||||
#error "SWITCHING_EXTRUDER requires exactly 2 EXTRUDERS."
|
||||
#elif NUM_SERVOS < 1
|
||||
#error "SWITCHING_EXTRUDER requires NUM_SERVOS >= 1."
|
||||
#endif
|
||||
#if ENABLED(SWITCHING_EXTRUDER) && NUM_SERVOS < 1
|
||||
#error "SWITCHING_EXTRUDER requires NUM_SERVOS >= 1."
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -356,12 +393,16 @@
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
#if EXTRUDERS > 1
|
||||
#error "MIXING_EXTRUDER currently only supports one extruder."
|
||||
#endif
|
||||
#if MIXING_STEPPERS < 2
|
||||
#elif MIXING_STEPPERS < 2
|
||||
#error "You must set MIXING_STEPPERS >= 2 for a mixing extruder."
|
||||
#endif
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#elif ENABLED(FILAMENT_SENSOR)
|
||||
#error "MIXING_EXTRUDER is incompatible with FILAMENT_SENSOR. Comment out this line to use it anyway."
|
||||
#elif ENABLED(SWITCHING_EXTRUDER)
|
||||
#error "Please select either MIXING_EXTRUDER or SWITCHING_EXTRUDER, not both."
|
||||
#elif ENABLED(SINGLENOZZLE)
|
||||
#error "MIXING_EXTRUDER is incompatible with SINGLENOZZLE."
|
||||
#elif ENABLED(LIN_ADVANCE)
|
||||
#error "MIXING_EXTRUDER is incompatible with LIN_ADVANCE."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -373,10 +414,10 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Servo deactivation depends on servo endstops
|
||||
* Servo deactivation depends on servo endstops or switching nozzle
|
||||
*/
|
||||
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_ENDSTOP
|
||||
#error "Z_ENDSTOP_SERVO_NR is required for DEACTIVATE_SERVOS_AFTER_MOVE."
|
||||
#if ENABLED(DEACTIVATE_SERVOS_AFTER_MOVE) && !HAS_Z_SERVO_ENDSTOP && !defined(SWITCHING_NOZZLE_SERVO_NR)
|
||||
#error "Z_ENDSTOP_SERVO_NR or switching nozzle is required for DEACTIVATE_SERVOS_AFTER_MOVE."
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -394,46 +435,61 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allow only one bed leveling option to be defined
|
||||
* Kinematics
|
||||
*/
|
||||
|
||||
/**
|
||||
* Allow only one kinematic type to be defined
|
||||
*/
|
||||
static_assert(1 >= 0
|
||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||
#if ENABLED(DELTA)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||
#if ENABLED(MORGAN_SCARA)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
#if ENABLED(MAKERARM_SCARA)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(COREXY)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(COREXZ)
|
||||
+ 1
|
||||
#endif
|
||||
, "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
|
||||
#if ENABLED(COREYZ)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREYX)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREZX)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREZY)
|
||||
+ 1
|
||||
#endif
|
||||
, "Please enable only one of DELTA, MORGAN_SCARA, MAKERARM_SCARA, COREXY, COREYX, COREXZ, COREZX, COREYZ, or COREZY."
|
||||
);
|
||||
|
||||
/**
|
||||
* Mesh Bed Leveling
|
||||
* Delta requirements
|
||||
*/
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#if ENABLED(DELTA)
|
||||
#error "MESH_BED_LEVELING does not yet support DELTA printers."
|
||||
#elif GRID_MAX_POINTS_X > 9 || GRID_MAX_POINTS_Y > 9
|
||||
#error "GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y must be less than 10 for MBL."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Unified Bed Leveling
|
||||
*/
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if ENABLED(DELTA)
|
||||
#error "AUTO_BED_LEVELING_UBL does not yet support DELTA printers."
|
||||
#elif DISABLED(NEWPANEL)
|
||||
#error "AUTO_BED_LEVELING_UBL requires an LCD controller."
|
||||
#if ENABLED(DELTA)
|
||||
#if DISABLED(USE_XMAX_PLUG) && DISABLED(USE_YMAX_PLUG) && DISABLED(USE_ZMAX_PLUG)
|
||||
#error "You probably want to use Max Endstops for DELTA!"
|
||||
#elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA
|
||||
#error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
|
||||
#elif ENABLED(DELTA_AUTO_CALIBRATION) && !PROBE_SELECTED
|
||||
#error "DELTA_AUTO_CALIBRATION requires a probe: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, Z Servo."
|
||||
#elif ENABLED(DELTA_AUTO_CALIBRATION) && ENABLED(PROBE_MANUALLY) && DISABLED(ULTIPANEL)
|
||||
#error "DELTA_AUTO_CALIBRATION requires an LCD controller with PROBE_MANUALLY."
|
||||
#elif ABL_GRID
|
||||
#if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
|
||||
#error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
|
||||
#elif GRID_MAX_POINTS_X < 3
|
||||
#error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be 3 or higher."
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -457,19 +513,18 @@ static_assert(1 >= 0
|
||||
#if ENABLED(BLTOUCH)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(SOLENOID_PROBE)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(Z_PROBE_ALLEN_KEY)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(Z_PROBE_SLED)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(SOLENOID_PROBE)
|
||||
+ 1
|
||||
#endif
|
||||
, "Please enable only one probe: PROBE_MANUALLY, FIX_MOUNTED_PROBE, Z Servo, BLTOUCH, Z_PROBE_ALLEN_KEY, or Z_PROBE_SLED."
|
||||
, "Please enable only one probe option: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
|
||||
);
|
||||
|
||||
|
||||
#if PROBE_SELECTED
|
||||
|
||||
/**
|
||||
@@ -541,9 +596,123 @@ static_assert(1 >= 0
|
||||
* Require some kind of probe for bed leveling and probe testing
|
||||
*/
|
||||
#if HAS_ABL
|
||||
#error "Auto Bed Leveling requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
||||
#elif ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
|
||||
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe! Define a Z Servo, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or FIX_MOUNTED_PROBE."
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#error "Unified Bed Leveling requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
|
||||
#else
|
||||
#error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) && !HAS_BED_PROBE
|
||||
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allow only one bed leveling option to be defined
|
||||
*/
|
||||
static_assert(1 >= 0
|
||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(AUTO_BED_LEVELING_3POINT)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
+ 1
|
||||
#endif
|
||||
, "Select only one of: MESH_BED_LEVELING, AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_3POINT, AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
|
||||
);
|
||||
|
||||
/**
|
||||
* Bed Leveling Requirements
|
||||
*/
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
|
||||
/**
|
||||
* Unified Bed Leveling
|
||||
*/
|
||||
|
||||
#if IS_SCARA
|
||||
#error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers."
|
||||
#elif DISABLED(EEPROM_SETTINGS)
|
||||
#error "AUTO_BED_LEVELING_UBL requires EEPROM_SETTINGS. Please update your configuration."
|
||||
#elif !WITHIN(GRID_MAX_POINTS_X, 3, 15) || !WITHIN(GRID_MAX_POINTS_Y, 3, 15)
|
||||
#error "GRID_MAX_POINTS_[XY] must be a whole number between 3 and 15."
|
||||
#else
|
||||
static_assert(WITHIN(UBL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X), "UBL_PROBE_PT_1_X can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(UBL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X), "UBL_PROBE_PT_2_X can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(UBL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X), "UBL_PROBE_PT_3_X can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(UBL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y), "UBL_PROBE_PT_1_Y can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(UBL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y), "UBL_PROBE_PT_2_Y can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(UBL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y), "UBL_PROBE_PT_3_Y can't be reached by the Z probe.");
|
||||
#endif
|
||||
|
||||
#elif HAS_ABL
|
||||
|
||||
/**
|
||||
* Auto Bed Leveling
|
||||
*/
|
||||
|
||||
#if ENABLED(USE_RAW_KINEMATICS)
|
||||
#error "USE_RAW_KINEMATICS is not compatible with AUTO_BED_LEVELING"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Delta and SCARA have limited bed leveling options
|
||||
*/
|
||||
#if IS_SCARA && DISABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
#error "Only AUTO_BED_LEVELING_BILINEAR currently supports SCARA bed leveling."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Check auto bed leveling probe points
|
||||
*/
|
||||
#if ABL_GRID
|
||||
|
||||
#ifdef DELTA_PROBEABLE_RADIUS
|
||||
static_assert(LEFT_PROBE_BED_POSITION >= -DELTA_PROBEABLE_RADIUS, "LEFT_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
|
||||
static_assert(RIGHT_PROBE_BED_POSITION <= DELTA_PROBEABLE_RADIUS, "RIGHT_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
|
||||
static_assert(FRONT_PROBE_BED_POSITION >= -DELTA_PROBEABLE_RADIUS, "FRONT_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
|
||||
static_assert(BACK_PROBE_BED_POSITION <= DELTA_PROBEABLE_RADIUS, "BACK_PROBE_BED_POSITION must be within DELTA_PROBEABLE_RADIUS.");
|
||||
#else
|
||||
static_assert(LEFT_PROBE_BED_POSITION < RIGHT_PROBE_BED_POSITION, "LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION.");
|
||||
static_assert(FRONT_PROBE_BED_POSITION < BACK_PROBE_BED_POSITION, "FRONT_PROBE_BED_POSITION must be less than BACK_PROBE_BED_POSITION.");
|
||||
static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION can't be reached by the Z probe.");
|
||||
static_assert(RIGHT_PROBE_BED_POSITION <= MAX_PROBE_X, "RIGHT_PROBE_BED_POSITION can't be reached by the Z probe.");
|
||||
static_assert(FRONT_PROBE_BED_POSITION >= MIN_PROBE_Y, "FRONT_PROBE_BED_POSITION can't be reached by the Z probe.");
|
||||
static_assert(BACK_PROBE_BED_POSITION <= MAX_PROBE_Y, "BACK_PROBE_BED_POSITION can't be reached by the Z probe.");
|
||||
#endif
|
||||
|
||||
#else // AUTO_BED_LEVELING_3POINT
|
||||
|
||||
static_assert(WITHIN(ABL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X), "ABL_PROBE_PT_1_X can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(ABL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X), "ABL_PROBE_PT_2_X can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(ABL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X), "ABL_PROBE_PT_3_X can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(ABL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y), "ABL_PROBE_PT_1_Y can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(ABL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y), "ABL_PROBE_PT_2_Y can't be reached by the Z probe.");
|
||||
static_assert(WITHIN(ABL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y), "ABL_PROBE_PT_3_Y can't be reached by the Z probe.");
|
||||
|
||||
#endif // AUTO_BED_LEVELING_3POINT
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
/**
|
||||
* Mesh Bed Leveling
|
||||
*/
|
||||
|
||||
#if ENABLED(DELTA)
|
||||
#error "MESH_BED_LEVELING does not yet support DELTA printers."
|
||||
#elif GRID_MAX_POINTS_X > 9 || GRID_MAX_POINTS_Y > 9
|
||||
#error "GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y must be less than 10 for MBL."
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -551,8 +720,12 @@ static_assert(1 >= 0
|
||||
/**
|
||||
* LCD_BED_LEVELING requirements
|
||||
*/
|
||||
#if ENABLED(LCD_BED_LEVELING) && DISABLED(MESH_BED_LEVELING) && !(HAS_ABL && ENABLED(PROBE_MANUALLY))
|
||||
#error "LCD_BED_LEVELING requires MESH_BED_LEVELING or PROBE_MANUALLY."
|
||||
#if ENABLED(LCD_BED_LEVELING)
|
||||
#if DISABLED(ULTIPANEL)
|
||||
#error "LCD_BED_LEVELING requires an LCD controller."
|
||||
#elif DISABLED(MESH_BED_LEVELING) && !(HAS_ABL && ENABLED(PROBE_MANUALLY))
|
||||
#error "LCD_BED_LEVELING requires MESH_BED_LEVELING or PROBE_MANUALLY."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -582,80 +755,13 @@ static_assert(1 >= 0
|
||||
#endif // Z_SAFE_HOMING
|
||||
|
||||
/**
|
||||
* Auto Bed Leveling
|
||||
* Make sure DISABLE_[XYZ] compatible with selected homing options
|
||||
*/
|
||||
#if HAS_ABL
|
||||
|
||||
#if ENABLED(USE_RAW_KINEMATICS)
|
||||
#error "USE_RAW_KINEMATICS is not compatible with AUTO_BED_LEVELING"
|
||||
#if ENABLED(DISABLE_X) || ENABLED(DISABLE_Y) || ENABLED(DISABLE_Z)
|
||||
#if ENABLED(HOME_AFTER_DEACTIVATE) || ENABLED(Z_SAFE_HOMING)
|
||||
#error "DISABLE_[XYZ] not compatible with HOME_AFTER_DEACTIVATE or Z_SAFE_HOMING."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Delta and SCARA have limited bed leveling options
|
||||
*/
|
||||
#if DISABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
#if ENABLED(DELTA)
|
||||
#error "Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling."
|
||||
#elif ENABLED(SCARA)
|
||||
#error "Only AUTO_BED_LEVELING_BILINEAR is supported for SCARA bed leveling."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Check auto bed leveling sub-options, especially probe points
|
||||
*/
|
||||
#if ABL_GRID
|
||||
#ifndef DELTA_PROBEABLE_RADIUS
|
||||
#if LEFT_PROBE_BED_POSITION > RIGHT_PROBE_BED_POSITION
|
||||
#error "LEFT_PROBE_BED_POSITION must be less than RIGHT_PROBE_BED_POSITION."
|
||||
#elif FRONT_PROBE_BED_POSITION > BACK_PROBE_BED_POSITION
|
||||
#error "FRONT_PROBE_BED_POSITION must be less than BACK_PROBE_BED_POSITION."
|
||||
#endif
|
||||
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
|
||||
#error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
|
||||
#elif RIGHT_PROBE_BED_POSITION > MAX_PROBE_X
|
||||
#error "The given RIGHT_PROBE_BED_POSITION can't be reached by the Z probe."
|
||||
#elif FRONT_PROBE_BED_POSITION < MIN_PROBE_Y
|
||||
#error "The given FRONT_PROBE_BED_POSITION can't be reached by the Z probe."
|
||||
#elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
|
||||
#error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
|
||||
#endif
|
||||
#endif
|
||||
#elif ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
#if DISABLED(EEPROM_SETTINGS)
|
||||
#error "AUTO_BED_LEVELING_UBL requires EEPROM_SETTINGS. Please update your configuration."
|
||||
#elif !WITHIN(GRID_MAX_POINTS_X, 3, 15) || !WITHIN(GRID_MAX_POINTS_Y, 3, 15)
|
||||
#error "GRID_MAX_POINTS_[XY] must be a whole number between 3 and 15."
|
||||
#elif !WITHIN(UBL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X)
|
||||
#error "The given UBL_PROBE_PT_1_X can't be reached by the Z probe."
|
||||
#elif !WITHIN(UBL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X)
|
||||
#error "The given UBL_PROBE_PT_2_X can't be reached by the Z probe."
|
||||
#elif !WITHIN(UBL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X)
|
||||
#error "The given UBL_PROBE_PT_3_X can't be reached by the Z probe."
|
||||
#elif !WITHIN(UBL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y)
|
||||
#error "The given UBL_PROBE_PT_1_Y can't be reached by the Z probe."
|
||||
#elif !WITHIN(UBL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y)
|
||||
#error "The given UBL_PROBE_PT_2_Y can't be reached by the Z probe."
|
||||
#elif !WITHIN(UBL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y)
|
||||
#error "The given UBL_PROBE_PT_3_Y can't be reached by the Z probe."
|
||||
#endif
|
||||
#else // AUTO_BED_LEVELING_3POINT
|
||||
#if !WITHIN(ABL_PROBE_PT_1_X, MIN_PROBE_X, MAX_PROBE_X)
|
||||
#error "The given ABL_PROBE_PT_1_X can't be reached by the Z probe."
|
||||
#elif !WITHIN(ABL_PROBE_PT_2_X, MIN_PROBE_X, MAX_PROBE_X)
|
||||
#error "The given ABL_PROBE_PT_2_X can't be reached by the Z probe."
|
||||
#elif !WITHIN(ABL_PROBE_PT_3_X, MIN_PROBE_X, MAX_PROBE_X)
|
||||
#error "The given ABL_PROBE_PT_3_X can't be reached by the Z probe."
|
||||
#elif !WITHIN(ABL_PROBE_PT_1_Y, MIN_PROBE_Y, MAX_PROBE_Y)
|
||||
#error "The given ABL_PROBE_PT_1_Y can't be reached by the Z probe."
|
||||
#elif !WITHIN(ABL_PROBE_PT_2_Y, MIN_PROBE_Y, MAX_PROBE_Y)
|
||||
#error "The given ABL_PROBE_PT_2_Y can't be reached by the Z probe."
|
||||
#elif !WITHIN(ABL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y)
|
||||
#error "The given ABL_PROBE_PT_3_Y can't be reached by the Z probe."
|
||||
#endif
|
||||
#endif // AUTO_BED_LEVELING_3POINT
|
||||
|
||||
#endif // HAS_ABL
|
||||
#endif // DISABLE_[XYZ]
|
||||
|
||||
/**
|
||||
* Advance Extrusion
|
||||
@@ -689,40 +795,6 @@ static_assert(1 >= 0
|
||||
#error "Only enable one SAV_3DGLCD display type: U8GLIB_SSD1306 or U8GLIB_SH1106."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Don't set more than one kinematic type
|
||||
*/
|
||||
static_assert(1 >= 0
|
||||
#if ENABLED(DELTA)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(MORGAN_SCARA)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(MAKERARM_SCARA)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREXY)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREXZ)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREYZ)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREYX)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREZX)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(COREZY)
|
||||
+ 1
|
||||
#endif
|
||||
, "Please enable only one of DELTA, MORGAN_SCARA, MAKERARM_SCARA, COREXY, COREYX, COREXZ, COREZX, COREYZ, or COREZY."
|
||||
);
|
||||
|
||||
/**
|
||||
* Allen Key
|
||||
* Deploying the Allen Key probe uses big moves in z direction. Too dangerous for an unhomed z-axis.
|
||||
@@ -888,21 +960,21 @@ static_assert(1 >= 0
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Test Extruder Pins
|
||||
* Test Extruder Stepper Pins
|
||||
*/
|
||||
#if EXTRUDERS > 4
|
||||
#if E_STEPPERS > 4
|
||||
#if !PIN_EXISTS(E4_STEP) || !PIN_EXISTS(E4_DIR) || !PIN_EXISTS(E4_ENABLE)
|
||||
#error "E4_STEP_PIN, E4_DIR_PIN, or E4_ENABLE_PIN not defined for this board."
|
||||
#endif
|
||||
#elif EXTRUDERS > 3
|
||||
#elif E_STEPPERS > 3
|
||||
#if !PIN_EXISTS(E3_STEP) || !PIN_EXISTS(E3_DIR) || !PIN_EXISTS(E3_ENABLE)
|
||||
#error "E3_STEP_PIN, E3_DIR_PIN, or E3_ENABLE_PIN not defined for this board."
|
||||
#endif
|
||||
#elif EXTRUDERS > 2
|
||||
#elif E_STEPPERS > 2
|
||||
#if !PIN_EXISTS(E2_STEP) || !PIN_EXISTS(E2_DIR) || !PIN_EXISTS(E2_ENABLE)
|
||||
#error "E2_STEP_PIN, E2_DIR_PIN, or E2_ENABLE_PIN not defined for this board."
|
||||
#endif
|
||||
#elif EXTRUDERS > 1
|
||||
#elif E_STEPPERS > 1
|
||||
#if !PIN_EXISTS(E1_STEP) || !PIN_EXISTS(E1_DIR) || !PIN_EXISTS(E1_ENABLE)
|
||||
#error "E1_STEP_PIN, E1_DIR_PIN, or E1_ENABLE_PIN not defined for this board."
|
||||
#endif
|
||||
@@ -979,17 +1051,13 @@ static_assert(1 >= 0
|
||||
#error "RGB_LED requires RGB_LED_R_PIN, RGB_LED_G_PIN, and RGB_LED_B_PIN."
|
||||
#elif ENABLED(RGBW_LED)
|
||||
#error "Please enable only one of RGB_LED and RGBW_LED."
|
||||
#elif ENABLED(BLINKM)
|
||||
#error "RGB_LED and BLINKM are currently incompatible (both use M150)."
|
||||
#endif
|
||||
#elif ENABLED(RGBW_LED)
|
||||
#if !(_RGB_TEST && PIN_EXISTS(RGB_LED_W))
|
||||
#error "RGBW_LED requires RGB_LED_R_PIN, RGB_LED_G_PIN, RGB_LED_B_PIN, and RGB_LED_W_PIN."
|
||||
#elif ENABLED(BLINKM)
|
||||
#error "RGBW_LED and BLINKM are currently incompatible (both use M150)."
|
||||
#endif
|
||||
#elif DISABLED(BLINKM) && ENABLED(PRINTER_EVENT_LEDS)
|
||||
#error "PRINTER_EVENT_LEDS requires BLINKM, RGB_LED, or RGBW_LED."
|
||||
#elif ENABLED(PRINTER_EVENT_LEDS) && DISABLED(BLINKM) && DISABLED(PCA9632)
|
||||
#error "PRINTER_EVENT_LEDS requires BLINKM, PCA9632, RGB_LED, or RGBW_LED."
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -1031,6 +1099,9 @@ static_assert(1 >= 0
|
||||
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && DISABLED(BQ_LCD_SMART_CONTROLLER)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(LCD_FOR_MELZI)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(CARTESIO_UI)
|
||||
+ 1
|
||||
#endif
|
||||
@@ -1058,7 +1129,7 @@ static_assert(1 >= 0
|
||||
#if ENABLED(MINIPANEL)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(REPRAPWORLD_KEYPAD) && DISABLED(CARTESIO_UI)
|
||||
#if ENABLED(REPRAPWORLD_KEYPAD) && DISABLED(CARTESIO_UI) && DISABLED(ANET_KEYPAD_LCD)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(RIGIDBOT_PANEL)
|
||||
@@ -1094,25 +1165,80 @@ static_assert(1 >= 0
|
||||
#if ENABLED(OLED_PANEL_TINYBOY2)
|
||||
+ 1
|
||||
#endif
|
||||
#if ENABLED(ANET_KEYPAD_LCD)
|
||||
+ 1
|
||||
#endif
|
||||
, "Please select no more than one LCD controller option."
|
||||
);
|
||||
|
||||
#if ENABLED(HAVE_TMC2130) && !( \
|
||||
ENABLED( X_IS_TMC2130 ) \
|
||||
|| ENABLED( X2_IS_TMC2130 ) \
|
||||
|| ENABLED( Y_IS_TMC2130 ) \
|
||||
|| ENABLED( Y2_IS_TMC2130 ) \
|
||||
|| ENABLED( Z_IS_TMC2130 ) \
|
||||
|| ENABLED( Z2_IS_TMC2130 ) \
|
||||
|| ENABLED( E0_IS_TMC2130 ) \
|
||||
|| ENABLED( E1_IS_TMC2130 ) \
|
||||
|| ENABLED( E2_IS_TMC2130 ) \
|
||||
|| ENABLED( E3_IS_TMC2130 ) )
|
||||
#error "Choose at least one TMC2130 stepper."
|
||||
/**
|
||||
* Make sure HAVE_TMCDRIVER is warranted
|
||||
*/
|
||||
#if ENABLED(HAVE_TMCDRIVER) && !( \
|
||||
ENABLED( X_IS_TMC ) \
|
||||
|| ENABLED( X2_IS_TMC ) \
|
||||
|| ENABLED( Y_IS_TMC ) \
|
||||
|| ENABLED( Y2_IS_TMC ) \
|
||||
|| ENABLED( Z_IS_TMC ) \
|
||||
|| ENABLED( Z2_IS_TMC ) \
|
||||
|| ENABLED( E0_IS_TMC ) \
|
||||
|| ENABLED( E1_IS_TMC ) \
|
||||
|| ENABLED( E2_IS_TMC ) \
|
||||
|| ENABLED( E3_IS_TMC ) \
|
||||
|| ENABLED( E4_IS_TMC ) \
|
||||
)
|
||||
#error "HAVE_TMCDRIVER requires at least one TMC stepper to be set."
|
||||
#endif
|
||||
|
||||
#if ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
|
||||
#error "Enable STEALTHCHOP to use HYBRID_THRESHOLD."
|
||||
/**
|
||||
* Make sure HAVE_TMC2130 is warranted
|
||||
*/
|
||||
#if ENABLED(HAVE_TMC2130)
|
||||
#if !( ENABLED( X_IS_TMC2130 ) \
|
||||
|| ENABLED( X2_IS_TMC2130 ) \
|
||||
|| ENABLED( Y_IS_TMC2130 ) \
|
||||
|| ENABLED( Y2_IS_TMC2130 ) \
|
||||
|| ENABLED( Z_IS_TMC2130 ) \
|
||||
|| ENABLED( Z2_IS_TMC2130 ) \
|
||||
|| ENABLED( E0_IS_TMC2130 ) \
|
||||
|| ENABLED( E1_IS_TMC2130 ) \
|
||||
|| ENABLED( E2_IS_TMC2130 ) \
|
||||
|| ENABLED( E3_IS_TMC2130 ) \
|
||||
|| ENABLED( E4_IS_TMC2130 ) \
|
||||
)
|
||||
#error "HAVE_TMC2130 requires at least one TMC2130 stepper to be set."
|
||||
#elif ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
|
||||
#error "Enable STEALTHCHOP to use HYBRID_THRESHOLD."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Make sure HAVE_L6470DRIVER is warranted
|
||||
*/
|
||||
#if ENABLED(HAVE_L6470DRIVER) && !( \
|
||||
ENABLED( X_IS_L6470 ) \
|
||||
|| ENABLED( X2_IS_L6470 ) \
|
||||
|| ENABLED( Y_IS_L6470 ) \
|
||||
|| ENABLED( Y2_IS_L6470 ) \
|
||||
|| ENABLED( Z_IS_L6470 ) \
|
||||
|| ENABLED( Z2_IS_L6470 ) \
|
||||
|| ENABLED( E0_IS_L6470 ) \
|
||||
|| ENABLED( E1_IS_L6470 ) \
|
||||
|| ENABLED( E2_IS_L6470 ) \
|
||||
|| ENABLED( E3_IS_L6470 ) \
|
||||
|| ENABLED( E4_IS_L6470 ) \
|
||||
)
|
||||
#error "HAVE_L6470DRIVER requires at least one L6470 stepper to be set."
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Digipot requirement
|
||||
*/
|
||||
#if ENABLED(DIGIPOT_MCP4018)
|
||||
#if !defined(DIGIPOTS_I2C_SDA_X) || !defined(DIGIPOTS_I2C_SDA_Y) || !defined(DIGIPOTS_I2C_SDA_Z) \
|
||||
|| !defined(DIGIPOTS_I2C_SDA_E0) || !defined(DIGIPOTS_I2C_SDA_E1)
|
||||
#error "DIGIPOT_MCP4018 requires DIGIPOTS_I2C_SDA_* pins to be defined."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -1127,3 +1253,64 @@ static_assert(COUNT(sanity_arr_3) >= XYZE, "DEFAULT_MAX_ACCELERATION requires 4
|
||||
static_assert(COUNT(sanity_arr_1) <= XYZE_N, "DEFAULT_AXIS_STEPS_PER_UNIT has too many elements.");
|
||||
static_assert(COUNT(sanity_arr_2) <= XYZE_N, "DEFAULT_MAX_FEEDRATE has too many elements.");
|
||||
static_assert(COUNT(sanity_arr_3) <= XYZE_N, "DEFAULT_MAX_ACCELERATION has too many elements.");
|
||||
|
||||
/**
|
||||
* Sanity checks for Spindle / Laser
|
||||
*/
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
#if !PIN_EXISTS(SPINDLE_LASER_ENABLE)
|
||||
#error "SPINDLE_LASER_ENABLE requires SPINDLE_LASER_ENABLE_PIN."
|
||||
#elif SPINDLE_DIR_CHANGE && !PIN_EXISTS(SPINDLE_DIR)
|
||||
#error "SPINDLE_DIR_PIN not defined."
|
||||
#elif ENABLED(SPINDLE_LASER_PWM) && PIN_EXISTS(SPINDLE_LASER_PWM)
|
||||
#if !(WITHIN(SPINDLE_LASER_PWM_PIN, 2, 13) || WITHIN(SPINDLE_LASER_PWM_PIN, 44, 46))
|
||||
#error "SPINDLE_LASER_PWM_PIN not assigned to a PWM pin."
|
||||
#elif SPINDLE_LASER_POWERUP_DELAY < 1
|
||||
#error "SPINDLE_LASER_POWERUP_DELAY must be greater than 0."
|
||||
#elif SPINDLE_LASER_POWERDOWN_DELAY < 1
|
||||
#error "SPINDLE_LASER_POWERDOWN_DELAY must be greater than 0."
|
||||
#elif !defined(SPINDLE_LASER_PWM_INVERT)
|
||||
#error "SPINDLE_LASER_PWM_INVERT missing."
|
||||
#elif !defined(SPEED_POWER_SLOPE) || !defined(SPEED_POWER_INTERCEPT) || !defined(SPEED_POWER_MIN) || !defined(SPEED_POWER_MAX)
|
||||
#error "SPINDLE_LASER_PWM equation constant(s) missing."
|
||||
#elif SPINDLE_LASER_PWM_PIN == 4 || WITHIN(SPINDLE_LASER_PWM_PIN, 11, 13)
|
||||
#error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by a system interrupt."
|
||||
#elif PIN_EXISTS(X_MAX) && X_MAX_PIN == SPINDLE_LASER_PWM_PIN
|
||||
#error "SPINDLE_LASER_PWM pin is in use by X_MAX endstop."
|
||||
#elif PIN_EXISTS(X_MIN) && X_MIN_PIN == SPINDLE_LASER_PWM_PIN
|
||||
#error "SPINDLE_LASER_PWM pin is in use by X_MIN endstop."
|
||||
#elif PIN_EXISTS(Z_STEP) && Z_STEP_PIN == SPINDLE_LASER_PWM_PIN
|
||||
#error "SPINDLE_LASER_PWM pin in use by Z_STEP."
|
||||
#elif NUM_SERVOS > 0 && (WITHIN(SPINDLE_LASER_PWM_PIN, 2, 3) || SPINDLE_LASER_PWM_PIN == 5)
|
||||
#error "Counter/Timer for SPINDLE_LASER_PWM_PIN is used by the servo system."
|
||||
#elif PIN_EXISTS(CASE_LIGHT) && SPINDLE_LASER_PWM_PIN == CASE_LIGHT_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by CASE_LIGHT_PIN."
|
||||
#elif PIN_EXISTS(E0_AUTO_FAN) && SPINDLE_LASER_PWM_PIN == E0_AUTO_FAN_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by E0_AUTO_FAN_PIN."
|
||||
#elif PIN_EXISTS(E1_AUTO_FAN) && SPINDLE_LASER_PWM_PIN == E1_AUTO_FAN_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by E1_AUTO_FAN_PIN."
|
||||
#elif PIN_EXISTS(E2_AUTO_FAN) && SPINDLE_LASER_PWM_PIN == E2_AUTO_FAN_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by E2_AUTO_FAN_PIN."
|
||||
#elif PIN_EXISTS(E3_AUTO_FAN) && SPINDLE_LASER_PWM_PIN == E3_AUTO_FAN_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by E3_AUTO_FAN_PIN."
|
||||
#elif PIN_EXISTS(E4_AUTO_FAN) && SPINDLE_LASER_PWM_PIN == E4_AUTO_FAN_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by E4_AUTO_FAN_PIN."
|
||||
#elif PIN_EXISTS(FAN) && SPINDLE_LASER_PWM_PIN == FAN_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used FAN_PIN."
|
||||
#elif PIN_EXISTS(FAN1) && SPINDLE_LASER_PWM_PIN == FAN1_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used FAN1_PIN."
|
||||
#elif PIN_EXISTS(FAN2) && SPINDLE_LASER_PWM_PIN == FAN2_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used FAN2_PIN."
|
||||
#elif PIN_EXISTS(CONTROLLERFAN) && SPINDLE_LASER_PWM_PIN == CONTROLLERFAN_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by CONTROLLERFAN_PIN."
|
||||
#elif PIN_EXISTS(MOTOR_CURRENT_PWM_XY) && SPINDLE_LASER_PWM_PIN == MOTOR_CURRENT_PWM_XY_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by MOTOR_CURRENT_PWM_XY."
|
||||
#elif PIN_EXISTS(MOTOR_CURRENT_PWM_Z) && SPINDLE_LASER_PWM_PIN == MOTOR_CURRENT_PWM_Z_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by MOTOR_CURRENT_PWM_Z."
|
||||
#elif PIN_EXISTS(MOTOR_CURRENT_PWM_E) && SPINDLE_LASER_PWM_PIN == MOTOR_CURRENT_PWM_E_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by MOTOR_CURRENT_PWM_E."
|
||||
#elif PIN_EXISTS(CASE_LIGHT) && SPINDLE_LASER_PWM_PIN == CASE_LIGHT_PIN
|
||||
#error "SPINDLE_LASER_PWM_PIN is used by CASE_LIGHT."
|
||||
#endif
|
||||
#endif
|
||||
#endif // SPINDLE_LASER_ENABLE
|
||||
|
||||
+1
-1
@@ -125,7 +125,7 @@ uint8_t const SD_CARD_TYPE_SDHC = 3;
|
||||
* define SOFTWARE_SPI to use bit-bang SPI
|
||||
*/
|
||||
//------------------------------------------------------------------------------
|
||||
#if MEGA_SOFT_SPI && (defined(__AVR_ATmega1280__)||defined(__AVR_ATmega2560__))
|
||||
#if MEGA_SOFT_SPI
|
||||
#define SOFTWARE_SPI
|
||||
#elif USE_SOFTWARE_SPI
|
||||
#define SOFTWARE_SPI
|
||||
|
||||
@@ -1819,7 +1819,7 @@ fail:
|
||||
//------------------------------------------------------------------------------
|
||||
// suppress cpplint warnings with NOLINT comment
|
||||
#if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
|
||||
void (*SdBaseFile::oldDateTime_)(uint16_t& date, uint16_t& time) = 0; // NOLINT
|
||||
void (*SdBaseFile::oldDateTime_)(uint16_t &date, uint16_t &time) = 0; // NOLINT
|
||||
#endif // ALLOW_DEPRECATED_FUNCTIONS
|
||||
|
||||
|
||||
|
||||
+2
-2
@@ -402,7 +402,7 @@ class SdBaseFile {
|
||||
* \param[in] dateTime The user's call back function.
|
||||
*/
|
||||
static void dateTimeCallback(
|
||||
void (*dateTime)(uint16_t& date, uint16_t& time)) { // NOLINT
|
||||
void (*dateTime)(uint16_t &date, uint16_t &time)) { // NOLINT
|
||||
oldDateTime_ = dateTime;
|
||||
dateTime_ = dateTime ? oldToNew : 0;
|
||||
}
|
||||
@@ -477,7 +477,7 @@ class SdBaseFile {
|
||||
//------------------------------------------------------------------------------
|
||||
// rest are private
|
||||
private:
|
||||
static void (*oldDateTime_)(uint16_t& date, uint16_t& time); // NOLINT
|
||||
static void (*oldDateTime_)(uint16_t &date, uint16_t &time); // NOLINT
|
||||
static void oldToNew(uint16_t* date, uint16_t* time) {
|
||||
uint16_t d;
|
||||
uint16_t t;
|
||||
|
||||
@@ -523,7 +523,7 @@ struct directoryEntry {
|
||||
uint8_t reservedNT;
|
||||
/**
|
||||
* The granularity of the seconds part of creationTime is 2 seconds
|
||||
* so this field is a count of tenths of a second and its valid
|
||||
* so this field is a count of tenths of a second and it's valid
|
||||
* value range is 0-199 inclusive. (WHG note - seems to be hundredths)
|
||||
*/
|
||||
uint8_t creationTimeTenths;
|
||||
|
||||
+2
-2
@@ -35,7 +35,7 @@
|
||||
/**
|
||||
* Marlin release version identifier
|
||||
*/
|
||||
#define SHORT_BUILD_VERSION "1.1.1"
|
||||
#define SHORT_BUILD_VERSION "1.1.4"
|
||||
|
||||
/**
|
||||
* Verbose version identifier which should contain a reference to the location
|
||||
@@ -48,7 +48,7 @@
|
||||
* here we define this default string as the date where the latest release
|
||||
* version was tagged.
|
||||
*/
|
||||
#define STRING_DISTRIBUTION_DATE "2017-05-12 12:00"
|
||||
#define STRING_DISTRIBUTION_DATE "2017-07-04 12:00"
|
||||
|
||||
/**
|
||||
* Required minimum Configuration.h and Configuration_adv.h file versions.
|
||||
|
||||
+1
-1
@@ -42,5 +42,5 @@ void SendColors(byte red, byte grn, byte blu) {
|
||||
Wire.endTransmission();
|
||||
}
|
||||
|
||||
#endif //BLINKM
|
||||
#endif // BLINKM
|
||||
|
||||
|
||||
+4
-2
@@ -59,6 +59,7 @@
|
||||
#define BOARD_MELZI_MAKR3D 66 // Melzi with ATmega1284 (MaKr3d version)
|
||||
#define BOARD_AZTEEG_X3 67 // Azteeg X3
|
||||
#define BOARD_AZTEEG_X3_PRO 68 // Azteeg X3 Pro
|
||||
#define BOARD_ANET_10 69 // Anet 1.0 (Melzi clone)
|
||||
#define BOARD_ULTIMAKER 7 // Ultimaker
|
||||
#define BOARD_ULTIMAKER_OLD 71 // Ultimaker (Older electronics. Pre 1.5.4. This is rare)
|
||||
#define BOARD_ULTIMAIN_2 72 // Ultimainboard 2.x (Uses TEMP_SENSOR 20)
|
||||
@@ -71,7 +72,7 @@
|
||||
#define BOARD_PRINTRBOARD_REVF 811 // Printrboard Revision F (AT90USB1286)
|
||||
#define BOARD_BRAINWAVE 82 // Brainwave (AT90USB646)
|
||||
#define BOARD_SAV_MKI 83 // SAV Mk-I (AT90USB1286)
|
||||
#define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: DEFINES=AT90USBxx_TEENSYPP_ASSIGNMENTS HARDWARE_MOTHERBOARD=84 make
|
||||
#define BOARD_TEENSY2 84 // Teensy++2.0 (AT90USB1286) - CLI compile: HARDWARE_MOTHERBOARD=84 make
|
||||
#define BOARD_BRAINWAVE_PRO 85 // Brainwave Pro (AT90USB1286)
|
||||
#define BOARD_GEN3_PLUS 9 // Gen3+
|
||||
#define BOARD_GEN3_MONOLITHIC 22 // Gen3 Monolithic Electronics
|
||||
@@ -95,7 +96,8 @@
|
||||
#define BOARD_BAM_DICE 401 // 2PrintBeta BAM&DICE with STK drivers
|
||||
#define BOARD_BAM_DICE_DUE 402 // 2PrintBeta BAM&DICE Due with STK drivers
|
||||
#define BOARD_BQ_ZUM_MEGA_3D 503 // bq ZUM Mega 3D
|
||||
#define BOARD_ZRIB_V20 504 // zrib V2.0 control board (Chinese knock off RAMPS replica)
|
||||
|
||||
#define MB(board) (MOTHERBOARD==BOARD_##board)
|
||||
|
||||
#endif //__BOARDS_H
|
||||
#endif // __BOARDS_H
|
||||
|
||||
+1
-1
@@ -104,7 +104,7 @@ class Buzzer {
|
||||
* @param duration Duration of the tone in milliseconds
|
||||
* @param frequency Frequency of the tone in hertz
|
||||
*/
|
||||
void tone(uint16_t const &duration, uint16_t const &frequency = 0) {
|
||||
void tone(const uint16_t &duration, const uint16_t &frequency = 0) {
|
||||
while (buffer.isFull()) {
|
||||
this->tick();
|
||||
thermalManager.manage_heater();
|
||||
|
||||
+18
-18
@@ -54,7 +54,7 @@ CardReader::CardReader() {
|
||||
//power to SD reader
|
||||
#if SDPOWER > -1
|
||||
OUT_WRITE(SDPOWER, HIGH);
|
||||
#endif //SDPOWER
|
||||
#endif // SDPOWER
|
||||
|
||||
next_autostart_ms = millis() + 5000;
|
||||
}
|
||||
@@ -109,7 +109,7 @@ void CardReader::lsDive(const char *prepend, SdFile parent, const char * const m
|
||||
SdFile dir;
|
||||
if (!dir.open(parent, lfilename, O_READ)) {
|
||||
if (lsAction == LS_SerialPrint) {
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM(MSG_SD_CANT_OPEN_SUBDIR);
|
||||
SERIAL_ECHOLN(lfilename);
|
||||
}
|
||||
@@ -208,8 +208,8 @@ void CardReader::ls() {
|
||||
// Open the sub-item as the new dive parent
|
||||
SdFile dir;
|
||||
if (!dir.open(diveDir, segment, O_READ)) {
|
||||
SERIAL_EOL;
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_EOL();
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM(MSG_SD_CANT_OPEN_SUBDIR);
|
||||
SERIAL_ECHO(segment);
|
||||
break;
|
||||
@@ -220,7 +220,7 @@ void CardReader::ls() {
|
||||
|
||||
} // while i<pathLen
|
||||
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
|
||||
#endif // LONG_FILENAME_HOST_SUPPORT
|
||||
@@ -239,20 +239,20 @@ void CardReader::initsd() {
|
||||
#endif
|
||||
) {
|
||||
//if (!card.init(SPI_HALF_SPEED,SDSS))
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_SD_INIT_FAIL);
|
||||
}
|
||||
else if (!volume.init(&card)) {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_SD_VOL_INIT_FAIL);
|
||||
}
|
||||
else if (!root.openRoot(&volume)) {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_SD_OPENROOT_FAIL);
|
||||
}
|
||||
else {
|
||||
cardOK = true;
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_SD_CARD_OK);
|
||||
}
|
||||
workDir = root;
|
||||
@@ -331,7 +331,7 @@ void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
||||
if (isFileOpen()) { //replacing current file by new file, or subfile call
|
||||
if (push_current) {
|
||||
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORPGM("trying to call sub-gcode files with too many levels. MAX level is:");
|
||||
SERIAL_ERRORLN(SD_PROCEDURE_DEPTH);
|
||||
kill(PSTR(MSG_KILLED));
|
||||
@@ -341,7 +341,7 @@ void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
||||
// Store current filename and position
|
||||
getAbsFilename(proc_filenames[file_subcall_ctr]);
|
||||
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPAIR("SUBROUTINE CALL target:\"", name);
|
||||
SERIAL_ECHOPAIR("\" parent:\"", proc_filenames[file_subcall_ctr]);
|
||||
SERIAL_ECHOLNPAIR("\" pos", sdpos);
|
||||
@@ -358,7 +358,7 @@ void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
||||
}
|
||||
|
||||
if (doing) {
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM("Now ");
|
||||
SERIAL_ECHO(doing == 1 ? "doing" : "fresh");
|
||||
SERIAL_ECHOLNPAIR(" file: ", name);
|
||||
@@ -421,14 +421,14 @@ void CardReader::openFile(char* name, bool read, bool push_current/*=false*/) {
|
||||
else {
|
||||
SERIAL_PROTOCOLPAIR(MSG_SD_OPEN_FILE_FAIL, fname);
|
||||
SERIAL_PROTOCOLCHAR('.');
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
}
|
||||
else { //write
|
||||
if (!file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC)) {
|
||||
SERIAL_PROTOCOLPAIR(MSG_SD_OPEN_FILE_FAIL, fname);
|
||||
SERIAL_PROTOCOLCHAR('.');
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
else {
|
||||
saving = true;
|
||||
@@ -462,7 +462,7 @@ void CardReader::removeFile(char* name) {
|
||||
if (!myDir.open(curDir, subdirname, O_READ)) {
|
||||
SERIAL_PROTOCOLPAIR("open failed, File: ", subdirname);
|
||||
SERIAL_PROTOCOLCHAR('.');
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
@@ -526,7 +526,7 @@ void CardReader::write_command(char *buf) {
|
||||
end[3] = '\0';
|
||||
file.write(begin);
|
||||
if (file.writeError) {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM(MSG_SD_ERR_WRITE_TO_FILE);
|
||||
}
|
||||
}
|
||||
@@ -617,7 +617,7 @@ void CardReader::chdir(const char * relpath) {
|
||||
if (workDir.isOpen()) parent = &workDir;
|
||||
|
||||
if (!newfile.open(*parent, relpath, O_READ)) {
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM(MSG_SD_CANT_ENTER_SUBDIR);
|
||||
SERIAL_ECHOLN(relpath);
|
||||
}
|
||||
@@ -882,4 +882,4 @@ void CardReader::printingHasFinished() {
|
||||
}
|
||||
}
|
||||
|
||||
#endif //SDSUPPORT
|
||||
#endif // SDSUPPORT
|
||||
|
||||
+2
-2
@@ -183,6 +183,6 @@ extern CardReader card;
|
||||
|
||||
#define IS_SD_PRINTING (false)
|
||||
|
||||
#endif //SDSUPPORT
|
||||
#endif // SDSUPPORT
|
||||
|
||||
#endif //__CARDREADER_H
|
||||
#endif // __CARDREADER_H
|
||||
|
||||
+322
-171
@@ -36,16 +36,16 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#define EEPROM_VERSION "V37"
|
||||
#define EEPROM_VERSION "V39"
|
||||
|
||||
// Change EEPROM version if these are changed:
|
||||
#define EEPROM_OFFSET 100
|
||||
|
||||
/**
|
||||
* V37 EEPROM Layout:
|
||||
* V39 EEPROM Layout:
|
||||
*
|
||||
* 100 Version (char x4)
|
||||
* 104 EEPROM Checksum (uint16_t)
|
||||
* 104 EEPROM CRC16 (uint16_t)
|
||||
*
|
||||
* 106 E_STEPPERS (uint8_t)
|
||||
* 107 M92 XYZE planner.axis_steps_per_mm (float x4 ... x8)
|
||||
@@ -90,7 +90,7 @@
|
||||
* AUTO_BED_LEVELING_UBL: 6 bytes
|
||||
* 324 G29 A ubl.state.active (bool)
|
||||
* 325 G29 Z ubl.state.z_offset (float)
|
||||
* 329 G29 S ubl.state.eeprom_storage_slot (int8_t)
|
||||
* 329 G29 S ubl.state.storage_slot (int8_t)
|
||||
*
|
||||
* DELTA: 48 bytes
|
||||
* 348 M666 XYZ endstop_adj (float x3)
|
||||
@@ -123,7 +123,7 @@
|
||||
* 490 M304 PID thermalManager.bedKp, .bedKi, .bedKd (float x3)
|
||||
*
|
||||
* DOGLCD: 2 bytes
|
||||
* 502 M250 C lcd_contrast (int)
|
||||
* 502 M250 C lcd_contrast (uint16_t)
|
||||
*
|
||||
* FWRETRACT: 29 bytes
|
||||
* 504 M209 S autoretract_enabled (bool)
|
||||
@@ -140,24 +140,37 @@
|
||||
* 534 M200 T D filament_size (float x5) (T0..3)
|
||||
*
|
||||
* HAVE_TMC2130: 20 bytes
|
||||
* 554 M906 X stepperX current (uint16_t)
|
||||
* 556 M906 Y stepperY current (uint16_t)
|
||||
* 558 M906 Z stepperZ current (uint16_t)
|
||||
* 560 M906 X2 stepperX2 current (uint16_t)
|
||||
* 562 M906 Y2 stepperY2 current (uint16_t)
|
||||
* 564 M906 Z2 stepperZ2 current (uint16_t)
|
||||
* 566 M906 E0 stepperE0 current (uint16_t)
|
||||
* 568 M906 E1 stepperE1 current (uint16_t)
|
||||
* 570 M906 E2 stepperE2 current (uint16_t)
|
||||
* 572 M906 E3 stepperE3 current (uint16_t)
|
||||
* 576 M906 E4 stepperE4 current (uint16_t)
|
||||
* 554 M906 X Stepper X current (uint16_t)
|
||||
* 556 M906 Y Stepper Y current (uint16_t)
|
||||
* 558 M906 Z Stepper Z current (uint16_t)
|
||||
* 560 M906 X2 Stepper X2 current (uint16_t)
|
||||
* 562 M906 Y2 Stepper Y2 current (uint16_t)
|
||||
* 564 M906 Z2 Stepper Z2 current (uint16_t)
|
||||
* 566 M906 E0 Stepper E0 current (uint16_t)
|
||||
* 568 M906 E1 Stepper E1 current (uint16_t)
|
||||
* 570 M906 E2 Stepper E2 current (uint16_t)
|
||||
* 572 M906 E3 Stepper E3 current (uint16_t)
|
||||
* 576 M906 E4 Stepper E4 current (uint16_t)
|
||||
*
|
||||
* LIN_ADVANCE: 8 bytes
|
||||
* 580 M900 K extruder_advance_k (float)
|
||||
* 584 M900 WHD advance_ed_ratio (float)
|
||||
*
|
||||
* 588 Minimum end-point
|
||||
* 1909 (588 + 36 + 9 + 288 + 988) Maximum end-point
|
||||
* HAS_MOTOR_CURRENT_PWM:
|
||||
* 588 M907 X Stepper XY current (uint32_t)
|
||||
* 592 M907 Z Stepper Z current (uint32_t)
|
||||
* 596 M907 E Stepper E current (uint32_t)
|
||||
*
|
||||
* 600 Minimum end-point
|
||||
* 1921 (600 + 36 + 9 + 288 + 988) Maximum end-point
|
||||
*
|
||||
* ========================================================================
|
||||
* meshes_begin (between max and min end-point, directly above)
|
||||
* -- MESHES --
|
||||
* meshes_end
|
||||
* -- MAT (Mesh Allocation Table) -- 128 bytes (placeholder size)
|
||||
* mat_end = E2END (0xFFF)
|
||||
*
|
||||
*/
|
||||
#include "configuration_store.h"
|
||||
|
||||
@@ -169,6 +182,11 @@ MarlinSettings settings;
|
||||
#include "planner.h"
|
||||
#include "temperature.h"
|
||||
#include "ultralcd.h"
|
||||
#include "stepper.h"
|
||||
|
||||
#if ENABLED(INCH_MODE_SUPPORT) || (ENABLED(ULTIPANEL) && ENABLED(TEMPERATURE_UNITS_SUPPORT))
|
||||
#include "gcode.h"
|
||||
#endif
|
||||
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
#include "mesh_bed_leveling.h"
|
||||
@@ -226,55 +244,62 @@ void MarlinSettings::postprocess() {
|
||||
refresh_bed_level();
|
||||
//set_bed_leveling_enabled(leveling_is_on);
|
||||
#endif
|
||||
|
||||
#if HAS_MOTOR_CURRENT_PWM
|
||||
stepper.refresh_motor_power();
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
|
||||
#define DUMMY_PID_VALUE 3000.0f
|
||||
#define EEPROM_START() int eeprom_index = EEPROM_OFFSET
|
||||
#define EEPROM_SKIP(VAR) eeprom_index += sizeof(VAR)
|
||||
#define EEPROM_WRITE(VAR) write_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc)
|
||||
#define EEPROM_READ(VAR) read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR), &working_crc)
|
||||
#define EEPROM_ASSERT(TST,ERR) if (!(TST)) do{ SERIAL_ERROR_START(); SERIAL_ERRORLNPGM(ERR); eeprom_read_error = true; }while(0)
|
||||
|
||||
const char version[4] = EEPROM_VERSION;
|
||||
|
||||
uint16_t MarlinSettings::eeprom_checksum;
|
||||
bool MarlinSettings::eeprom_error;
|
||||
|
||||
bool MarlinSettings::eeprom_write_error,
|
||||
MarlinSettings::eeprom_read_error;
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
int MarlinSettings::meshes_begin;
|
||||
#endif
|
||||
|
||||
void MarlinSettings::write_data(int &pos, const uint8_t* value, uint16_t size) {
|
||||
if (eeprom_write_error) return;
|
||||
void MarlinSettings::write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc) {
|
||||
if (eeprom_error) return;
|
||||
while (size--) {
|
||||
uint8_t * const p = (uint8_t * const)pos;
|
||||
const uint8_t v = *value;
|
||||
uint8_t v = *value;
|
||||
// EEPROM has only ~100,000 write cycles,
|
||||
// so only write bytes that have changed!
|
||||
if (v != eeprom_read_byte(p)) {
|
||||
eeprom_write_byte(p, v);
|
||||
if (eeprom_read_byte(p) != v) {
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM(MSG_ERR_EEPROM_WRITE);
|
||||
eeprom_write_error = true;
|
||||
eeprom_error = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
eeprom_checksum += v;
|
||||
crc16(crc, &v, 1);
|
||||
pos++;
|
||||
value++;
|
||||
};
|
||||
}
|
||||
void MarlinSettings::read_data(int &pos, uint8_t* value, uint16_t size) {
|
||||
|
||||
void MarlinSettings::read_data(int &pos, uint8_t* value, uint16_t size, uint16_t *crc) {
|
||||
if (eeprom_error) return;
|
||||
do {
|
||||
uint8_t c = eeprom_read_byte((unsigned char*)pos);
|
||||
if (!eeprom_read_error) *value = c;
|
||||
eeprom_checksum += c;
|
||||
*value = c;
|
||||
crc16(crc, &c, 1);
|
||||
pos++;
|
||||
value++;
|
||||
} while (--size);
|
||||
}
|
||||
|
||||
#define DUMMY_PID_VALUE 3000.0f
|
||||
#define EEPROM_START() int eeprom_index = EEPROM_OFFSET
|
||||
#define EEPROM_SKIP(VAR) eeprom_index += sizeof(VAR)
|
||||
#define EEPROM_WRITE(VAR) write_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR))
|
||||
#define EEPROM_READ(VAR) read_data(eeprom_index, (uint8_t*)&VAR, sizeof(VAR))
|
||||
#define EEPROM_ASSERT(TST,ERR) if (!(TST)) do{ SERIAL_ERROR_START; SERIAL_ERRORLNPGM(ERR); eeprom_read_error = true; }while(0)
|
||||
|
||||
/**
|
||||
* M500 - Store Configuration
|
||||
*/
|
||||
@@ -282,14 +307,16 @@ void MarlinSettings::postprocess() {
|
||||
float dummy = 0.0f;
|
||||
char ver[4] = "000";
|
||||
|
||||
uint16_t working_crc = 0;
|
||||
|
||||
EEPROM_START();
|
||||
|
||||
eeprom_write_error = false;
|
||||
eeprom_error = false;
|
||||
|
||||
EEPROM_WRITE(ver); // invalidate data first
|
||||
EEPROM_SKIP(eeprom_checksum); // Skip the checksum slot
|
||||
EEPROM_SKIP(working_crc); // Skip the checksum slot
|
||||
|
||||
eeprom_checksum = 0; // clear before first "real data"
|
||||
working_crc = 0; // clear before first "real data"
|
||||
|
||||
const uint8_t esteppers = COUNT(planner.axis_steps_per_mm) - XYZ;
|
||||
EEPROM_WRITE(esteppers);
|
||||
@@ -342,7 +369,7 @@ void MarlinSettings::postprocess() {
|
||||
#if ENABLED(MESH_BED_LEVELING)
|
||||
// Compile time test that sizeof(mbl.z_values) is as expected
|
||||
static_assert(
|
||||
sizeof(mbl.z_values) == (GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y) * sizeof(mbl.z_values[0][0]),
|
||||
sizeof(mbl.z_values) == GRID_MAX_POINTS * sizeof(mbl.z_values[0][0]),
|
||||
"MBL Z array is the wrong size."
|
||||
);
|
||||
const bool leveling_is_on = TEST(mbl.status, MBL_STATUS_HAS_MESH_BIT);
|
||||
@@ -386,7 +413,7 @@ void MarlinSettings::postprocess() {
|
||||
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
// Compile time test that sizeof(z_values) is as expected
|
||||
static_assert(
|
||||
sizeof(z_values) == (GRID_MAX_POINTS_X) * (GRID_MAX_POINTS_Y) * sizeof(z_values[0][0]),
|
||||
sizeof(z_values) == GRID_MAX_POINTS * sizeof(z_values[0][0]),
|
||||
"Bilinear Z array is the wrong size."
|
||||
);
|
||||
const uint8_t grid_max_x = GRID_MAX_POINTS_X, grid_max_y = GRID_MAX_POINTS_Y;
|
||||
@@ -410,15 +437,15 @@ void MarlinSettings::postprocess() {
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
EEPROM_WRITE(ubl.state.active);
|
||||
EEPROM_WRITE(ubl.state.z_offset);
|
||||
EEPROM_WRITE(ubl.state.eeprom_storage_slot);
|
||||
EEPROM_WRITE(ubl.state.storage_slot);
|
||||
#else
|
||||
const bool ubl_active = 0;
|
||||
const bool ubl_active = false;
|
||||
dummy = 0.0f;
|
||||
const int8_t eeprom_slot = -1;
|
||||
const int8_t storage_slot = -1;
|
||||
EEPROM_WRITE(ubl_active);
|
||||
EEPROM_WRITE(dummy);
|
||||
EEPROM_WRITE(eeprom_slot);
|
||||
#endif //AUTO_BED_LEVELING_UBL
|
||||
EEPROM_WRITE(storage_slot);
|
||||
#endif // AUTO_BED_LEVELING_UBL
|
||||
|
||||
// 9 floats for DELTA / Z_DUAL_ENDSTOPS
|
||||
#if ENABLED(DELTA)
|
||||
@@ -440,10 +467,10 @@ void MarlinSettings::postprocess() {
|
||||
#endif
|
||||
|
||||
#if DISABLED(ULTIPANEL)
|
||||
const int lcd_preheat_hotend_temp[2] = { PREHEAT_1_TEMP_HOTEND, PREHEAT_2_TEMP_HOTEND },
|
||||
lcd_preheat_bed_temp[2] = { PREHEAT_1_TEMP_BED, PREHEAT_2_TEMP_BED },
|
||||
lcd_preheat_fan_speed[2] = { PREHEAT_1_FAN_SPEED, PREHEAT_2_FAN_SPEED };
|
||||
#endif // !ULTIPANEL
|
||||
constexpr int lcd_preheat_hotend_temp[2] = { PREHEAT_1_TEMP_HOTEND, PREHEAT_2_TEMP_HOTEND },
|
||||
lcd_preheat_bed_temp[2] = { PREHEAT_1_TEMP_BED, PREHEAT_2_TEMP_BED },
|
||||
lcd_preheat_fan_speed[2] = { PREHEAT_1_FAN_SPEED, PREHEAT_2_FAN_SPEED };
|
||||
#endif
|
||||
|
||||
EEPROM_WRITE(lcd_preheat_hotend_temp);
|
||||
EEPROM_WRITE(lcd_preheat_bed_temp);
|
||||
@@ -489,7 +516,7 @@ void MarlinSettings::postprocess() {
|
||||
#endif
|
||||
|
||||
#if !HAS_LCD_CONTRAST
|
||||
const int lcd_contrast = 32;
|
||||
const uint16_t lcd_contrast = 32;
|
||||
#endif
|
||||
EEPROM_WRITE(lcd_contrast);
|
||||
|
||||
@@ -609,43 +636,54 @@ void MarlinSettings::postprocess() {
|
||||
EEPROM_WRITE(dummy);
|
||||
#endif
|
||||
|
||||
if (!eeprom_write_error) {
|
||||
#if HAS_MOTOR_CURRENT_PWM
|
||||
for (uint8_t q = 3; q--;) EEPROM_WRITE(stepper.motor_current_setting[q]);
|
||||
#else
|
||||
const uint32_t dummyui32 = 0;
|
||||
for (uint8_t q = 3; q--;) EEPROM_WRITE(dummyui32);
|
||||
#endif
|
||||
|
||||
const uint16_t final_checksum = eeprom_checksum,
|
||||
eeprom_size = eeprom_index;
|
||||
if (!eeprom_error) {
|
||||
const int eeprom_size = eeprom_index;
|
||||
|
||||
const uint16_t final_crc = working_crc;
|
||||
|
||||
// Write the EEPROM header
|
||||
eeprom_index = EEPROM_OFFSET;
|
||||
|
||||
EEPROM_WRITE(version);
|
||||
EEPROM_WRITE(final_checksum);
|
||||
EEPROM_WRITE(final_crc);
|
||||
|
||||
// Report storage size
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOPAIR("Settings Stored (", eeprom_size - (EEPROM_OFFSET));
|
||||
SERIAL_ECHOLNPGM(" bytes)");
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPAIR("Settings Stored (", eeprom_size - (EEPROM_OFFSET));
|
||||
SERIAL_ECHOPAIR(" bytes; crc ", final_crc);
|
||||
SERIAL_ECHOLNPGM(")");
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(UBL_SAVE_ACTIVE_ON_M500)
|
||||
if (ubl.state.eeprom_storage_slot >= 0)
|
||||
ubl.store_mesh(ubl.state.eeprom_storage_slot);
|
||||
if (ubl.state.storage_slot >= 0)
|
||||
store_mesh(ubl.state.storage_slot);
|
||||
#endif
|
||||
|
||||
return !eeprom_write_error;
|
||||
return !eeprom_error;
|
||||
}
|
||||
|
||||
/**
|
||||
* M501 - Retrieve Configuration
|
||||
*/
|
||||
bool MarlinSettings::load() {
|
||||
uint16_t working_crc = 0;
|
||||
|
||||
EEPROM_START();
|
||||
eeprom_read_error = false; // If set EEPROM_READ won't write into RAM
|
||||
|
||||
char stored_ver[4];
|
||||
EEPROM_READ(stored_ver);
|
||||
|
||||
uint16_t stored_checksum;
|
||||
EEPROM_READ(stored_checksum);
|
||||
uint16_t stored_crc;
|
||||
EEPROM_READ(stored_crc);
|
||||
|
||||
// Version has to match or defaults are used
|
||||
if (strncmp(version, stored_ver, 3) != 0) {
|
||||
@@ -653,16 +691,18 @@ void MarlinSettings::postprocess() {
|
||||
stored_ver[0] = '?';
|
||||
stored_ver[1] = '\0';
|
||||
}
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOPGM("EEPROM version mismatch ");
|
||||
SERIAL_ECHOPAIR("(EEPROM=", stored_ver);
|
||||
SERIAL_ECHOLNPGM(" Marlin=" EEPROM_VERSION ")");
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM("EEPROM version mismatch ");
|
||||
SERIAL_ECHOPAIR("(EEPROM=", stored_ver);
|
||||
SERIAL_ECHOLNPGM(" Marlin=" EEPROM_VERSION ")");
|
||||
#endif
|
||||
reset();
|
||||
}
|
||||
else {
|
||||
float dummy = 0;
|
||||
|
||||
eeprom_checksum = 0; // clear before reading first "real data"
|
||||
working_crc = 0; //clear before reading first "real data"
|
||||
|
||||
// Number of esteppers may change
|
||||
uint8_t esteppers;
|
||||
@@ -788,14 +828,14 @@ void MarlinSettings::postprocess() {
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
EEPROM_READ(ubl.state.active);
|
||||
EEPROM_READ(ubl.state.z_offset);
|
||||
EEPROM_READ(ubl.state.eeprom_storage_slot);
|
||||
EEPROM_READ(ubl.state.storage_slot);
|
||||
#else
|
||||
bool dummyb;
|
||||
uint8_t dummyui8;
|
||||
EEPROM_READ(dummyb);
|
||||
EEPROM_READ(dummy);
|
||||
EEPROM_READ(dummyui8);
|
||||
#endif //AUTO_BED_LEVELING_UBL
|
||||
#endif // AUTO_BED_LEVELING_UBL
|
||||
|
||||
#if ENABLED(DELTA)
|
||||
EEPROM_READ(endstop_adj); // 3 floats
|
||||
@@ -868,7 +908,7 @@ void MarlinSettings::postprocess() {
|
||||
#endif
|
||||
|
||||
#if !HAS_LCD_CONTRAST
|
||||
int lcd_contrast;
|
||||
uint16_t lcd_contrast;
|
||||
#endif
|
||||
EEPROM_READ(lcd_contrast);
|
||||
|
||||
@@ -960,62 +1000,171 @@ void MarlinSettings::postprocess() {
|
||||
EEPROM_READ(dummy);
|
||||
#endif
|
||||
|
||||
if (eeprom_checksum == stored_checksum) {
|
||||
if (eeprom_read_error)
|
||||
reset();
|
||||
else {
|
||||
postprocess();
|
||||
SERIAL_ECHO_START;
|
||||
#if HAS_MOTOR_CURRENT_PWM
|
||||
for (uint8_t q = 3; q--;) EEPROM_READ(stepper.motor_current_setting[q]);
|
||||
#else
|
||||
uint32_t dummyui32;
|
||||
for (uint8_t q = 3; q--;) EEPROM_READ(dummyui32);
|
||||
#endif
|
||||
|
||||
if (working_crc == stored_crc) {
|
||||
postprocess();
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHO(version);
|
||||
SERIAL_ECHOPAIR(" stored settings retrieved (", eeprom_index - (EEPROM_OFFSET));
|
||||
SERIAL_ECHOLNPGM(" bytes)");
|
||||
}
|
||||
SERIAL_ECHOPAIR(" bytes; crc ", working_crc);
|
||||
SERIAL_ECHOLNPGM(")");
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERRORLNPGM("EEPROM checksum mismatch");
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORPGM("EEPROM CRC mismatch - (stored) ");
|
||||
SERIAL_ERROR(stored_crc);
|
||||
SERIAL_ERRORPGM(" != ");
|
||||
SERIAL_ERROR(working_crc);
|
||||
SERIAL_ERRORLNPGM(" (calculated)!");
|
||||
#endif
|
||||
reset();
|
||||
}
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
ubl.eeprom_start = (eeprom_index + 32) & 0xFFF8; // Pad the end of configuration data so it
|
||||
// can float up or down a little bit without
|
||||
// disrupting the Unified Bed Leveling data
|
||||
SERIAL_ECHOPGM(" UBL ");
|
||||
if (!ubl.state.active) SERIAL_ECHO("not ");
|
||||
SERIAL_ECHOLNPGM("active!");
|
||||
meshes_begin = (eeprom_index + 32) & 0xFFF8; // Pad the end of configuration data so it
|
||||
// can float up or down a little bit without
|
||||
// disrupting the mesh data
|
||||
ubl.report_state();
|
||||
|
||||
if (!ubl.sanity_check()) {
|
||||
SERIAL_ECHOLNPGM("\nUnified Bed Leveling system initialized.\n");
|
||||
SERIAL_EOL();
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
ubl.echo_name();
|
||||
SERIAL_ECHOLNPGM(" initialized.\n");
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
SERIAL_PROTOCOLPGM("?Unable to enable Unified Bed Leveling system.\n");
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_PROTOCOLPGM("?Can't enable ");
|
||||
ubl.echo_name();
|
||||
SERIAL_PROTOCOLLNPGM(".");
|
||||
#endif
|
||||
ubl.reset();
|
||||
}
|
||||
|
||||
if (ubl.state.eeprom_storage_slot >= 0) {
|
||||
ubl.load_mesh(ubl.state.eeprom_storage_slot);
|
||||
SERIAL_ECHOPAIR("Mesh ", ubl.state.eeprom_storage_slot);
|
||||
SERIAL_ECHOLNPGM(" loaded from storage.");
|
||||
if (ubl.state.storage_slot >= 0) {
|
||||
load_mesh(ubl.state.storage_slot);
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_ECHOPAIR("Mesh ", ubl.state.storage_slot);
|
||||
SERIAL_ECHOLNPGM(" loaded from storage.");
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
ubl.reset();
|
||||
SERIAL_ECHOLNPGM("UBL System reset()");
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_ECHOLNPGM("UBL System reset()");
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
#if ENABLED(EEPROM_CHITCHAT) && DISABLED(DISABLE_M503)
|
||||
report();
|
||||
#endif
|
||||
|
||||
return !eeprom_read_error;
|
||||
return !eeprom_error;
|
||||
}
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
void ubl_invalid_slot(const int s) {
|
||||
SERIAL_PROTOCOLLNPGM("?Invalid slot.");
|
||||
SERIAL_PROTOCOL(s);
|
||||
SERIAL_PROTOCOLLNPGM(" mesh slots available.");
|
||||
}
|
||||
#endif
|
||||
|
||||
int MarlinSettings::calc_num_meshes() {
|
||||
//obviously this will get more sophisticated once we've added an actual MAT
|
||||
|
||||
if (meshes_begin <= 0) return 0;
|
||||
|
||||
return (meshes_end - meshes_begin) / sizeof(ubl.z_values);
|
||||
}
|
||||
|
||||
void MarlinSettings::store_mesh(int8_t slot) {
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
const int a = calc_num_meshes();
|
||||
if (!WITHIN(slot, 0, a - 1)) {
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
ubl_invalid_slot(a);
|
||||
SERIAL_PROTOCOLPAIR("E2END=", E2END);
|
||||
SERIAL_PROTOCOLPAIR(" meshes_end=", meshes_end);
|
||||
SERIAL_PROTOCOLLNPAIR(" slot=", slot);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
uint16_t crc = 0;
|
||||
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
|
||||
|
||||
write_data(pos, (uint8_t *)&ubl.z_values, sizeof(ubl.z_values), &crc);
|
||||
|
||||
// Write crc to MAT along with other data, or just tack on to the beginning or end
|
||||
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_PROTOCOLLNPAIR("Mesh saved in slot ", slot);
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
// Other mesh types
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
void MarlinSettings::load_mesh(int8_t slot, void *into /* = 0 */) {
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
|
||||
const int16_t a = settings.calc_num_meshes();
|
||||
|
||||
if (!WITHIN(slot, 0, a - 1)) {
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
ubl_invalid_slot(a);
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
uint16_t crc = 0;
|
||||
int pos = meshes_end - (slot + 1) * sizeof(ubl.z_values);
|
||||
uint8_t * const dest = into ? (uint8_t*)into : (uint8_t*)&ubl.z_values;
|
||||
read_data(pos, dest, sizeof(ubl.z_values), &crc);
|
||||
|
||||
// Compare crc with crc from MAT, or read from end
|
||||
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_PROTOCOLLNPAIR("Mesh loaded from slot ", slot);
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
// Other mesh types
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
//void MarlinSettings::delete_mesh() { return; }
|
||||
//void MarlinSettings::defrag_meshes() { return; }
|
||||
|
||||
#endif // AUTO_BED_LEVELING_UBL
|
||||
|
||||
#else // !EEPROM_SETTINGS
|
||||
|
||||
bool MarlinSettings::save() {
|
||||
SERIAL_ERROR_START;
|
||||
SERIAL_ERROR_START();
|
||||
SERIAL_ERRORLNPGM("EEPROM disabled");
|
||||
return false;
|
||||
}
|
||||
@@ -1026,12 +1175,12 @@ void MarlinSettings::postprocess() {
|
||||
* M502 - Reset Configuration
|
||||
*/
|
||||
void MarlinSettings::reset() {
|
||||
const float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT, tmp2[] = DEFAULT_MAX_FEEDRATE;
|
||||
const uint32_t tmp3[] = DEFAULT_MAX_ACCELERATION;
|
||||
static const float tmp1[] PROGMEM = DEFAULT_AXIS_STEPS_PER_UNIT, tmp2[] PROGMEM = DEFAULT_MAX_FEEDRATE;
|
||||
static const uint32_t tmp3[] PROGMEM = DEFAULT_MAX_ACCELERATION;
|
||||
LOOP_XYZE_N(i) {
|
||||
planner.axis_steps_per_mm[i] = tmp1[i < COUNT(tmp1) ? i : COUNT(tmp1) - 1];
|
||||
planner.max_feedrate_mm_s[i] = tmp2[i < COUNT(tmp2) ? i : COUNT(tmp2) - 1];
|
||||
planner.max_acceleration_mm_per_s2[i] = tmp3[i < COUNT(tmp3) ? i : COUNT(tmp3) - 1];
|
||||
planner.axis_steps_per_mm[i] = pgm_read_float(&tmp1[i < COUNT(tmp1) ? i : COUNT(tmp1) - 1]);
|
||||
planner.max_feedrate_mm_s[i] = pgm_read_float(&tmp2[i < COUNT(tmp2) ? i : COUNT(tmp2) - 1]);
|
||||
planner.max_acceleration_mm_per_s2[i] = pgm_read_dword_near(&tmp3[i < COUNT(tmp3) ? i : COUNT(tmp3) - 1]);
|
||||
}
|
||||
|
||||
planner.acceleration = DEFAULT_ACCELERATION;
|
||||
@@ -1093,7 +1242,7 @@ void MarlinSettings::reset() {
|
||||
|
||||
#elif ENABLED(Z_DUAL_ENDSTOPS)
|
||||
|
||||
float z_endstop_adj =
|
||||
z_endstop_adj =
|
||||
#ifdef Z_DUAL_ENDSTOPS_ADJUSTMENT
|
||||
Z_DUAL_ENDSTOPS_ADJUSTMENT
|
||||
#else
|
||||
@@ -1166,9 +1315,9 @@ void MarlinSettings::reset() {
|
||||
|
||||
endstops.enable_globally(
|
||||
#if ENABLED(ENDSTOPS_ALWAYS_ON_DEFAULT)
|
||||
(true)
|
||||
true
|
||||
#else
|
||||
(false)
|
||||
false
|
||||
#endif
|
||||
);
|
||||
|
||||
@@ -1210,19 +1359,27 @@ void MarlinSettings::reset() {
|
||||
planner.advance_ed_ratio = LIN_ADVANCE_E_D_RATIO;
|
||||
#endif
|
||||
|
||||
#if HAS_MOTOR_CURRENT_PWM
|
||||
uint32_t tmp_motor_current_setting[3] = PWM_MOTOR_CURRENT;
|
||||
for (uint8_t q = 3; q--;)
|
||||
stepper.digipot_current(q, (stepper.motor_current_setting[q] = tmp_motor_current_setting[q]));
|
||||
#endif
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL)
|
||||
ubl.reset();
|
||||
#endif
|
||||
|
||||
postprocess();
|
||||
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHOLNPGM("Hardcoded Default Settings Loaded");
|
||||
#if ENABLED(EEPROM_CHITCHAT)
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOLNPGM("Hardcoded Default Settings Loaded");
|
||||
#endif
|
||||
}
|
||||
|
||||
#if DISABLED(DISABLE_M503)
|
||||
|
||||
#define CONFIG_ECHO_START do{ if (!forReplay) SERIAL_ECHO_START; }while(0)
|
||||
#define CONFIG_ECHO_START do{ if (!forReplay) SERIAL_ECHO_START(); }while(0)
|
||||
|
||||
/**
|
||||
* M503 - Report current settings in RAM
|
||||
@@ -1236,19 +1393,17 @@ void MarlinSettings::reset() {
|
||||
*/
|
||||
CONFIG_ECHO_START;
|
||||
#if ENABLED(INCH_MODE_SUPPORT)
|
||||
extern float linear_unit_factor, volumetric_unit_factor;
|
||||
#define LINEAR_UNIT(N) ((N) / linear_unit_factor)
|
||||
#define VOLUMETRIC_UNIT(N) ((N) / (volumetric_enabled ? volumetric_unit_factor : linear_unit_factor))
|
||||
#define LINEAR_UNIT(N) ((N) / parser.linear_unit_factor)
|
||||
#define VOLUMETRIC_UNIT(N) ((N) / (volumetric_enabled ? parser.volumetric_unit_factor : parser.linear_unit_factor))
|
||||
SERIAL_ECHOPGM(" G2");
|
||||
SERIAL_CHAR(linear_unit_factor == 1.0 ? '1' : '0');
|
||||
SERIAL_CHAR(parser.linear_unit_factor == 1.0 ? '1' : '0');
|
||||
SERIAL_ECHOPGM(" ; Units in ");
|
||||
serialprintPGM(linear_unit_factor == 1.0 ? PSTR("mm\n") : PSTR("inches\n"));
|
||||
serialprintPGM(parser.linear_unit_factor == 1.0 ? PSTR("mm\n") : PSTR("inches\n"));
|
||||
#else
|
||||
#define LINEAR_UNIT(N) N
|
||||
#define VOLUMETRIC_UNIT(N) N
|
||||
SERIAL_ECHOLNPGM(" G21 ; Units in mm\n");
|
||||
SERIAL_ECHOLNPGM(" G21 ; Units in mm");
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
|
||||
@@ -1256,21 +1411,20 @@ void MarlinSettings::reset() {
|
||||
|
||||
CONFIG_ECHO_START;
|
||||
#if ENABLED(TEMPERATURE_UNITS_SUPPORT)
|
||||
extern TempUnit input_temp_units;
|
||||
extern float to_temp_units(const float &f);
|
||||
#define TEMP_UNIT(N) to_temp_units(N)
|
||||
#define TEMP_UNIT(N) parser.to_temp_units(N)
|
||||
SERIAL_ECHOPGM(" M149 ");
|
||||
SERIAL_CHAR(input_temp_units == TEMPUNIT_K ? 'K' : input_temp_units == TEMPUNIT_F ? 'F' : 'C');
|
||||
SERIAL_CHAR(parser.temp_units_code());
|
||||
SERIAL_ECHOPGM(" ; Units in ");
|
||||
serialprintPGM(input_temp_units == TEMPUNIT_K ? PSTR("Kelvin\n") : input_temp_units == TEMPUNIT_F ? PSTR("Fahrenheit\n") : PSTR("Celsius\n"));
|
||||
serialprintPGM(parser.temp_units_name());
|
||||
#else
|
||||
#define TEMP_UNIT(N) N
|
||||
SERIAL_ECHOLNPGM(" M149 C ; Units in Celsius\n");
|
||||
SERIAL_ECHOLNPGM(" M149 C ; Units in Celsius");
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
|
||||
#endif
|
||||
|
||||
SERIAL_EOL();
|
||||
|
||||
/**
|
||||
* Volumetric extrusion M200
|
||||
*/
|
||||
@@ -1278,30 +1432,30 @@ void MarlinSettings::reset() {
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPGM("Filament settings:");
|
||||
if (volumetric_enabled)
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
else
|
||||
SERIAL_ECHOLNPGM(" Disabled");
|
||||
}
|
||||
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M200 D", filament_size[0]);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#if EXTRUDERS > 1
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M200 T1 D", filament_size[1]);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#if EXTRUDERS > 2
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M200 T2 D", filament_size[2]);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#if EXTRUDERS > 3
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M200 T3 D", filament_size[3]);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#if EXTRUDERS > 4
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M200 T4 D", filament_size[4]);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#endif // EXTRUDERS > 4
|
||||
#endif // EXTRUDERS > 3
|
||||
#endif // EXTRUDERS > 2
|
||||
@@ -1323,7 +1477,7 @@ void MarlinSettings::reset() {
|
||||
#if DISABLED(DISTINCT_E_FACTORS)
|
||||
SERIAL_ECHOPAIR(" E", VOLUMETRIC_UNIT(planner.axis_steps_per_mm[E_AXIS]));
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
CONFIG_ECHO_START;
|
||||
for (uint8_t i = 0; i < E_STEPPERS; i++) {
|
||||
@@ -1343,7 +1497,7 @@ void MarlinSettings::reset() {
|
||||
#if DISABLED(DISTINCT_E_FACTORS)
|
||||
SERIAL_ECHOPAIR(" E", VOLUMETRIC_UNIT(planner.max_feedrate_mm_s[E_AXIS]));
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
CONFIG_ECHO_START;
|
||||
for (uint8_t i = 0; i < E_STEPPERS; i++) {
|
||||
@@ -1363,9 +1517,9 @@ void MarlinSettings::reset() {
|
||||
#if DISABLED(DISTINCT_E_FACTORS)
|
||||
SERIAL_ECHOPAIR(" E", VOLUMETRIC_UNIT(planner.max_acceleration_mm_per_s2[E_AXIS]));
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#if ENABLED(DISTINCT_E_FACTORS)
|
||||
SERIAL_ECHO_START;
|
||||
CONFIG_ECHO_START;
|
||||
for (uint8_t i = 0; i < E_STEPPERS; i++) {
|
||||
SERIAL_ECHOPAIR(" M201 T", (int)i);
|
||||
SERIAL_ECHOLNPAIR(" E", VOLUMETRIC_UNIT(planner.max_acceleration_mm_per_s2[E_AXIS + i]));
|
||||
@@ -1415,10 +1569,10 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOPAIR(" M218 T", (int)e);
|
||||
SERIAL_ECHOPAIR(" X", LINEAR_UNIT(hotend_offset[X_AXIS][e]));
|
||||
SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(hotend_offset[Y_AXIS][e]));
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER)
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
|
||||
SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(hotend_offset[Z_AXIS][e]));
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -1429,11 +1583,11 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOLNPGM("Mesh Bed Leveling:");
|
||||
}
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M420 S", mbl.has_mesh() ? 1 : 0);
|
||||
SERIAL_ECHOPAIR(" M420 S", leveling_is_valid() ? 1 : 0);
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(planner.z_fade_height));
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) {
|
||||
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) {
|
||||
CONFIG_ECHO_START;
|
||||
@@ -1441,7 +1595,7 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOPAIR(" Y", (int)py + 1);
|
||||
SERIAL_ECHOPGM(" Z");
|
||||
SERIAL_PROTOCOL_F(LINEAR_UNIT(mbl.z_values[px][py]), 5);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1449,43 +1603,28 @@ void MarlinSettings::reset() {
|
||||
|
||||
if (!forReplay) {
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOLNPGM("Unified Bed Leveling:");
|
||||
ubl.echo_name();
|
||||
SERIAL_ECHOLNPGM(":");
|
||||
}
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M420 S", ubl.state.active ? 1 : 0);
|
||||
SERIAL_ECHOPAIR(" M420 S", leveling_is_active() ? 1 : 0);
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
SERIAL_ECHOPAIR(" Z", planner.z_fade_height);
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
|
||||
if (!forReplay) {
|
||||
SERIAL_ECHOPGM("\nUBL is ");
|
||||
ubl.state.active ? SERIAL_CHAR('A') : SERIAL_ECHOPGM("Ina");
|
||||
SERIAL_ECHOLNPAIR("ctive\n\nActive Mesh Slot: ", ubl.state.eeprom_storage_slot);
|
||||
SERIAL_EOL();
|
||||
ubl.report_state();
|
||||
|
||||
SERIAL_ECHOLNPAIR("\nActive Mesh Slot: ", ubl.state.storage_slot);
|
||||
|
||||
SERIAL_ECHOPGM("z_offset: ");
|
||||
SERIAL_ECHO_F(ubl.state.z_offset, 6);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
|
||||
SERIAL_ECHOPAIR("EEPROM can hold ", (int)((UBL_LAST_EEPROM_INDEX - ubl.eeprom_start) / sizeof(ubl.z_values)));
|
||||
SERIAL_ECHOPAIR("EEPROM can hold ", calc_num_meshes());
|
||||
SERIAL_ECHOLNPGM(" meshes.\n");
|
||||
|
||||
SERIAL_ECHOLNPAIR("GRID_MAX_POINTS_X ", GRID_MAX_POINTS_X);
|
||||
SERIAL_ECHOLNPAIR("GRID_MAX_POINTS_Y ", GRID_MAX_POINTS_Y);
|
||||
|
||||
SERIAL_ECHOPGM("UBL_MESH_MIN_X " STRINGIFY(UBL_MESH_MIN_X));
|
||||
SERIAL_ECHOLNPAIR("=", UBL_MESH_MIN_X );
|
||||
SERIAL_ECHOPGM("UBL_MESH_MIN_Y " STRINGIFY(UBL_MESH_MIN_Y));
|
||||
SERIAL_ECHOLNPAIR("=", UBL_MESH_MIN_Y );
|
||||
|
||||
SERIAL_ECHOPGM("UBL_MESH_MAX_X " STRINGIFY(UBL_MESH_MAX_X));
|
||||
SERIAL_ECHOLNPAIR("=", UBL_MESH_MAX_X);
|
||||
SERIAL_ECHOPGM("UBL_MESH_MAX_Y " STRINGIFY(UBL_MESH_MAX_Y));
|
||||
SERIAL_ECHOLNPAIR("=", UBL_MESH_MAX_Y);
|
||||
|
||||
SERIAL_ECHOLNPAIR("MESH_X_DIST ", MESH_X_DIST);
|
||||
SERIAL_ECHOLNPAIR("MESH_Y_DIST ", MESH_Y_DIST);
|
||||
SERIAL_EOL;
|
||||
}
|
||||
|
||||
#elif HAS_ABL
|
||||
@@ -1495,11 +1634,11 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOLNPGM("Auto Bed Leveling:");
|
||||
}
|
||||
CONFIG_ECHO_START;
|
||||
SERIAL_ECHOPAIR(" M420 S", planner.abl_enabled ? 1 : 0);
|
||||
SERIAL_ECHOPAIR(" M420 S", leveling_is_active() ? 1 : 0);
|
||||
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
||||
SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(planner.z_fade_height));
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1525,7 +1664,7 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOPAIR(" X", LINEAR_UNIT(delta_tower_angle_trim[A_AXIS]));
|
||||
SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(delta_tower_angle_trim[B_AXIS]));
|
||||
SERIAL_ECHOPAIR(" Z", 0.00);
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#elif ENABLED(Z_DUAL_ENDSTOPS)
|
||||
if (!forReplay) {
|
||||
CONFIG_ECHO_START;
|
||||
@@ -1568,7 +1707,7 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, e));
|
||||
if (e == 0) SERIAL_ECHOPAIR(" L", lpq_len);
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1583,7 +1722,7 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, 0));
|
||||
SERIAL_ECHOPAIR(" L", lpq_len);
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
}
|
||||
#endif // PIDTEMP
|
||||
|
||||
@@ -1592,7 +1731,7 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOPAIR(" M304 P", thermalManager.bedKp);
|
||||
SERIAL_ECHOPAIR(" I", unscalePID_i(thermalManager.bedKi));
|
||||
SERIAL_ECHOPAIR(" D", unscalePID_d(thermalManager.bedKd));
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
|
||||
#endif // PIDTEMP || PIDTEMPBED
|
||||
@@ -1692,7 +1831,7 @@ void MarlinSettings::reset() {
|
||||
#if ENABLED(E3_IS_TMC2130)
|
||||
SERIAL_ECHOPAIR(" E3", stepperE3.getCurrent());
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -1707,6 +1846,18 @@ void MarlinSettings::reset() {
|
||||
SERIAL_ECHOPAIR(" M900 K", planner.extruder_advance_k);
|
||||
SERIAL_ECHOLNPAIR(" R", planner.advance_ed_ratio);
|
||||
#endif
|
||||
|
||||
#if HAS_MOTOR_CURRENT_PWM
|
||||
CONFIG_ECHO_START;
|
||||
if (!forReplay) {
|
||||
SERIAL_ECHOLNPGM("Stepper motor currents:");
|
||||
CONFIG_ECHO_START;
|
||||
}
|
||||
SERIAL_ECHOPAIR(" M907 X", stepper.motor_current_setting[0]);
|
||||
SERIAL_ECHOPAIR(" Z", stepper.motor_current_setting[1]);
|
||||
SERIAL_ECHOPAIR(" E", stepper.motor_current_setting[2]);
|
||||
SERIAL_EOL();
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // !DISABLE_M503
|
||||
|
||||
@@ -34,6 +34,18 @@ class MarlinSettings {
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
static bool load();
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
|
||||
// That can store is enabled
|
||||
FORCE_INLINE static int get_start_of_meshes() { return meshes_begin; }
|
||||
FORCE_INLINE static int get_end_of_meshes() { return meshes_end; }
|
||||
static int calc_num_meshes();
|
||||
static void store_mesh(int8_t slot);
|
||||
static void load_mesh(int8_t slot, void *into = 0);
|
||||
|
||||
//static void delete_mesh(); // necessary if we have a MAT
|
||||
//static void defrag_meshes(); // "
|
||||
#endif
|
||||
#else
|
||||
FORCE_INLINE
|
||||
static bool load() { reset(); report(); return true; }
|
||||
@@ -43,17 +55,25 @@ class MarlinSettings {
|
||||
static void report(bool forReplay=false);
|
||||
#else
|
||||
FORCE_INLINE
|
||||
static void report(bool forReplay=false) { }
|
||||
static void report(bool forReplay=false) { UNUSED(forReplay); }
|
||||
#endif
|
||||
|
||||
private:
|
||||
static void postprocess();
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
static uint16_t eeprom_checksum;
|
||||
static bool eeprom_read_error, eeprom_write_error;
|
||||
static void write_data(int &pos, const uint8_t* value, uint16_t size);
|
||||
static void read_data(int &pos, uint8_t* value, uint16_t size);
|
||||
static bool eeprom_error;
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_UBL) // Eventually make these available if any leveling system
|
||||
// That can store is enabled
|
||||
static int meshes_begin;
|
||||
const static int meshes_end = E2END - 128; // 128 is a placeholder for the size of the MAT; the MAT will always
|
||||
// live at the very end of the eeprom
|
||||
|
||||
#endif
|
||||
|
||||
static void write_data(int &pos, const uint8_t *value, uint16_t size, uint16_t *crc);
|
||||
static void read_data(int &pos, uint8_t *value, uint16_t size, uint16_t *crc);
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@@ -114,13 +114,13 @@ uint16_t mcp4728_getVout(uint8_t channel) {
|
||||
/**
|
||||
* Returns DAC values as a 0-100 percentage of drive strength
|
||||
*/
|
||||
uint16_t mcp4728_getDrvPct(uint8_t channel) { return uint16_t(100.0 * mcp4728_values[channel] / (DAC_STEPPER_MAX) + 0.5); }
|
||||
uint8_t mcp4728_getDrvPct(uint8_t channel) { return uint8_t(100.0 * mcp4728_values[channel] / (DAC_STEPPER_MAX) + 0.5); }
|
||||
|
||||
/**
|
||||
* Receives all Drive strengths as 0-100 percent values, updates
|
||||
* DAC Values array and calls fastwrite to update the DAC.
|
||||
*/
|
||||
void mcp4728_setDrvPct(uint16_t pct[XYZE]) {
|
||||
void mcp4728_setDrvPct(uint8_t pct[XYZE]) {
|
||||
LOOP_XYZE(i) mcp4728_values[i] = 0.01 * pct[i] * (DAC_STEPPER_MAX);
|
||||
mcp4728_fastWrite();
|
||||
}
|
||||
|
||||
@@ -59,8 +59,8 @@ uint8_t mcp4728_setGain_all(uint8_t value);
|
||||
uint16_t mcp4728_getValue(uint8_t channel);
|
||||
uint8_t mcp4728_fastWrite();
|
||||
uint8_t mcp4728_simpleCommand(byte simpleCommand);
|
||||
uint16_t mcp4728_getDrvPct(uint8_t channel);
|
||||
void mcp4728_setDrvPct(uint16_t pct[XYZE]);
|
||||
uint8_t mcp4728_getDrvPct(uint8_t channel);
|
||||
void mcp4728_setDrvPct(uint8_t pct[XYZE]);
|
||||
|
||||
#endif
|
||||
#endif // DAC_MCP4728_H
|
||||
|
||||
+39
-24
@@ -24,6 +24,7 @@
|
||||
|
||||
#if ENABLED(DIGIPOT_I2C) && ENABLED(DIGIPOT_MCP4018)
|
||||
|
||||
#include "enum.h"
|
||||
#include "Stream.h"
|
||||
#include "utility/twi.h"
|
||||
#include <SlowSoftI2CMaster.h> //https://github.com/stawel/SlowSoftI2CMaster
|
||||
@@ -33,36 +34,52 @@
|
||||
#define DIGIPOT_I2C_ADDRESS 0x2F
|
||||
|
||||
#define DIGIPOT_A4988_Rsx 0.250
|
||||
#define DIGIPOT_A4988_Vrefmax 5.0
|
||||
#define DIGIPOT_A4988_Vrefmax 1.666
|
||||
#define DIGIPOT_A4988_MAX_VALUE 127
|
||||
|
||||
#define DIGIPOT_A4988_Itripmax(Vref) ((Vref)/(8.0*DIGIPOT_A4988_Rsx))
|
||||
|
||||
#define DIGIPOT_A4988_FACTOR (DIGIPOT_A4988_MAX_VALUE/DIGIPOT_A4988_Itripmax(DIGIPOT_A4988_Vrefmax))
|
||||
//TODO: MAX_CURRENT -0.5A ?? (currently set to 2A, max possible current 2.5A)
|
||||
#define DIGIPOT_A4988_MAX_CURRENT (DIGIPOT_A4988_Itripmax(DIGIPOT_A4988_Vrefmax) - 0.5)
|
||||
#define DIGIPOT_A4988_FACTOR ((DIGIPOT_A4988_MAX_VALUE)/DIGIPOT_A4988_Itripmax(DIGIPOT_A4988_Vrefmax))
|
||||
#define DIGIPOT_A4988_MAX_CURRENT 2.0
|
||||
|
||||
static byte current_to_wiper(float current) {
|
||||
return byte(ceil(float((DIGIPOT_A4988_FACTOR * current))));
|
||||
static byte current_to_wiper(const float current) {
|
||||
const int16_t value = ceil(float(DIGIPOT_A4988_FACTOR) * current);
|
||||
return byte(constrain(value, 0, DIGIPOT_A4988_MAX_VALUE));
|
||||
}
|
||||
|
||||
static uint8_t sda_pins[DIGIPOT_I2C_NUM_CHANNELS] = {
|
||||
DIGIPOTS_I2C_SDA_X,
|
||||
DIGIPOTS_I2C_SDA_Y,
|
||||
DIGIPOTS_I2C_SDA_Z,
|
||||
DIGIPOTS_I2C_SDA_E0,
|
||||
DIGIPOTS_I2C_SDA_E1,
|
||||
const uint8_t sda_pins[DIGIPOT_I2C_NUM_CHANNELS] = {
|
||||
DIGIPOTS_I2C_SDA_X
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 1
|
||||
, DIGIPOTS_I2C_SDA_Y
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 2
|
||||
, DIGIPOTS_I2C_SDA_Z
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 3
|
||||
, DIGIPOTS_I2C_SDA_E0
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 4
|
||||
, DIGIPOTS_I2C_SDA_E1
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
static SlowSoftI2CMaster pots[DIGIPOT_I2C_NUM_CHANNELS] = {
|
||||
SlowSoftI2CMaster { sda_pins[0], DIGIPOTS_I2C_SCL },
|
||||
SlowSoftI2CMaster { sda_pins[1], DIGIPOTS_I2C_SCL },
|
||||
SlowSoftI2CMaster { sda_pins[2], DIGIPOTS_I2C_SCL },
|
||||
SlowSoftI2CMaster { sda_pins[3], DIGIPOTS_I2C_SCL },
|
||||
SlowSoftI2CMaster { sda_pins[4], DIGIPOTS_I2C_SCL }
|
||||
SlowSoftI2CMaster { sda_pins[X_AXIS], DIGIPOTS_I2C_SCL }
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 1
|
||||
, SlowSoftI2CMaster { sda_pins[Y_AXIS], DIGIPOTS_I2C_SCL }
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 2
|
||||
, SlowSoftI2CMaster { sda_pins[Z_AXIS], DIGIPOTS_I2C_SCL }
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 3
|
||||
, SlowSoftI2CMaster { sda_pins[E_AXIS], DIGIPOTS_I2C_SCL }
|
||||
#if DIGIPOT_I2C_NUM_CHANNELS > 4
|
||||
, SlowSoftI2CMaster { sda_pins[E_AXIS + 1], DIGIPOTS_I2C_SCL }
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
};
|
||||
|
||||
static void i2c_send(int channel, byte v) {
|
||||
static void i2c_send(const uint8_t channel, const byte v) {
|
||||
if (WITHIN(channel, 0, DIGIPOT_I2C_NUM_CHANNELS - 1)) {
|
||||
pots[channel].i2c_start(((DIGIPOT_I2C_ADDRESS) << 1) | I2C_WRITE);
|
||||
pots[channel].i2c_write(v);
|
||||
@@ -71,21 +88,19 @@ static void i2c_send(int channel, byte v) {
|
||||
}
|
||||
|
||||
// This is for the MCP4018 I2C based digipot
|
||||
void digipot_i2c_set_current(int channel, float current) {
|
||||
current = min(max(current, 0.0f), float(DIGIPOT_A4988_MAX_CURRENT));
|
||||
|
||||
i2c_send(channel, current_to_wiper(current));
|
||||
void digipot_i2c_set_current(uint8_t channel, float current) {
|
||||
i2c_send(channel, current_to_wiper(min(max(current, 0.0f), float(DIGIPOT_A4988_MAX_CURRENT))));
|
||||
}
|
||||
|
||||
void digipot_i2c_init() {
|
||||
const float digipot_motor_current[] = DIGIPOT_I2C_MOTOR_CURRENTS;
|
||||
static const float digipot_motor_current[] PROGMEM = DIGIPOT_I2C_MOTOR_CURRENTS;
|
||||
|
||||
for (uint8_t i = 0; i < DIGIPOT_I2C_NUM_CHANNELS; i++)
|
||||
pots[i].i2c_init();
|
||||
|
||||
// setup initial currents as defined in Configuration_adv.h
|
||||
for (uint8_t i = 0; i < COUNT(digipot_motor_current); i++)
|
||||
digipot_i2c_set_current(i, digipot_motor_current[i]);
|
||||
digipot_i2c_set_current(i, pgm_read_float(&digipot_motor_current[i]));
|
||||
}
|
||||
|
||||
#endif // DIGIPOT_I2C && DIGIPOT_MCP4018
|
||||
|
||||
@@ -37,11 +37,11 @@
|
||||
#define DIGIPOT_I2C_MAX_CURRENT 2.5
|
||||
#endif
|
||||
|
||||
static byte current_to_wiper(float current) {
|
||||
return byte(ceil(float((DIGIPOT_I2C_FACTOR * current))));
|
||||
static byte current_to_wiper(const float current) {
|
||||
return byte(CEIL(float((DIGIPOT_I2C_FACTOR * current))));
|
||||
}
|
||||
|
||||
static void i2c_send(byte addr, byte a, byte b) {
|
||||
static void i2c_send(const byte addr, const byte a, const byte b) {
|
||||
Wire.beginTransmission(addr);
|
||||
Wire.write(a);
|
||||
Wire.write(b);
|
||||
@@ -49,7 +49,7 @@ static void i2c_send(byte addr, byte a, byte b) {
|
||||
}
|
||||
|
||||
// This is for the MCP4451 I2C based digipot
|
||||
void digipot_i2c_set_current(int channel, float current) {
|
||||
void digipot_i2c_set_current(uint8_t channel, float current) {
|
||||
current = min((float) max(current, 0.0f), DIGIPOT_I2C_MAX_CURRENT);
|
||||
// these addresses are specific to Azteeg X3 Pro, can be set to others,
|
||||
// In this case first digipot is at address A0=0, A1= 0, second one is at A0=0, A1= 1
|
||||
@@ -69,11 +69,11 @@ void digipot_i2c_set_current(int channel, float current) {
|
||||
}
|
||||
|
||||
void digipot_i2c_init() {
|
||||
const float digipot_motor_current[] = DIGIPOT_I2C_MOTOR_CURRENTS;
|
||||
static const float digipot_motor_current[] PROGMEM = DIGIPOT_I2C_MOTOR_CURRENTS;
|
||||
Wire.begin();
|
||||
// setup initial currents as defined in Configuration_adv.h
|
||||
for (int i = 0; i < COUNT(digipot_motor_current); i++)
|
||||
digipot_i2c_set_current(i, digipot_motor_current[i]);
|
||||
for (uint8_t i = 0; i < COUNT(digipot_motor_current); i++)
|
||||
digipot_i2c_set_current(i, pgm_read_float(&digipot_motor_current[i]));
|
||||
}
|
||||
|
||||
#endif //DIGIPOT_I2C
|
||||
#endif // DIGIPOT_I2C
|
||||
|
||||
@@ -0,0 +1,192 @@
|
||||
/*
|
||||
Fontname: ISO10646_CZ
|
||||
Copyright: A. Hardtung, public domain
|
||||
Modified for Czech accents by Petr Zahradnik, http://www.zahradniksebavi.cz
|
||||
Capital A Height: 7, '1' Height: 7
|
||||
Calculated Max Values w= 6 h= 9 x= 2 y= 7 dx= 6 dy= 0 ascent= 8 len= 9
|
||||
Font Bounding box w= 6 h= 9 x= 0 y=-2
|
||||
Calculated Min Values x= 0 y=-1 dx= 0 dy= 0
|
||||
Pure Font ascent = 7 descent=-1
|
||||
X Font ascent = 7 descent=-1
|
||||
Max Font ascent = 8 descent=-1
|
||||
*/
|
||||
#include <U8glib.h>
|
||||
const u8g_fntpgm_uint8_t ISO10646_CZ[2832] U8G_SECTION(".progmem.ISO10646_CZ") = {
|
||||
0,6,9,0,254,7,1,146,3,33,32,255,255,8,255,7,
|
||||
255,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128,
|
||||
128,128,0,128,3,2,2,6,1,5,160,160,5,7,7,6,
|
||||
0,0,80,80,248,80,248,80,80,5,7,7,6,0,0,32,
|
||||
120,160,112,40,240,32,5,7,7,6,0,0,192,200,16,32,
|
||||
64,152,24,5,7,7,6,0,0,96,144,160,64,168,144,104,
|
||||
2,3,3,6,1,4,192,64,128,3,7,7,6,1,0,32,
|
||||
64,128,128,128,64,32,3,7,7,6,1,0,128,64,32,32,
|
||||
32,64,128,5,5,5,6,0,1,32,168,112,168,32,5,5,
|
||||
5,6,0,1,32,32,248,32,32,2,3,3,6,2,255,192,
|
||||
64,128,5,1,1,6,0,3,248,2,2,2,6,2,0,192,
|
||||
192,5,5,5,6,0,1,8,16,32,64,128,5,7,7,6,
|
||||
0,0,112,136,136,136,136,136,112,3,7,7,6,1,0,64,
|
||||
192,64,64,64,64,224,5,7,7,6,0,0,112,136,8,112,
|
||||
128,128,248,5,7,7,6,0,0,248,16,32,16,8,8,240,
|
||||
5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7,
|
||||
6,0,0,248,128,240,8,8,136,112,5,7,7,6,0,0,
|
||||
112,128,128,240,136,136,112,5,7,7,6,0,0,248,8,16,
|
||||
32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136,
|
||||
112,5,7,7,6,0,0,112,136,136,120,8,8,112,2,5,
|
||||
5,6,2,0,192,192,0,192,192,2,6,6,6,2,255,192,
|
||||
192,0,192,64,128,4,7,7,6,0,0,16,32,64,128,64,
|
||||
32,16,5,3,3,6,0,2,248,0,248,4,7,7,6,1,
|
||||
0,128,64,32,16,32,64,128,5,7,7,6,0,0,112,136,
|
||||
8,16,32,0,32,5,7,7,6,0,0,112,136,8,104,168,
|
||||
168,112,5,7,7,6,0,0,112,136,136,248,136,136,136,5,
|
||||
7,7,6,0,0,240,136,136,240,136,136,240,5,7,7,6,
|
||||
0,0,112,136,128,128,128,136,112,5,7,7,6,0,0,240,
|
||||
136,136,136,136,136,240,5,7,7,6,0,0,248,128,128,240,
|
||||
128,128,248,5,7,7,6,0,0,248,128,128,240,128,128,128,
|
||||
5,7,7,6,0,0,112,136,128,184,136,136,112,5,7,7,
|
||||
6,0,0,136,136,136,248,136,136,136,1,7,7,6,2,0,
|
||||
128,128,128,128,128,128,128,5,7,7,6,0,0,56,16,16,
|
||||
16,16,144,96,5,7,7,6,0,0,136,144,160,192,160,144,
|
||||
136,5,7,7,6,0,0,128,128,128,128,128,128,248,5,7,
|
||||
7,6,0,0,136,216,168,136,136,136,136,5,7,7,6,0,
|
||||
0,136,136,200,168,152,136,136,5,7,7,6,0,0,112,136,
|
||||
136,136,136,136,112,5,7,7,6,0,0,240,136,136,240,128,
|
||||
128,128,5,7,7,6,0,0,112,136,136,136,168,144,104,5,
|
||||
7,7,6,0,0,240,136,136,240,160,144,136,5,7,7,6,
|
||||
0,0,120,128,128,112,8,8,240,5,7,7,6,0,0,248,
|
||||
32,32,32,32,32,32,5,7,7,6,0,0,136,136,136,136,
|
||||
136,136,112,5,7,7,6,0,0,136,136,136,136,136,80,32,
|
||||
5,7,7,6,0,0,136,136,136,136,136,168,80,5,7,7,
|
||||
6,0,0,136,136,80,32,80,136,136,5,7,7,6,0,0,
|
||||
136,136,136,80,32,32,32,5,7,7,6,0,0,248,8,16,
|
||||
32,64,128,248,3,7,7,6,1,0,224,128,128,128,128,128,
|
||||
224,5,5,5,6,0,1,128,64,32,16,8,3,7,7,6,
|
||||
1,0,224,32,32,32,32,32,224,5,3,3,6,0,4,32,
|
||||
80,136,5,1,1,6,0,0,248,2,2,2,6,2,5,128,
|
||||
64,5,5,5,6,0,0,112,8,120,136,120,5,7,7,6,
|
||||
0,0,128,128,176,200,136,136,240,5,5,5,6,0,0,112,
|
||||
128,128,136,112,5,7,7,6,0,0,8,8,104,152,136,136,
|
||||
120,5,5,5,6,0,0,112,136,248,128,112,5,7,7,6,
|
||||
0,0,48,72,224,64,64,64,64,5,6,6,6,0,255,112,
|
||||
136,136,120,8,112,5,7,7,6,0,0,128,128,176,200,136,
|
||||
136,136,1,7,7,6,2,0,128,0,128,128,128,128,128,3,
|
||||
8,8,6,1,255,32,0,32,32,32,32,160,64,4,7,7,
|
||||
6,0,0,128,128,144,160,192,160,144,3,7,7,6,1,0,
|
||||
192,64,64,64,64,64,224,5,5,5,6,0,0,208,168,168,
|
||||
168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5,
|
||||
6,0,0,112,136,136,136,112,5,6,6,6,0,255,240,136,
|
||||
136,240,128,128,5,6,6,6,0,255,120,136,136,120,8,8,
|
||||
5,5,5,6,0,0,176,200,128,128,128,5,5,5,6,0,
|
||||
0,112,128,112,8,240,4,7,7,6,0,0,64,64,224,64,
|
||||
64,64,48,5,5,5,6,0,0,136,136,136,152,104,5,5,
|
||||
5,6,0,0,136,136,136,80,32,5,5,5,6,0,0,136,
|
||||
136,168,168,80,5,5,5,6,0,0,136,80,32,80,136,5,
|
||||
6,6,6,0,255,136,136,136,120,8,112,5,5,5,6,0,
|
||||
0,248,16,32,64,248,3,7,7,6,1,0,32,64,64,128,
|
||||
64,64,32,1,7,7,6,2,0,128,128,128,128,128,128,128,
|
||||
3,7,7,6,1,0,128,64,64,32,64,64,128,5,2,2,
|
||||
6,0,2,104,144,0,0,0,6,0,0,5,8,8,6,0,
|
||||
0,16,32,112,136,136,248,136,136,5,8,8,6,0,0,8,
|
||||
16,248,128,128,240,128,248,3,8,8,6,1,0,32,64,224,
|
||||
64,64,64,64,224,5,8,8,6,0,0,16,32,112,136,136,
|
||||
136,136,112,5,8,8,6,0,0,16,32,136,136,136,136,136,
|
||||
112,5,8,8,6,0,0,16,32,136,136,80,32,32,32,5,
|
||||
8,8,6,0,0,16,32,0,112,8,120,136,120,5,8,8,
|
||||
6,0,0,16,32,0,112,136,248,128,112,2,8,8,6,2,
|
||||
0,64,128,0,128,128,128,128,128,5,8,8,6,0,0,16,
|
||||
32,0,112,136,136,136,112,5,8,8,6,0,0,16,32,0,
|
||||
136,136,136,152,104,5,9,9,6,0,255,16,32,0,136,136,
|
||||
136,120,8,112,5,8,8,6,0,0,80,32,112,136,128,128,
|
||||
136,112,5,8,8,6,0,0,80,32,0,112,128,128,136,112,
|
||||
5,8,8,6,0,0,80,32,240,136,136,136,136,240,6,8,
|
||||
8,6,0,0,4,20,24,112,144,144,144,112,5,8,8,6,
|
||||
0,0,80,32,248,128,128,240,128,248,5,8,8,6,0,0,
|
||||
80,32,0,112,136,248,128,112,5,8,8,6,0,0,80,32,
|
||||
136,200,168,152,136,136,5,8,8,6,0,0,80,32,0,176,
|
||||
200,136,136,136,5,8,8,6,0,0,80,32,240,136,240,160,
|
||||
144,136,5,8,8,6,0,0,80,32,0,176,200,128,128,128,
|
||||
5,8,8,6,0,0,80,32,120,128,128,112,8,240,5,8,
|
||||
8,6,0,0,80,32,0,112,128,112,8,240,5,8,8,6,
|
||||
0,0,80,32,248,32,32,32,32,32,6,8,8,6,0,0,
|
||||
4,68,72,224,64,64,64,48,5,8,8,6,0,0,32,80,
|
||||
168,136,136,136,136,112,5,8,8,6,0,0,32,80,32,136,
|
||||
136,136,152,104,5,8,8,6,0,0,80,32,248,8,48,64,
|
||||
128,248,5,8,8,6,0,0,80,32,0,248,16,32,64,248,
|
||||
0,0,0,6,0,0,0,0,0,6,0,0,0,0,0,6,
|
||||
0,0,1,7,7,6,2,0,128,0,128,128,128,128,128,5,
|
||||
7,7,6,0,0,32,112,168,160,168,112,32,5,7,7,6,
|
||||
0,0,48,64,64,224,64,80,168,5,5,5,6,0,0,136,
|
||||
112,80,112,136,5,7,7,6,0,0,136,80,32,248,32,248,
|
||||
32,1,7,7,6,2,0,128,128,128,0,128,128,128,5,8,
|
||||
8,6,0,0,48,72,32,80,80,32,144,96,3,1,1,6,
|
||||
1,7,160,5,7,7,6,0,0,248,136,184,184,184,136,248,
|
||||
5,7,7,6,0,1,112,8,120,136,120,0,248,5,5,5,
|
||||
6,0,1,40,80,160,80,40,5,3,3,6,0,1,248,8,
|
||||
8,2,2,2,6,2,6,64,128,5,7,7,6,0,0,248,
|
||||
136,168,136,152,168,248,5,1,1,6,0,6,248,4,4,4,
|
||||
6,0,3,96,144,144,96,5,7,7,6,0,0,32,32,248,
|
||||
32,32,0,248,4,5,5,6,0,3,96,144,32,64,240,3,
|
||||
5,5,6,0,3,224,32,224,32,224,2,2,2,6,2,6,
|
||||
64,128,5,8,8,6,0,255,136,136,136,136,152,232,128,128,
|
||||
5,7,7,6,0,0,120,152,152,120,24,24,24,2,2,2,
|
||||
6,2,2,192,192,2,2,2,6,2,255,64,128,3,5,5,
|
||||
6,0,3,64,192,64,64,224,5,7,7,6,0,1,112,136,
|
||||
136,136,112,0,248,5,5,5,6,0,1,160,80,40,80,160,
|
||||
5,7,7,6,0,0,136,144,168,88,184,8,8,5,7,7,
|
||||
6,0,0,136,144,184,72,152,32,56,5,8,8,6,0,0,
|
||||
192,64,192,72,216,56,8,8,5,7,7,6,0,0,32,0,
|
||||
32,64,128,136,112,5,8,8,6,0,0,64,32,0,112,136,
|
||||
248,136,136,5,8,8,6,0,0,16,32,0,112,136,248,136,
|
||||
136,5,8,8,6,0,0,32,80,0,112,136,248,136,136,5,
|
||||
8,8,6,0,0,104,144,0,112,136,248,136,136,5,8,8,
|
||||
6,0,0,80,0,112,136,136,248,136,136,5,8,8,6,0,
|
||||
0,32,80,32,112,136,248,136,136,5,7,7,6,0,0,56,
|
||||
96,160,184,224,160,184,5,8,8,6,0,255,112,136,128,128,
|
||||
136,112,32,96,5,8,8,6,0,0,64,32,0,248,128,240,
|
||||
128,248,5,8,8,6,0,0,8,16,0,248,128,240,128,248,
|
||||
5,8,8,6,0,0,32,80,0,248,128,240,128,248,5,7,
|
||||
7,6,0,0,80,0,248,128,240,128,248,3,8,8,6,1,
|
||||
0,128,64,0,224,64,64,64,224,3,8,8,6,1,0,32,
|
||||
64,0,224,64,64,64,224,3,8,8,6,1,0,64,160,0,
|
||||
224,64,64,64,224,3,7,7,6,1,0,160,0,224,64,64,
|
||||
64,224,5,9,9,6,0,255,80,32,112,136,128,184,136,136,
|
||||
112,5,8,8,6,0,0,104,144,0,136,200,168,152,136,5,
|
||||
8,8,6,0,0,64,32,112,136,136,136,136,112,5,8,8,
|
||||
6,0,0,16,32,112,136,136,136,136,112,5,8,8,6,0,
|
||||
0,32,80,0,112,136,136,136,112,5,8,8,6,0,0,104,
|
||||
144,0,112,136,136,136,112,5,8,8,6,0,0,80,0,112,
|
||||
136,136,136,136,112,5,5,5,6,0,1,136,80,32,80,136,
|
||||
5,8,8,6,0,255,16,112,168,168,168,168,112,64,5,8,
|
||||
8,6,0,0,64,32,136,136,136,136,136,112,5,8,8,6,
|
||||
0,0,16,32,136,136,136,136,136,112,5,8,8,6,0,0,
|
||||
32,80,0,136,136,136,136,112,5,8,8,6,0,0,80,0,
|
||||
136,136,136,136,136,112,1,7,7,6,2,0,128,0,128,128,
|
||||
128,128,128,5,9,9,6,0,255,120,128,128,112,8,8,240,
|
||||
32,96,4,8,8,6,1,255,96,144,144,160,144,144,224,128,
|
||||
5,8,8,6,0,0,64,32,0,112,8,120,136,120,5,8,
|
||||
8,6,0,0,16,32,0,112,8,120,136,120,5,8,8,6,
|
||||
0,0,32,80,0,112,8,120,136,120,5,8,8,6,0,0,
|
||||
104,144,0,112,8,120,136,120,5,7,7,6,0,0,80,0,
|
||||
112,8,120,136,120,5,8,8,6,0,0,32,80,32,112,8,
|
||||
120,136,120,5,6,6,6,0,0,208,40,120,160,168,80,5,
|
||||
7,7,6,0,255,112,128,128,136,112,32,96,5,8,8,6,
|
||||
0,0,64,32,0,112,136,248,128,112,5,8,8,6,0,0,
|
||||
16,32,0,112,136,248,128,112,5,8,8,6,0,0,32,80,
|
||||
0,112,136,248,128,112,5,7,7,6,0,0,80,0,112,136,
|
||||
248,128,112,3,8,8,6,1,0,128,64,0,64,192,64,64,
|
||||
224,3,8,8,6,1,0,32,64,0,64,192,64,64,224,3,
|
||||
8,8,6,1,0,64,160,0,64,192,64,64,224,3,7,7,
|
||||
6,1,0,160,0,64,192,64,64,224,5,8,8,6,0,255,
|
||||
80,32,112,136,136,120,8,112,5,8,8,6,0,0,104,144,
|
||||
0,176,200,136,136,136,5,8,8,6,0,0,64,32,0,112,
|
||||
136,136,136,112,5,8,8,6,0,0,16,32,0,112,136,136,
|
||||
136,112,5,8,8,6,0,0,32,80,0,112,136,136,136,112,
|
||||
5,8,8,6,0,0,104,144,0,112,136,136,136,112,5,7,
|
||||
7,6,0,0,80,0,112,136,136,136,112,5,5,5,6,0,
|
||||
1,32,0,248,0,32,5,7,7,6,0,255,16,112,168,168,
|
||||
168,112,64,5,8,8,6,0,0,64,32,0,136,136,136,152,
|
||||
104,5,8,8,6,0,0,16,32,0,136,136,136,152,104,5,
|
||||
8,8,6,0,0,32,80,0,136,136,136,152,104,5,7,7,
|
||||
6,0,0,80,0,136,136,136,152,104,1,5,5,6,2,0,
|
||||
128,128,128,128,128,5,7,7,6,0,255,112,128,112,8,240,
|
||||
32,96,5,8,8,6,0,255,80,0,136,136,136,120,8,112
|
||||
};
|
||||
@@ -203,4 +203,4 @@ void setup_endstop_interrupts( void ) {
|
||||
// If we arrive here without raising an assertion, each pin has either an EXT-interrupt or a PCI.
|
||||
}
|
||||
|
||||
#endif //_ENDSTOP_INTERRUPTS_H_
|
||||
#endif // _ENDSTOP_INTERRUPTS_H_
|
||||
|
||||
+2
-2
@@ -161,7 +161,7 @@ void Endstops::report_state() {
|
||||
#define ENDSTOP_HIT_TEST_Y() _ENDSTOP_HIT_TEST(Y,'Y')
|
||||
#define ENDSTOP_HIT_TEST_Z() _ENDSTOP_HIT_TEST(Z,'Z')
|
||||
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_ECHO_START();
|
||||
SERIAL_ECHOPGM(MSG_ENDSTOPS_HIT);
|
||||
ENDSTOP_HIT_TEST_X();
|
||||
ENDSTOP_HIT_TEST_Y();
|
||||
@@ -171,7 +171,7 @@ void Endstops::report_state() {
|
||||
#define P_AXIS Z_AXIS
|
||||
if (TEST(endstop_hit_bits, Z_MIN_PROBE)) _ENDSTOP_HIT_ECHO(P, 'P');
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
SERIAL_EOL();
|
||||
|
||||
#if ENABLED(ULTRA_LCD)
|
||||
lcd_status_printf_P(0, PSTR(MSG_LCD_ENDSTOPS " %c %c %c %c"), chrX, chrY, chrZ, chrP);
|
||||
|
||||
+50
-33
@@ -34,23 +34,29 @@
|
||||
* between X_AXIS and X Head movement, like CoreXY bots
|
||||
*/
|
||||
enum AxisEnum {
|
||||
NO_AXIS = -1,
|
||||
X_AXIS = 0,
|
||||
A_AXIS = 0,
|
||||
Y_AXIS = 1,
|
||||
B_AXIS = 1,
|
||||
Z_AXIS = 2,
|
||||
C_AXIS = 2,
|
||||
E_AXIS = 3,
|
||||
X_HEAD = 4,
|
||||
Y_HEAD = 5,
|
||||
Z_HEAD = 6,
|
||||
ALL_AXES = 100
|
||||
NO_AXIS = -1,
|
||||
X_AXIS = 0,
|
||||
A_AXIS = 0,
|
||||
Y_AXIS = 1,
|
||||
B_AXIS = 1,
|
||||
Z_AXIS = 2,
|
||||
C_AXIS = 2,
|
||||
E_AXIS = 3,
|
||||
X_HEAD = 4,
|
||||
Y_HEAD = 5,
|
||||
Z_HEAD = 6,
|
||||
ALL_AXES = 100
|
||||
};
|
||||
|
||||
#define LOOP_XYZ(VAR) for (uint8_t VAR=X_AXIS; VAR<=Z_AXIS; VAR++)
|
||||
#define LOOP_XYZE(VAR) for (uint8_t VAR=X_AXIS; VAR<=E_AXIS; VAR++)
|
||||
#define LOOP_XYZE_N(VAR) for (uint8_t VAR=X_AXIS; VAR<XYZE_N; VAR++)
|
||||
#define LOOP_S_LE_N(VAR, S, N) for (uint8_t VAR=S; VAR<=N; VAR++)
|
||||
#define LOOP_S_L_N(VAR, S, N) for (uint8_t VAR=S; VAR<N; VAR++)
|
||||
#define LOOP_LE_N(VAR, N) LOOP_S_LE_N(VAR, 0, N)
|
||||
#define LOOP_L_N(VAR, N) LOOP_S_L_N(VAR, 0, N)
|
||||
|
||||
#define LOOP_NA(VAR) LOOP_L_N(VAR, NUM_AXIS)
|
||||
#define LOOP_XYZ(VAR) LOOP_S_LE_N(VAR, X_AXIS, Z_AXIS)
|
||||
#define LOOP_XYZE(VAR) LOOP_S_LE_N(VAR, X_AXIS, E_AXIS)
|
||||
#define LOOP_XYZE_N(VAR) LOOP_S_L_N(VAR, X_AXIS, XYZE_N)
|
||||
|
||||
typedef enum {
|
||||
LINEARUNIT_MM,
|
||||
@@ -108,25 +114,25 @@ enum EndstopEnum {
|
||||
};
|
||||
#endif
|
||||
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
enum FilamentChangeMenuResponse {
|
||||
FILAMENT_CHANGE_RESPONSE_WAIT_FOR,
|
||||
FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE,
|
||||
FILAMENT_CHANGE_RESPONSE_RESUME_PRINT
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
enum AdvancedPauseMenuResponse {
|
||||
ADVANCED_PAUSE_RESPONSE_WAIT_FOR,
|
||||
ADVANCED_PAUSE_RESPONSE_EXTRUDE_MORE,
|
||||
ADVANCED_PAUSE_RESPONSE_RESUME_PRINT
|
||||
};
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
enum FilamentChangeMessage {
|
||||
FILAMENT_CHANGE_MESSAGE_INIT,
|
||||
FILAMENT_CHANGE_MESSAGE_UNLOAD,
|
||||
FILAMENT_CHANGE_MESSAGE_INSERT,
|
||||
FILAMENT_CHANGE_MESSAGE_LOAD,
|
||||
FILAMENT_CHANGE_MESSAGE_EXTRUDE,
|
||||
FILAMENT_CHANGE_MESSAGE_OPTION,
|
||||
FILAMENT_CHANGE_MESSAGE_RESUME,
|
||||
FILAMENT_CHANGE_MESSAGE_STATUS,
|
||||
FILAMENT_CHANGE_MESSAGE_CLICK_TO_HEAT_NOZZLE,
|
||||
FILAMENT_CHANGE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT
|
||||
enum AdvancedPauseMessage {
|
||||
ADVANCED_PAUSE_MESSAGE_INIT,
|
||||
ADVANCED_PAUSE_MESSAGE_UNLOAD,
|
||||
ADVANCED_PAUSE_MESSAGE_INSERT,
|
||||
ADVANCED_PAUSE_MESSAGE_LOAD,
|
||||
ADVANCED_PAUSE_MESSAGE_EXTRUDE,
|
||||
ADVANCED_PAUSE_MESSAGE_OPTION,
|
||||
ADVANCED_PAUSE_MESSAGE_RESUME,
|
||||
ADVANCED_PAUSE_MESSAGE_STATUS,
|
||||
ADVANCED_PAUSE_MESSAGE_CLICK_TO_HEAT_NOZZLE,
|
||||
ADVANCED_PAUSE_MESSAGE_WAIT_FOR_NOZZLES_TO_HEAT
|
||||
};
|
||||
#endif
|
||||
#endif
|
||||
@@ -161,12 +167,23 @@ enum LCDViewAction {
|
||||
LCDVIEW_CALL_NO_REDRAW
|
||||
};
|
||||
|
||||
/**
|
||||
* Dual X Carriage modes. A Dual Nozzle can also do duplication.
|
||||
*/
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
||||
enum DualXMode {
|
||||
DXC_FULL_CONTROL_MODE,
|
||||
DXC_AUTO_PARK_MODE,
|
||||
DXC_FULL_CONTROL_MODE, // DUAL_X_CARRIAGE only
|
||||
DXC_AUTO_PARK_MODE, // DUAL_X_CARRIAGE only
|
||||
DXC_DUPLICATION_MODE
|
||||
};
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Workspace planes only apply to G2/G3 moves
|
||||
* (and "canned cycles" - not a current feature)
|
||||
*/
|
||||
#if ENABLED(CNC_WORKSPACE_PLANES)
|
||||
enum WorkspacePlane { PLANE_XY, PLANE_ZX, PLANE_YZ };
|
||||
#endif
|
||||
|
||||
#endif // __ENUM_H__
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,15 @@
|
||||
This is an example configuration for the CL-260.
|
||||
Change Z_MAX_POS to 300 for the CL-260MAX.
|
||||
|
||||
(The printer is available on AliExpress; be aware that this is not a beginner's
|
||||
printer -- it needs tweaking and some parts replaced before being decent.)
|
||||
|
||||
The printer comes with a quite old Marlin, the sources are available here:
|
||||
http://www.thingiverse.com/thing:1635830/ and I recommend replacing them.
|
||||
|
||||
The setting "works" for my printer and the extruder using my calibration value.
|
||||
You might want to tweak some settings, e.g enable EEPROM, increase default Z speed, adjust homing speeds,...
|
||||
|
||||
Have fun!
|
||||
--
|
||||
tobi
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -130,6 +130,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 3
|
||||
@@ -137,13 +139,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -167,6 +194,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -553,7 +582,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -868,13 +896,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -927,6 +958,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -951,13 +983,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1116,10 +1145,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1141,7 +1171,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1267,12 +1297,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1355,6 +1379,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1371,6 +1416,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1401,6 +1449,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1418,11 +1471,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1461,12 +1509,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1504,7 +1555,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 35
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 30 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 10 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 1 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 30 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 10 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 1 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
//#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -537,7 +566,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -852,13 +880,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -911,6 +942,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -935,13 +967,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1100,10 +1129,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1125,7 +1155,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1251,12 +1281,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1339,6 +1363,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1355,6 +1400,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1385,6 +1433,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1402,11 +1455,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1445,12 +1493,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1488,7 +1539,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 2
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -537,7 +566,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -852,13 +880,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -911,6 +942,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -935,13 +967,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1100,10 +1129,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1125,7 +1155,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1251,12 +1281,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1339,6 +1363,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1355,6 +1400,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1385,6 +1433,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1402,11 +1455,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1445,12 +1493,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1488,7 +1539,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Delta printer replace the configuration files with the files in the
|
||||
// example_configurations/delta directory.
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -561,7 +590,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -639,7 +667,7 @@
|
||||
*/
|
||||
#define X_PROBE_OFFSET_FROM_EXTRUDER 38 // X offset: -left +right [of the nozzle]
|
||||
#define Y_PROBE_OFFSET_FROM_EXTRUDER -7 // Y offset: -front +behind [the nozzle]
|
||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER -10.1 // Z offset: -below +above [the nozzle]
|
||||
#define Z_PROBE_OFFSET_FROM_EXTRUDER -10.4 // Z offset: -below +above [the nozzle]
|
||||
|
||||
// X and Y axis travel speed (mm/m) between probes
|
||||
#define XY_PROBE_SPEED 7500
|
||||
@@ -874,13 +902,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y 10
|
||||
#define UBL_PROBE_PT_1_X 45 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 170 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 45 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 170
|
||||
#define UBL_PROBE_PT_2_X 45
|
||||
#define UBL_PROBE_PT_2_Y 25
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 25
|
||||
#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -933,6 +964,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -957,13 +989,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1122,10 +1151,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1147,7 +1177,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1271,13 +1301,7 @@
|
||||
//
|
||||
// ULTIPANEL as seen on Thingiverse.
|
||||
//
|
||||
#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
@@ -1361,6 +1385,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1377,6 +1422,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1407,6 +1455,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1424,11 +1477,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1467,12 +1515,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1510,7 +1561,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -500,7 +509,7 @@
|
||||
#endif
|
||||
|
||||
// Show a progress bar on HD44780 LCDs for SD printing
|
||||
//#define LCD_PROGRESS_BAR
|
||||
#define LCD_PROGRESS_BAR
|
||||
|
||||
#if ENABLED(LCD_PROGRESS_BAR)
|
||||
// Amount of time (ms) to show the bar
|
||||
@@ -639,7 +648,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -669,10 +678,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -761,22 +776,25 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
|
||||
#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 10 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 10 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -787,16 +805,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1017,7 +1036,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1132,20 +1151,73 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
// @section debug
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
#define PINS_DEBUGGING
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1163,6 +1235,133 @@
|
||||
* - M206 and M428 are disabled.
|
||||
* - G92 will revert to its behavior from Marlin 1.0.
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.5
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -132,6 +132,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -139,13 +141,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -169,6 +196,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -545,7 +574,6 @@
|
||||
*
|
||||
*/
|
||||
#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -860,13 +888,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -919,6 +950,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -943,13 +975,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1108,10 +1137,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1133,7 +1163,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1259,12 +1289,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1347,6 +1371,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1363,6 +1408,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1393,6 +1441,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1410,11 +1463,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1453,12 +1501,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1496,7 +1547,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
#define MACHINE_UUID "8d083632-40c5-4649-85b8-43d9ae6c5d55" // BQ Hephestos 2 standard config
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -548,7 +577,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -863,13 +891,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -922,6 +953,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -946,13 +978,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1111,10 +1140,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1136,7 +1166,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1262,12 +1292,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1350,6 +1374,27 @@
|
||||
//
|
||||
#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1366,6 +1411,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1396,6 +1444,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1413,11 +1466,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1456,12 +1504,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1499,7 +1550,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,17 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
#define DIGIPOT_MOTOR_CURRENT {150, 170, 180, 190, 180} // Values 0-255 (bq ZUM Mega 3D (default): X = 150 [~1.17A]; Y = 170 [~1.33A]; Z = 180 [~1.41A]; E0 = 190 [~1.49A])
|
||||
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
#define DIGIPOT_MOTOR_CURRENT { 150, 170, 180, 190, 180 } // Values 0-255 (bq ZUM Mega 3D (default): X = 150 [~1.17A]; Y = 170 [~1.33A]; Z = 180 [~1.41A]; E0 = 190 [~1.49A])
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -441,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -620,7 +628,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -646,10 +654,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -738,22 +752,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -764,16 +779,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -994,7 +1010,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1109,6 +1125,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1117,12 +1182,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1142,4 +1207,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -74,15 +74,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -149,6 +149,8 @@
|
||||
#define MACHINE_UUID "92f72de1-c211-452e-9f2b-61ef88a4751e" // K8200 standard config without VM8201 (Display)
|
||||
#endif
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -156,13 +158,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -186,6 +213,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -322,6 +351,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
//#define DEFAULT_Ki 1.08
|
||||
@@ -583,7 +613,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -898,13 +927,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -957,6 +989,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -981,13 +1014,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS // K8200: uses EEPROM by default
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1149,10 +1179,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1174,7 +1205,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1300,12 +1331,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1388,6 +1413,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1404,6 +1450,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1434,6 +1483,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1496,12 +1550,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1539,7 +1596,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -136,8 +136,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -233,12 +233,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -378,6 +382,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -426,16 +432,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -453,6 +459,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -649,7 +658,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -675,10 +684,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -767,22 +782,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS (X_MAX_POS-3) // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS (X_MAX_POS-3) // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -793,16 +809,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1023,7 +1040,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1138,6 +1155,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1146,12 +1212,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1171,4 +1237,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
//#define DEFAULT_Ki 1.08
|
||||
@@ -554,7 +584,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -869,13 +898,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -928,6 +960,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -952,13 +985,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1117,10 +1147,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1142,7 +1173,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1268,12 +1299,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1356,6 +1381,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1372,6 +1418,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1402,6 +1451,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1419,11 +1473,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1462,12 +1511,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1505,7 +1557,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 100 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 100 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 20 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 5 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 100 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 100 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 20 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 5 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 600 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 100 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 100 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 2
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
//#define DEFAULT_Ki 1.08
|
||||
@@ -554,7 +584,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -869,13 +898,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -928,6 +960,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -952,13 +985,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1117,10 +1147,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1142,7 +1173,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1268,12 +1299,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1356,6 +1381,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1372,6 +1418,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1402,6 +1451,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1419,11 +1473,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1462,12 +1511,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1505,7 +1557,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
http://www.k8400.eu/
|
||||
|
||||
Configuration files for the K8400, ported upstream from the official Velleman firmware.
|
||||
Like it's predecessor, (K8200), the K8400 is a 3Drag clone. There are some minor differences, documented in pins_K8400.h.
|
||||
Like its predecessor, (K8200), the K8400 is a 3Drag clone. There are some minor differences, documented in pins_K8400.h.
|
||||
|
||||
Single and dual head configurations provided. Copy the correct Configuration.h and Configuration_adv.h to the /Marlin/ directory.
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,3 @@
|
||||
# Configuration for Malyan M150 hobbyking printer
|
||||
# config without automatic bed level sensor
|
||||
# or in other words, "as stock"
|
||||
@@ -0,0 +1,104 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Custom Bitmap for splashscreen
|
||||
*
|
||||
* You may use one of the following tools to generate the C++ bitmap array from
|
||||
* a black and white image:
|
||||
*
|
||||
* - http://www.marlinfw.org/tools/u8glib/converter.html
|
||||
* - http://www.digole.com/tools/PicturetoC_Hex_converter.php
|
||||
*/
|
||||
#include <avr/pgmspace.h>
|
||||
|
||||
#define CUSTOM_BOOTSCREEN_TIMEOUT 1000
|
||||
#define CUSTOM_BOOTSCREEN_BMPWIDTH 128
|
||||
#define CUSTOM_BOOTSCREEN_BMPHEIGHT 64
|
||||
|
||||
const unsigned char custom_start_bmp[1024] PROGMEM = {
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x07,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x1f,0xc0,0x00,0x0f,0xe0,0x7c,0x03,0xe0,0x78,0x1c,0x07,0x81,0xe0,0xf0,0x3e,0x0e
|
||||
,0x7f,0xe0,0x00,0x3f,0xf0,0x7e,0x07,0xe0,0xfc,0x1c,0x03,0x81,0xc1,0xf8,0x3f,0x0e
|
||||
,0x7f,0xf8,0x00,0x7f,0xf0,0x7e,0x07,0xe0,0xfc,0x1c,0x03,0xc3,0xc1,0xf8,0x3f,0x0e
|
||||
,0x7b,0xfe,0x01,0xfe,0xf0,0x7f,0x0f,0xe1,0xfe,0x1c,0x01,0xc3,0x83,0xfc,0x3f,0x8e
|
||||
,0x7c,0xff,0x87,0xf9,0xf0,0x77,0x0e,0xe1,0xfe,0x1c,0x01,0xe7,0x83,0xfc,0x3b,0x8e
|
||||
,0x7f,0x7f,0xcf,0xf7,0xf0,0x77,0x9e,0xe1,0xce,0x1c,0x00,0xe7,0x03,0x9c,0x3b,0xce
|
||||
,0x7f,0x9f,0xff,0xcf,0xf0,0x73,0x9c,0xe3,0xcf,0x1c,0x00,0xff,0x07,0x9e,0x39,0xce
|
||||
,0x7f,0xe7,0xff,0x3f,0xf0,0x73,0xfc,0xe3,0x87,0x1c,0x00,0x7e,0x07,0x0e,0x39,0xee
|
||||
,0x7f,0xfb,0xfe,0xff,0xf0,0x71,0xf8,0xe3,0x87,0x1c,0x00,0x7e,0x0f,0x0f,0x38,0xee
|
||||
,0x7f,0xfc,0xf9,0xff,0xf0,0x71,0xf8,0xe7,0xff,0x9c,0x00,0x3c,0x0f,0xff,0x38,0xfe
|
||||
,0x7f,0xff,0x27,0xff,0xf0,0x70,0xf0,0xe7,0xff,0x9c,0x00,0x3c,0x0f,0xff,0x38,0x7e
|
||||
,0x7f,0xff,0xdf,0xff,0xf0,0x70,0xf0,0xef,0xff,0xdc,0x00,0x3c,0x1f,0xff,0xb8,0x7e
|
||||
,0x7f,0xdf,0xff,0xdf,0xf0,0x70,0x60,0xef,0x03,0xdf,0xf8,0x3c,0x1e,0x07,0xb8,0x3e
|
||||
,0x7f,0xc7,0xff,0x1f,0xf0,0x70,0x60,0xee,0x01,0xdf,0xf8,0x3c,0x1c,0x03,0xb8,0x3e
|
||||
,0x7f,0xc3,0xfe,0x1f,0xf0,0x70,0x00,0xee,0x01,0xdf,0xf8,0x3c,0x1c,0x03,0xb8,0x1e
|
||||
,0x7f,0xc3,0xfe,0x1f,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x7f,0xc3,0xde,0x1f,0xf0,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
|
||||
,0x7f,0xc3,0xde,0x1f,0xf0,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
|
||||
,0x7f,0xc3,0xde,0x1f,0xf0,0x7c,0x3f,0xfa,0xfb,0xff,0xff,0xff,0xfd,0x7a,0xbf,0xfe
|
||||
,0x7f,0xc3,0xde,0x1f,0xf0,0x7d,0x9f,0xfb,0xff,0xff,0xff,0xff,0xff,0x7e,0xf7,0xfe
|
||||
,0x7f,0xc3,0xde,0x1f,0xf0,0x7d,0x93,0x1a,0x8a,0x18,0xe3,0x8c,0x45,0x1a,0xa2,0xde
|
||||
,0x3f,0xc3,0xde,0x0f,0xf0,0x7c,0x2d,0xca,0xca,0xd6,0xe9,0x24,0xcd,0x6a,0xb6,0xbe
|
||||
,0x1f,0x83,0xde,0x07,0xe0,0x7d,0xa3,0x6a,0x9a,0xd6,0xe9,0x26,0x65,0x6a,0xb6,0x3e
|
||||
,0x06,0x03,0xde,0x01,0x80,0x7d,0x91,0x0a,0x8a,0xd8,0xe3,0x8c,0x45,0x1a,0xb3,0x7e
|
||||
,0x00,0x03,0xde,0x00,0x00,0x7f,0xff,0xff,0xff,0xfe,0xef,0xff,0xff,0xff,0xff,0x7e
|
||||
,0x00,0x03,0xde,0x00,0x00,0x7f,0xff,0xff,0xff,0xf1,0xef,0xff,0xff,0xff,0xfe,0xfe
|
||||
,0x00,0x03,0xde,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
|
||||
,0x00,0x03,0xde,0x00,0x00,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe
|
||||
,0x00,0x03,0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x01,0xdc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
|
||||
|
||||
};
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
#define DEFAULT_Kp 22.2
|
||||
#define DEFAULT_Ki 1.08
|
||||
@@ -554,7 +584,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -869,13 +898,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -928,6 +960,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -952,13 +985,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1117,10 +1147,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1142,7 +1173,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1268,12 +1299,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1356,6 +1381,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1372,6 +1418,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1402,6 +1451,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1419,11 +1473,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1462,12 +1511,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1505,7 +1557,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -132,6 +132,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1 // Single extruder. Set to 2 for dual extruders
|
||||
@@ -139,13 +141,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -169,6 +196,8 @@
|
||||
#define HOTEND_OFFSET_X {0.0, 36.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
#define HOTEND_OFFSET_Y {0.0, 0.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -553,7 +582,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -868,13 +896,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -927,6 +958,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -951,13 +983,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1116,10 +1145,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1141,7 +1171,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1267,12 +1297,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1357,6 +1381,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1373,6 +1418,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1403,6 +1451,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1420,11 +1473,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1463,12 +1511,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1506,7 +1557,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -55,20 +55,17 @@
|
||||
* http://www.thingiverse.com/thing:298812
|
||||
*/
|
||||
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// MORGAN_SCARA for Marlin was developed by QHARLEY in ZA in 2012/2013. Implemented
|
||||
// and slightly reworked by JCERNY in 06/2014 with the goal to bring it into Master-Branch
|
||||
// QHARLEYS Autobedlevelling has not been ported, because Marlin has now Bed-levelling
|
||||
// You might need Z-Min endstop on SCARA-Printer to use this feature. Actually untested!
|
||||
|
||||
/**
|
||||
* MORGAN_SCARA was developed by QHARLEY in South Africa in 2012-2013.
|
||||
* Implemented and slightly reworked by JCERNY in June, 2014.
|
||||
*
|
||||
* MAKERARM_SCARA is in development, included as an alternate example.
|
||||
* Other SCARA models may be added, or SCARA may be unified in the future.
|
||||
*/
|
||||
|
||||
// Specify the specific SCARA model
|
||||
#define MORGAN_SCARA
|
||||
@@ -76,6 +73,7 @@
|
||||
|
||||
#if ENABLED(MORGAN_SCARA) || ENABLED(MAKERARM_SCARA)
|
||||
//#define DEBUG_SCARA_KINEMATICS
|
||||
//#define SCARA_FEEDRATE_SCALING // Convert XY feedrate from mm/s to degrees/s on the fly
|
||||
|
||||
// If movement is choppy try lowering this value
|
||||
#define SCARA_SEGMENTS_PER_SECOND 200
|
||||
@@ -161,6 +159,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -168,13 +168,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -198,6 +223,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -569,7 +596,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -884,13 +910,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -943,6 +972,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -967,13 +997,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1132,10 +1159,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1157,7 +1185,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1283,12 +1311,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1371,6 +1393,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1387,6 +1430,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1417,6 +1463,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1434,11 +1485,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1477,12 +1523,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1520,7 +1569,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -574,7 +603,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -889,13 +917,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -948,6 +979,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -972,13 +1004,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1137,10 +1166,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1162,7 +1192,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1288,12 +1318,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1376,6 +1400,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1392,6 +1437,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1422,6 +1470,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1439,11 +1492,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1482,12 +1530,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1525,7 +1576,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -74,15 +74,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -151,6 +151,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -158,13 +160,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -188,6 +215,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -329,6 +358,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
//#define DEFAULT_Ki 1.08
|
||||
@@ -605,7 +635,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -925,13 +954,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -984,6 +1016,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -1008,13 +1041,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1173,10 +1203,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1198,7 +1229,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1324,12 +1355,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1412,6 +1437,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1428,6 +1474,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1458,6 +1507,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1518,12 +1572,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1561,7 +1618,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -639,7 +648,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -665,10 +674,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -757,22 +772,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -783,16 +799,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1013,7 +1030,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1128,6 +1145,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1161,4 +1227,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -132,6 +132,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -139,13 +141,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -169,6 +196,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -545,7 +574,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -860,13 +888,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -919,6 +950,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -943,13 +975,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1108,10 +1137,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1133,7 +1163,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1259,12 +1289,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1347,6 +1371,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1363,6 +1408,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1393,6 +1441,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1410,11 +1463,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1453,12 +1501,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1496,7 +1547,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
#define DEFAULT_Kp 22.2
|
||||
#define DEFAULT_Ki 1.08
|
||||
@@ -554,7 +584,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -869,13 +898,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -928,6 +960,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -952,13 +985,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1117,10 +1147,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1142,7 +1173,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1268,12 +1299,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1356,6 +1381,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1372,6 +1418,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1402,6 +1451,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1419,11 +1473,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1462,12 +1511,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1505,7 +1557,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
//#define DEFAULT_Ki 1.08
|
||||
@@ -431,47 +461,51 @@
|
||||
// and processor overload (too many expensive sqrt calls).
|
||||
#define DELTA_SEGMENTS_PER_SECOND 160
|
||||
|
||||
// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 218.0 // mm
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS 100.00 //mm // get this value from auto calibrate
|
||||
|
||||
// height from z=0 to home position
|
||||
#define DELTA_HEIGHT 295.00 // get this value from auto calibrate - use G33 P1 A at 1st time calibration
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 85.0
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
//#define DELTA_HOME_TO_SAFE_ZONE
|
||||
|
||||
// Delta calibration menu
|
||||
// uncomment to add three points calibration menu option.
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
|
||||
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 17) // mm
|
||||
|
||||
// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
#define DELTA_AUTO_CALIBRATION
|
||||
|
||||
// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 4 // set the default number of probe points : n*n (-7 -> +7)
|
||||
// set the default number of probe points : n*n (1 -> 7)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 4
|
||||
#endif
|
||||
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
#define DELTA_HOME_TO_SAFE_ZONE
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
|
||||
// Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
|
||||
#define DELTA_CALIBRATION_RADIUS 73.5 // mm
|
||||
#endif
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 } // get these from auto calibrate
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 85.0 // mm
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 218.0 // mm
|
||||
|
||||
// height from z=0 to home position
|
||||
#define DELTA_HEIGHT 295.00 // get this value from auto calibrate
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // get these from auto calibrate
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS 101.0 //mm Get this value from auto calibrate
|
||||
|
||||
// Trim adjustments for individual towers
|
||||
// tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0
|
||||
// measured in degrees anticlockwise looking from above the printer
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0, 0, 0 } // get these from auto calibrate
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // get these values from auto calibrate
|
||||
|
||||
// delta radius and diaginal rod adjustments measured in mm
|
||||
//#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -622,7 +656,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP // A3K leave disabled!
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -988,13 +1021,18 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define _PX(R,A) (R) * cos(RADIANS(A))
|
||||
#define _PY(R,A) (R) * sin(RADIANS(A))
|
||||
#define UBL_PROBE_PT_1_X _PX(DELTA_PROBEABLE_RADIUS, 0) // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y _PY(DELTA_PROBEABLE_RADIUS, 0)
|
||||
#define UBL_PROBE_PT_2_X _PX(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_2_Y _PY(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_3_X _PX(DELTA_PROBEABLE_RADIUS, 240)
|
||||
#define UBL_PROBE_PT_3_Y _PY(DELTA_PROBEABLE_RADIUS, 240)
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -1047,6 +1085,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -1070,13 +1109,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1235,10 +1271,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1260,7 +1297,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1387,12 +1424,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1475,6 +1506,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1491,6 +1543,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1521,6 +1576,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1538,11 +1598,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1581,12 +1636,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1624,7 +1682,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -415,16 +421,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -442,6 +448,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -641,7 +650,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -667,10 +676,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -759,22 +774,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -785,16 +801,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1015,7 +1032,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1130,6 +1147,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1138,12 +1204,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1163,4 +1229,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
//#define DEFAULT_Ki 1.08
|
||||
@@ -431,54 +461,51 @@
|
||||
// and processor overload (too many expensive sqrt calls).
|
||||
#define DELTA_SEGMENTS_PER_SECOND 160
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 218.0 // mm
|
||||
|
||||
// Horizontal offset from middle of printer to smooth rod center.
|
||||
#define DELTA_SMOOTH_ROD_OFFSET 150.0 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the end effector.
|
||||
#define DELTA_EFFECTOR_OFFSET 24.0 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the carriages.
|
||||
#define DELTA_CARRIAGE_OFFSET 22.0 // mm
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
|
||||
|
||||
// height from z=0.00 to home position
|
||||
#define DELTA_HEIGHT 280 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 85.0
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
//#define DELTA_HOME_TO_SAFE_ZONE
|
||||
|
||||
// Delta calibration menu
|
||||
// uncomment to add three points calibration menu option.
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
|
||||
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 17) // mm
|
||||
|
||||
// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
|
||||
// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 3 // set the default number of probe points : n*n (-7 -> +7)
|
||||
// set the default number of probe points : n*n (1 -> 7)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 4
|
||||
#endif
|
||||
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
//#define DELTA_HOME_TO_SAFE_ZONE
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
|
||||
// Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
|
||||
#define DELTA_CALIBRATION_RADIUS 73.5 // mm
|
||||
#endif
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 } // get these from auto calibrate
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 85.0 // mm
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 218.0 // mm
|
||||
|
||||
// height from z=0 to home position
|
||||
#define DELTA_HEIGHT 280.00 // get this value from auto calibrate
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // get these from auto calibrate
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS 101.0 //mm Get this value from auto calibrate
|
||||
|
||||
// Trim adjustments for individual towers
|
||||
// tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0
|
||||
// measured in degrees anticlockwise looking from above the printer
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0, 0, 0 } // get these from auto calibrate
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // get these values from auto calibrate
|
||||
|
||||
// delta radius and diaginal rod adjustments measured in mm
|
||||
//#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -629,7 +656,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP // A3K leave disabled!
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -990,13 +1016,18 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define _PX(R,A) (R) * cos(RADIANS(A))
|
||||
#define _PY(R,A) (R) * sin(RADIANS(A))
|
||||
#define UBL_PROBE_PT_1_X _PX(DELTA_PROBEABLE_RADIUS, 0) // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y _PY(DELTA_PROBEABLE_RADIUS, 0)
|
||||
#define UBL_PROBE_PT_2_X _PX(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_2_Y _PY(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_3_X _PX(DELTA_PROBEABLE_RADIUS, 240)
|
||||
#define UBL_PROBE_PT_3_Y _PY(DELTA_PROBEABLE_RADIUS, 240)
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -1049,6 +1080,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -1072,13 +1104,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1237,10 +1266,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1262,7 +1292,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1388,12 +1418,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1476,6 +1500,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1492,6 +1537,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1522,6 +1570,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1539,11 +1592,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1582,12 +1630,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1625,7 +1676,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -415,16 +421,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -442,6 +448,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -641,7 +650,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -667,10 +676,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -758,22 +773,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -784,16 +800,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1014,7 +1031,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1129,6 +1146,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1137,12 +1203,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1162,4 +1228,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
#define DEFAULT_Kp 22.2
|
||||
#define DEFAULT_Ki 1.08
|
||||
@@ -421,53 +451,51 @@
|
||||
// and processor overload (too many expensive sqrt calls).
|
||||
#define DELTA_SEGMENTS_PER_SECOND 200
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 250.0 // mm
|
||||
|
||||
// Horizontal offset from middle of printer to smooth rod center.
|
||||
#define DELTA_SMOOTH_ROD_OFFSET 175.0 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the end effector.
|
||||
#define DELTA_EFFECTOR_OFFSET 33.0 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the carriages.
|
||||
#define DELTA_CARRIAGE_OFFSET 18.0 // mm
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate // height from z=0.00 to home position
|
||||
|
||||
// height from z=0.00 to home position
|
||||
#define DELTA_HEIGHT 250 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 140.0
|
||||
|
||||
// Delta calibration menu
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
|
||||
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 28) // mm
|
||||
|
||||
// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 3 // set the default number of probe points : n*n (-7 -> +7)
|
||||
#endif
|
||||
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
//#define DELTA_HOME_TO_SAFE_ZONE
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 } // get these from auto calibrate
|
||||
// Delta calibration menu
|
||||
// uncomment to add three points calibration menu option.
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
|
||||
// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
// set the default number of probe points : n*n (1 -> 7)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 4
|
||||
#endif
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
|
||||
// Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
|
||||
#define DELTA_CALIBRATION_RADIUS 121.5 // mm
|
||||
#endif
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 140.0 // mm
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 250.0 // mm
|
||||
|
||||
// height from z=0 to home position
|
||||
#define DELTA_HEIGHT 250.00 // get this value from auto calibrate
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // get these from auto calibrate
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS 124.0 //mm Get this value from auto calibrate
|
||||
|
||||
// Trim adjustments for individual towers
|
||||
// tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0
|
||||
// measured in degrees anticlockwise looking from above the printer
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0, 0, 0 } // get these from auto calibrate
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // get these values from auto calibrate
|
||||
|
||||
// delta radius and diaginal rod adjustments measured in mm
|
||||
//#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -618,7 +646,6 @@
|
||||
*
|
||||
*/
|
||||
#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -922,6 +949,10 @@
|
||||
// at which point movement will be level to the machine's XY plane.
|
||||
// The height can be set with M420 Z<height>
|
||||
//#define ENABLE_LEVELING_FADE_HEIGHT
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
@@ -931,8 +962,6 @@
|
||||
#define GRID_MAX_POINTS_X 9
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||
@@ -977,13 +1006,18 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define _PX(R,A) (R) * cos(RADIANS(A))
|
||||
#define _PY(R,A) (R) * sin(RADIANS(A))
|
||||
#define UBL_PROBE_PT_1_X _PX(DELTA_PROBEABLE_RADIUS, 0) // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y _PY(DELTA_PROBEABLE_RADIUS, 0)
|
||||
#define UBL_PROBE_PT_2_X _PX(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_2_Y _PY(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_3_X _PX(DELTA_PROBEABLE_RADIUS, 240)
|
||||
#define UBL_PROBE_PT_3_Y _PY(DELTA_PROBEABLE_RADIUS, 240)
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -1036,6 +1070,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -1059,13 +1094,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1224,10 +1256,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1249,7 +1282,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1375,12 +1408,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1463,6 +1490,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1479,6 +1527,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1509,6 +1560,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1526,11 +1582,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1569,12 +1620,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1612,7 +1666,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -415,16 +421,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -442,6 +448,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -638,7 +647,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -664,10 +673,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -756,22 +771,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -782,16 +798,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1012,7 +1029,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1127,6 +1144,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1135,12 +1201,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1160,4 +1226,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
#define DEFAULT_Kp 22.2
|
||||
#define DEFAULT_Ki 1.08
|
||||
@@ -421,53 +451,51 @@
|
||||
// and processor overload (too many expensive sqrt calls).
|
||||
#define DELTA_SEGMENTS_PER_SECOND 200
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 215.0 // mm
|
||||
|
||||
// Horizontal offset from middle of printer to smooth rod center.
|
||||
#define DELTA_SMOOTH_ROD_OFFSET 145.0 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the end effector.
|
||||
#define DELTA_EFFECTOR_OFFSET 19.9 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the carriages.
|
||||
#define DELTA_CARRIAGE_OFFSET 19.5 // mm
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
|
||||
|
||||
// height from z=0.00 to home position
|
||||
#define DELTA_HEIGHT 250 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 90.0
|
||||
|
||||
// Delta calibration menu
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
|
||||
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 18) // mm
|
||||
|
||||
// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 3 // set the default number of probe points : n*n (-7 -> +7)
|
||||
#endif
|
||||
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
//#define DELTA_HOME_TO_SAFE_ZONE
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 } // get these from auto calibrate
|
||||
// Delta calibration menu
|
||||
// uncomment to add three points calibration menu option.
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
|
||||
// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
// set the default number of probe points : n*n (1 -> 7)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 4
|
||||
#endif
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
|
||||
// Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
|
||||
#define DELTA_CALIBRATION_RADIUS 78.0 // mm
|
||||
#endif
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 90.0 // mm
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 215.0 // mm
|
||||
|
||||
// height from z=0 to home position
|
||||
#define DELTA_HEIGHT 250.00 // get this value from auto calibrate
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // get these from auto calibrate
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS 105.2 //mm Get this value from auto calibrate
|
||||
|
||||
// Trim adjustments for individual towers
|
||||
// tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0
|
||||
// measured in degrees anticlockwise looking from above the printer
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0, 0, 0 } // get these from auto calibrate
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // get these values from auto calibrate
|
||||
|
||||
// delta radius and diaginal rod adjustments measured in mm
|
||||
//#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -618,7 +646,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -920,6 +947,10 @@
|
||||
// at which point movement will be level to the machine's XY plane.
|
||||
// The height can be set with M420 Z<height>
|
||||
//#define ENABLE_LEVELING_FADE_HEIGHT
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
@@ -929,8 +960,6 @@
|
||||
#define GRID_MAX_POINTS_X 9
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||
@@ -980,13 +1009,18 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define _PX(R,A) (R) * cos(RADIANS(A))
|
||||
#define _PY(R,A) (R) * sin(RADIANS(A))
|
||||
#define UBL_PROBE_PT_1_X _PX(DELTA_PROBEABLE_RADIUS, 0) // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y _PY(DELTA_PROBEABLE_RADIUS, 0)
|
||||
#define UBL_PROBE_PT_2_X _PX(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_2_Y _PY(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_3_X _PX(DELTA_PROBEABLE_RADIUS, 240)
|
||||
#define UBL_PROBE_PT_3_Y _PY(DELTA_PROBEABLE_RADIUS, 240)
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -1039,6 +1073,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -1062,13 +1097,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1227,10 +1259,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1252,7 +1285,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1378,12 +1411,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1466,6 +1493,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1482,6 +1530,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1512,6 +1563,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1529,11 +1585,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1572,12 +1623,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1615,7 +1669,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -415,16 +421,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -442,6 +448,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -638,7 +647,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -664,10 +673,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -756,22 +771,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -782,16 +798,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1012,7 +1029,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1127,6 +1144,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1135,12 +1201,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1160,4 +1226,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -62,15 +62,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -133,6 +133,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -140,13 +142,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -170,6 +197,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -408,53 +437,51 @@
|
||||
// and processor overload (too many expensive sqrt calls).
|
||||
#define DELTA_SEGMENTS_PER_SECOND 160
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 301.0 // mm
|
||||
|
||||
// Horizontal offset from middle of printer to smooth rod center.
|
||||
#define DELTA_SMOOTH_ROD_OFFSET 212.357 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the end effector.
|
||||
#define DELTA_EFFECTOR_OFFSET 30.0 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the carriages.
|
||||
#define DELTA_CARRIAGE_OFFSET 30.0 // mm
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
|
||||
|
||||
// height from z=0.00 to home position
|
||||
#define DELTA_HEIGHT 277 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 127.0
|
||||
|
||||
// Delta calibration menu
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
|
||||
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 25.4) // mm
|
||||
|
||||
// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 3 // set the default number of probe points : n*n (-7 -> +7)
|
||||
#endif
|
||||
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
//#define DELTA_HOME_TO_SAFE_ZONE
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 } // get these from auto calibrate
|
||||
// Delta calibration menu
|
||||
// uncomment to add three points calibration menu option.
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
|
||||
// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
// set the default number of probe points : n*n (1 -> 7)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 4
|
||||
#endif
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
|
||||
// Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
|
||||
#define DELTA_CALIBRATION_RADIUS 110.0 // mm
|
||||
#endif
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 127.0 // mm
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 301.0 // mm
|
||||
|
||||
// height from z=0 to home position
|
||||
#define DELTA_HEIGHT 277.00 // get this value from auto calibrate
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // get these from auto calibrate
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS 152.357 //mm Get this value from auto calibrate
|
||||
|
||||
// Trim adjustments for individual towers
|
||||
// tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0
|
||||
// measured in degrees anticlockwise looking from above the printer
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0, 0, 0 } // get these from auto calibrate
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // get these values from auto calibrate
|
||||
|
||||
// delta radius and diaginal rod adjustments measured in mm
|
||||
//#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -612,7 +639,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -926,6 +952,10 @@
|
||||
// at which point movement will be level to the machine's XY plane.
|
||||
// The height can be set with M420 Z<height>
|
||||
//#define ENABLE_LEVELING_FADE_HEIGHT
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
@@ -935,8 +965,6 @@
|
||||
#define GRID_MAX_POINTS_X 7
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 25)
|
||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||
#define FRONT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||
@@ -986,13 +1014,18 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define _PX(R,A) (R) * cos(RADIANS(A))
|
||||
#define _PY(R,A) (R) * sin(RADIANS(A))
|
||||
#define UBL_PROBE_PT_1_X _PX(DELTA_PROBEABLE_RADIUS, 0) // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y _PY(DELTA_PROBEABLE_RADIUS, 0)
|
||||
#define UBL_PROBE_PT_2_X _PX(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_2_Y _PY(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_3_X _PX(DELTA_PROBEABLE_RADIUS, 240)
|
||||
#define UBL_PROBE_PT_3_Y _PY(DELTA_PROBEABLE_RADIUS, 240)
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -1045,6 +1078,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -1068,13 +1102,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1233,10 +1264,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1258,7 +1290,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1384,12 +1416,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1472,6 +1498,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1488,6 +1535,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1518,6 +1568,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1535,11 +1590,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1578,12 +1628,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1621,7 +1674,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -128,8 +128,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -225,12 +225,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -370,6 +374,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -420,16 +426,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -447,6 +453,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -643,7 +652,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -669,10 +678,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -761,22 +776,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -787,16 +803,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1017,7 +1034,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1132,6 +1149,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1140,12 +1206,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1165,4 +1231,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -426,53 +455,51 @@
|
||||
// and processor overload (too many expensive sqrt calls).
|
||||
#define DELTA_SEGMENTS_PER_SECOND 160
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 317.3 + 2.5 // mm
|
||||
|
||||
// Horizontal offset from middle of printer to smooth rod center.
|
||||
#define DELTA_SMOOTH_ROD_OFFSET 220.1 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the end effector.
|
||||
#define DELTA_EFFECTOR_OFFSET 24.0 // mm
|
||||
|
||||
// Horizontal offset of the universal joints on the carriages.
|
||||
#define DELTA_CARRIAGE_OFFSET 22.0 // mm
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET - DELTA_EFFECTOR_OFFSET - DELTA_CARRIAGE_OFFSET) //mm // get this value from auto calibrate
|
||||
|
||||
// height from z=0.00 to home position
|
||||
#define DELTA_HEIGHT 380 // get this value from auto calibrate - use G33 C-1 at 1st time calibration
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 140.0
|
||||
|
||||
// Delta calibration menu
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// set the radius for the calibration probe points - max 0.8 * DELTA_PRINTABLE_RADIUS if DELTA_AUTO_CALIBRATION enabled
|
||||
#define DELTA_CALIBRATION_RADIUS (DELTA_PRINTABLE_RADIUS - 28) // mm
|
||||
|
||||
// G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 3 // set the default number of probe points : n*n (-7 -> +7)
|
||||
#endif
|
||||
|
||||
// After homing move down to a height where XY movement is unconstrained
|
||||
//#define DELTA_HOME_TO_SAFE_ZONE
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0, 0, 0 } // get these from auto calibrate
|
||||
// Delta calibration menu
|
||||
// uncomment to add three points calibration menu option.
|
||||
// See http://minow.blogspot.com/index.html#4918805519571907051
|
||||
//#define DELTA_CALIBRATION_MENU
|
||||
|
||||
// uncomment to add G33 Delta Auto-Calibration (Enable EEPROM_SETTINGS to store results)
|
||||
//#define DELTA_AUTO_CALIBRATION
|
||||
|
||||
// NOTE NB all values for DELTA_* values MUST be floating point, so always have a decimal point in them
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
// set the default number of probe points : n*n (1 -> 7)
|
||||
#define DELTA_CALIBRATION_DEFAULT_POINTS 4
|
||||
#endif
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION) || ENABLED(DELTA_CALIBRATION_MENU)
|
||||
// Set the radius for the calibration probe points - max DELTA_PRINTABLE_RADIUS*0.869 for non-eccentric probes
|
||||
#define DELTA_CALIBRATION_RADIUS 121.5 // mm
|
||||
#endif
|
||||
|
||||
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
|
||||
#define DELTA_PRINTABLE_RADIUS 140.0 // mm
|
||||
|
||||
// Center-to-center distance of the holes in the diagonal push rods.
|
||||
#define DELTA_DIAGONAL_ROD 319.5 // mm
|
||||
|
||||
// height from z=0 to home position
|
||||
#define DELTA_HEIGHT 380.00 // get this value from auto calibrate
|
||||
|
||||
#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // get these from auto calibrate
|
||||
|
||||
// Horizontal distance bridged by diagonal push rods when effector is centered.
|
||||
#define DELTA_RADIUS 174.1 //mm Get this value from auto calibrate
|
||||
|
||||
// Trim adjustments for individual towers
|
||||
// tower angle corrections for X and Y tower / rotate XYZ so Z tower angle = 0
|
||||
// measured in degrees anticlockwise looking from above the printer
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0, 0, 0 } // get these from auto calibrate
|
||||
#define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // get these values from auto calibrate
|
||||
|
||||
// delta radius and diaginal rod adjustments measured in mm
|
||||
//#define DELTA_RADIUS_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER {0, 0, 0}
|
||||
//#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }
|
||||
|
||||
#endif
|
||||
|
||||
@@ -631,7 +658,6 @@
|
||||
*
|
||||
*/
|
||||
#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -989,6 +1015,10 @@
|
||||
// at which point movement will be level to the machine's XY plane.
|
||||
// The height can be set with M420 Z<height>
|
||||
//#define ENABLE_LEVELING_FADE_HEIGHT
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
@@ -998,8 +1028,6 @@
|
||||
#define GRID_MAX_POINTS_X 5
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
|
||||
// Set the boundaries for probing (where the probe can reach).
|
||||
#define DELTA_PROBEABLE_RADIUS (DELTA_PRINTABLE_RADIUS - 10)
|
||||
#define LEFT_PROBE_BED_POSITION -(DELTA_PROBEABLE_RADIUS)
|
||||
#define RIGHT_PROBE_BED_POSITION DELTA_PROBEABLE_RADIUS
|
||||
#define FRONT_PROBE_BED_POSITION - (DELTA_PROBEABLE_RADIUS - 20)
|
||||
@@ -1044,13 +1072,18 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define _PX(R,A) (R) * cos(RADIANS(A))
|
||||
#define _PY(R,A) (R) * sin(RADIANS(A))
|
||||
#define UBL_PROBE_PT_1_X _PX(DELTA_PROBEABLE_RADIUS, 0) // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y _PY(DELTA_PROBEABLE_RADIUS, 0)
|
||||
#define UBL_PROBE_PT_2_X _PX(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_2_Y _PY(DELTA_PROBEABLE_RADIUS, 120)
|
||||
#define UBL_PROBE_PT_3_X _PX(DELTA_PROBEABLE_RADIUS, 240)
|
||||
#define UBL_PROBE_PT_3_Y _PY(DELTA_PROBEABLE_RADIUS, 240)
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -1103,6 +1136,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -1126,13 +1160,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1291,10 +1322,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1316,7 +1348,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1442,12 +1474,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1530,6 +1556,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1546,6 +1593,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1576,6 +1626,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1593,11 +1648,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1636,12 +1686,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1679,7 +1732,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -415,16 +421,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -442,6 +448,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -638,7 +647,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -664,10 +673,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -756,22 +771,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -782,16 +798,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1012,7 +1029,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1127,6 +1144,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1135,12 +1201,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1160,4 +1226,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Delta printer replace the configuration files with the files in the
|
||||
// example_configurations/delta directory.
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -134,6 +134,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -141,13 +143,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -171,6 +198,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -570,13 +599,12 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
* Probe Type
|
||||
*
|
||||
* Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||
* You must activate one of these to use Auto Bed Leveling below.
|
||||
* Allen Key Probes, Servo Probes, Z-Sled Probes, FIX_MOUNTED_PROBE, etc.
|
||||
* Activate one of these to use Auto Bed Leveling below.
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -886,13 +914,16 @@
|
||||
#define UBL_MESH_INSET 45 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 53 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 323 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 53 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 323
|
||||
#define UBL_PROBE_PT_2_X 53
|
||||
#define UBL_PROBE_PT_2_Y 63
|
||||
#define UBL_PROBE_PT_3_X 348
|
||||
#define UBL_PROBE_PT_3_Y 211
|
||||
#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -945,6 +976,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -969,13 +1001,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1134,10 +1163,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1159,7 +1189,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1285,12 +1315,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1373,6 +1397,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1389,6 +1434,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1419,6 +1467,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1436,11 +1489,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1479,12 +1527,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1522,7 +1573,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -639,7 +648,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -669,10 +678,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -761,22 +776,25 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
|
||||
#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 75 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 75 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -787,16 +805,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1017,7 +1036,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1132,6 +1151,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1140,12 +1208,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1165,4 +1233,131 @@
|
||||
*/
|
||||
#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.5
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -302,6 +331,7 @@
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
// Ultimaker
|
||||
#define DEFAULT_Kp 22.2
|
||||
#define DEFAULT_Ki 1.08
|
||||
@@ -557,7 +587,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -872,13 +901,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -931,6 +963,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -955,13 +988,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1120,10 +1150,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1145,7 +1176,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1271,12 +1302,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1359,6 +1384,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1375,6 +1421,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1405,6 +1454,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1422,11 +1476,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1465,12 +1514,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1508,7 +1560,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,13 +419,13 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 4 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.7, 1.7, 1.7, 1.7 } // 5DPRINT
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -550,7 +579,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -865,13 +893,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -924,6 +955,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -948,13 +980,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
//#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
//#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1113,10 +1142,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
//#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1138,7 +1168,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1264,12 +1294,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1352,6 +1376,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1368,6 +1413,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1398,6 +1446,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1415,11 +1468,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1458,12 +1506,15 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
@@ -1501,7 +1552,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
//#define DIGIPOT_I2C
|
||||
//#define DIGIPOT_MCP4018
|
||||
//#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 8 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 } // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
//#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -636,7 +645,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -662,10 +671,16 @@
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -754,22 +769,23 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
@@ -780,16 +796,17 @@
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1010,7 +1027,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1125,6 +1142,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1133,12 +1199,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1158,4 +1224,131 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
//#define USER_DESC_5 "Home & Info"
|
||||
//#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
@@ -58,15 +58,15 @@
|
||||
//===========================================================================
|
||||
//============================= DELTA Printer ===============================
|
||||
//===========================================================================
|
||||
// For Delta printers start with one of the configuration files in the
|
||||
// For a Delta printer start with one of the configuration files in the
|
||||
// example_configurations/delta directory and customize for your machine.
|
||||
//
|
||||
|
||||
//===========================================================================
|
||||
//============================= SCARA Printer ===============================
|
||||
//===========================================================================
|
||||
// For a Scara printer replace the configuration files with the files in the
|
||||
// example_configurations/SCARA directory.
|
||||
// For a SCARA printer start with the configuration files in
|
||||
// example_configurations/SCARA and customize for your machine.
|
||||
//
|
||||
|
||||
// @section info
|
||||
@@ -129,6 +129,8 @@
|
||||
// You can use an online service to generate a random UUID. (eg http://www.uuidgenerator.net/version4)
|
||||
//#define MACHINE_UUID "5f0bb7a3-0e14-428c-812b-15ab0d3ecc71"
|
||||
|
||||
// @section extruder
|
||||
|
||||
// This defines the number of extruders
|
||||
// :[1, 2, 3, 4, 5]
|
||||
#define EXTRUDERS 1
|
||||
@@ -136,13 +138,38 @@
|
||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||
//#define SINGLENOZZLE
|
||||
|
||||
/**
|
||||
* Průša MK2 Single Nozzle Multi-Material Multiplexer, and variants.
|
||||
*
|
||||
* This device allows one stepper driver on a control board to drive
|
||||
* two to eight stepper motors, one at a time, in a manner suitable
|
||||
* for extruders.
|
||||
*
|
||||
* This option only allows the multiplexer to switch on tool-change.
|
||||
* Additional options to configure custom E moves are pending.
|
||||
*/
|
||||
//#define MK2_MULTIPLEXER
|
||||
#if ENABLED(MK2_MULTIPLEXER)
|
||||
// Override the default DIO selector pins here, if needed.
|
||||
// Some pins files may provide defaults for these pins.
|
||||
//#define E_MUX0_PIN 40 // Always Required
|
||||
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
|
||||
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
|
||||
#endif
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -166,6 +193,8 @@
|
||||
//#define HOTEND_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
@@ -301,12 +330,13 @@
|
||||
// is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
|
||||
#define K1 0.95 //smoothing factor within the PID
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
|
||||
//WT150, based on: M303 E0 S220 C8
|
||||
#define DEFAULT_Kp 22.10
|
||||
#define DEFAULT_Ki 1.10
|
||||
#define DEFAULT_Kd 110.78
|
||||
|
||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||
// Ultimaker
|
||||
//#define DEFAULT_Kp 22.2
|
||||
//#define DEFAULT_Ki 1.08
|
||||
@@ -523,6 +553,7 @@
|
||||
#define DEFAULT_ZJERK 0.4
|
||||
#define DEFAULT_EJERK 5.0
|
||||
|
||||
|
||||
//===========================================================================
|
||||
//============================= Z Probe Options =============================
|
||||
//===========================================================================
|
||||
@@ -559,7 +590,6 @@
|
||||
*
|
||||
*/
|
||||
//#define Z_MIN_PROBE_ENDSTOP
|
||||
//#define Z_MIN_PROBE_PIN Z_MAX_PIN
|
||||
|
||||
/**
|
||||
* Probe Type
|
||||
@@ -874,13 +904,16 @@
|
||||
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
|
||||
#define GRID_MAX_POINTS_X 10 // Don't use more than 15 points per axis, implementation limited.
|
||||
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
|
||||
#define UBL_PROBE_PT_1_X 39 // These set the probe locations for when UBL does a 3-Point leveling
|
||||
#define UBL_PROBE_PT_1_Y 180 // of the mesh.
|
||||
|
||||
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
|
||||
#define UBL_PROBE_PT_1_Y 180
|
||||
#define UBL_PROBE_PT_2_X 39
|
||||
#define UBL_PROBE_PT_2_Y 20
|
||||
#define UBL_PROBE_PT_3_X 180
|
||||
#define UBL_PROBE_PT_3_Y 20
|
||||
//#define UBL_G26_MESH_EDITING // Enable G26 mesh editing
|
||||
|
||||
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
|
||||
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
|
||||
|
||||
#elif ENABLED(MESH_BED_LEVELING)
|
||||
|
||||
@@ -933,6 +966,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
@@ -957,13 +991,10 @@
|
||||
// M500 - stores parameters in EEPROM
|
||||
// M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
|
||||
// M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
|
||||
//define this to enable EEPROM support
|
||||
#define EEPROM_SETTINGS
|
||||
|
||||
#if ENABLED(EEPROM_SETTINGS)
|
||||
// To disable EEPROM Serial responses and decrease program space by ~1700 byte: comment this out:
|
||||
#define EEPROM_CHITCHAT // Please keep turned on if you can.
|
||||
#endif
|
||||
//
|
||||
#define EEPROM_SETTINGS // Enable for M500 and M501 commands
|
||||
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
|
||||
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
|
||||
|
||||
//
|
||||
// Host Keepalive
|
||||
@@ -1122,10 +1153,11 @@
|
||||
*
|
||||
* Select the language to display on the LCD. These languages are available:
|
||||
*
|
||||
* en, an, bg, ca, cn, cz, de, el, el-gr, es, eu, fi, fr, gl, hr, it,
|
||||
* kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk, test
|
||||
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
|
||||
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
|
||||
* zh_CN, zh_TW, test
|
||||
*
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'test':'TEST' }
|
||||
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
|
||||
*/
|
||||
#define LCD_LANGUAGE en
|
||||
|
||||
@@ -1147,7 +1179,7 @@
|
||||
* - Click the controller to view the LCD menu
|
||||
* - The LCD will display Japanese, Western, or Cyrillic text
|
||||
*
|
||||
* See https: *github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
* See https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
|
||||
*
|
||||
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
|
||||
*/
|
||||
@@ -1273,12 +1305,6 @@
|
||||
//
|
||||
//#define ULTIPANEL
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
|
||||
// http://reprap.org/wiki/PanelOne
|
||||
@@ -1361,6 +1387,27 @@
|
||||
//
|
||||
//#define BQ_LCD_SMART_CONTROLLER
|
||||
|
||||
//
|
||||
// Cartesio UI
|
||||
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
|
||||
//
|
||||
//#define CARTESIO_UI
|
||||
|
||||
//
|
||||
// ANET_10 Controller supported displays.
|
||||
//
|
||||
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
|
||||
// This LCD is known to be susceptible to electrical interference
|
||||
// which scrambles the display. Pressing any button clears it up.
|
||||
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
|
||||
// A clone of the RepRapDiscount full graphics display but with
|
||||
// different pins/wiring (see pins_ANET_10.h).
|
||||
|
||||
//
|
||||
// LCD for Melzi Card with Graphical LCD
|
||||
//
|
||||
//#define LCD_FOR_MELZI
|
||||
|
||||
//
|
||||
// CONTROLLER TYPE: I2C
|
||||
//
|
||||
@@ -1377,6 +1424,9 @@
|
||||
//
|
||||
// Sainsmart YW Robot (LCM1602) LCD Display
|
||||
//
|
||||
// Note: This controller requires F.Malpartida's LiquidCrystal_I2C library
|
||||
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
|
||||
//
|
||||
//#define LCD_I2C_SAINSMART_YWROBOT
|
||||
|
||||
//
|
||||
@@ -1407,6 +1457,11 @@
|
||||
//
|
||||
//#define U8GLIB_SSD1306
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//
|
||||
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
|
||||
//
|
||||
@@ -1424,11 +1479,6 @@
|
||||
//
|
||||
//#define SAV_3DLCD
|
||||
|
||||
//
|
||||
// TinyBoy2 128x64 OLED / Encoder Panel
|
||||
//
|
||||
//#define OLED_PANEL_TINYBOY2
|
||||
|
||||
//=============================================================================
|
||||
//=============================== Extra Features ==============================
|
||||
//=============================================================================
|
||||
@@ -1467,13 +1517,32 @@
|
||||
// SkeinForge sends the wrong arc g-codes when using Arc Point as fillet procedure
|
||||
//#define SF_ARC_FIX
|
||||
|
||||
// Support for the BariCUDA Paste Extruder.
|
||||
// Support for the BariCUDA Paste Extruder
|
||||
//#define BARICUDA
|
||||
|
||||
//define BlinkM/CyzRgb Support
|
||||
// Support for BlinkM/CyzRgb
|
||||
//#define BLINKM
|
||||
|
||||
// Support for an RGB LED using 3 separate pins with optional PWM
|
||||
// Support for PCA9632 PWM LED driver
|
||||
//#define PCA9632
|
||||
|
||||
/**
|
||||
* RGB LED / LED Strip Control
|
||||
*
|
||||
* Enable support for an RGB LED connected to 5V digital pins, or
|
||||
* an RGB Strip connected to MOSFETs controlled by digital pins.
|
||||
*
|
||||
* Adds the M150 command to set the LED (or LED strip) color.
|
||||
* If pins are PWM capable (e.g., 4, 5, 6, 11) then a range of
|
||||
* luminance values can be set from 0 to 255.
|
||||
*
|
||||
* *** CAUTION ***
|
||||
* LED Strips require a MOFSET Chip between PWM lines and LEDs,
|
||||
* as the Arduino cannot handle the current the LEDs will require.
|
||||
* Failure to follow this precaution can destroy your Arduino!
|
||||
* *** CAUTION ***
|
||||
*
|
||||
*/
|
||||
//#define RGB_LED
|
||||
//#define RGBW_LED
|
||||
#if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
@@ -1494,7 +1563,7 @@
|
||||
* - Change to green once print has finished
|
||||
* - Turn off after the print has finished and the user has pushed a button
|
||||
*/
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED)
|
||||
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
|
||||
#define PRINTER_EVENT_LEDS
|
||||
#endif
|
||||
|
||||
|
||||
@@ -123,8 +123,8 @@
|
||||
#define AUTOTEMP_OLDWEIGHT 0.98
|
||||
#endif
|
||||
|
||||
//Show Temperature ADC value
|
||||
//The M105 command return, besides traditional information, the ADC value read from temperature sensors.
|
||||
// Show Temperature ADC value
|
||||
// Enable for M105 to include ADC values read from temperature sensors.
|
||||
//#define SHOW_TEMP_ADC_VALUES
|
||||
|
||||
/**
|
||||
@@ -220,12 +220,16 @@
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
#if PIN_EXISTS(CASE_LIGHT)
|
||||
#define INVERT_CASE_LIGHT false // Set to true if HIGH is the OFF state (active low)
|
||||
//#define CASE_LIGHT_DEFAULT_ON // Uncomment to set default state to on
|
||||
//#define MENU_ITEM_CASE_LIGHT // Uncomment to have a Case Light On / Off entry in main menu
|
||||
/**
|
||||
* M355 Case Light on-off / brightness
|
||||
*/
|
||||
//#define CASE_LIGHT_ENABLE
|
||||
#if ENABLED(CASE_LIGHT_ENABLE)
|
||||
//#define CASE_LIGHT_PIN 4 // Override the default pin if needed
|
||||
#define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW
|
||||
#define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on
|
||||
#define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin)
|
||||
//#define MENU_ITEM_CASE_LIGHT // Add a Case Light option to the LCD main menu
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
@@ -365,6 +369,8 @@
|
||||
#define DEFAULT_MINIMUMFEEDRATE 0.0 // minimum feedrate
|
||||
#define DEFAULT_MINTRAVELFEEDRATE 0.0
|
||||
|
||||
//#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated
|
||||
|
||||
// @section lcd
|
||||
|
||||
#if ENABLED(ULTIPANEL)
|
||||
@@ -413,16 +419,16 @@
|
||||
* M908 - BQ_ZUM_MEGA_3D, RAMBO, PRINTRBOARD_REVF, RIGIDBOARD_V2 & SCOOVO_X9H
|
||||
* M909, M910 & LCD - only PRINTRBOARD_REVF & RIGIDBOARD_V2
|
||||
*/
|
||||
//#define PWM_MOTOR_CURRENT {1300, 1300, 1250} // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT {135,135,135,135,135} // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
//#define PWM_MOTOR_CURRENT { 1300, 1300, 1250 } // Values in milliamps
|
||||
//#define DIGIPOT_MOTOR_CURRENT { 135,135,135,135,135 } // Values 0-255 (RAMBO 135 = ~0.75A, 185 = ~1A)
|
||||
//#define DAC_MOTOR_CURRENT_DEFAULT { 70, 80, 90, 80 } // Default drive percent - X, Y, Z, E axis
|
||||
|
||||
// Uncomment to enable an I2C based DIGIPOT like on the Azteeg X3 Pro
|
||||
#define DIGIPOT_I2C
|
||||
#define DIGIPOT_MCP4018
|
||||
#define DIGIPOT_MCP4018 // Requires library from https://github.com/stawel/SlowSoftI2CMaster
|
||||
#define DIGIPOT_I2C_NUM_CHANNELS 5 // 5DPRINT: 4 AZTEEG_X3_PRO: 8
|
||||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {0.68, 0.68, 1.18, 1.27, 1.27}
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {0.22, 0.22, 0.39, 0.42, 0.42}
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
@@ -440,6 +446,9 @@
|
||||
// Include a page of printer information in the LCD Main Menu
|
||||
#define LCD_INFO_MENU
|
||||
|
||||
// Scroll a longer status message into view
|
||||
//#define STATUS_MESSAGE_SCROLLING
|
||||
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
@@ -639,7 +648,7 @@
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Slic3r (including Průša Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
@@ -661,14 +670,24 @@
|
||||
#define UBL_MESH_MAX_X (X_MAX_POS - (UBL_MESH_INSET))
|
||||
#define UBL_MESH_MIN_Y (Y_MIN_POS + UBL_MESH_INSET)
|
||||
#define UBL_MESH_MAX_Y (Y_MAX_POS - (UBL_MESH_INSET))
|
||||
|
||||
// If this is defined, the currently active mesh will be saved in the
|
||||
// current slot on M500.
|
||||
#define UBL_SAVE_ACTIVE_ON_M500
|
||||
#endif
|
||||
|
||||
// @section extras
|
||||
|
||||
// Arc interpretation settings:
|
||||
#define ARC_SUPPORT // Disabling this saves ~2738 bytes
|
||||
#define MM_PER_ARC_SEGMENT 1
|
||||
#define N_ARC_CORRECTION 25
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // Length of each arc segment
|
||||
#define N_ARC_CORRECTION 25 // Number of intertpolated segments between corrections
|
||||
//#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
//#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
//#define BEZIER_CURVE_SUPPORT
|
||||
@@ -757,42 +776,44 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Advanced Pause
|
||||
* Experimental feature for filament change support and for parking the nozzle when paused.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
* If PARK_HEAD_ON_PAUSE enabled, adds the GCode M125 to pause printing and park the nozzle.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
//#define ADVANCED_PAUSE_FEATURE
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
#define PAUSE_PARK_X_POS 3 // X position of hotend
|
||||
#define PAUSE_PARK_Y_POS 3 // Y position of hotend
|
||||
#define PAUSE_PARK_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define PAUSE_PARK_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define PAUSE_PARK_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define PAUSE_PARK_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define PAUSE_PARK_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||
// shorter length for printers without bowden to unload filament from extruder only,
|
||||
// 0 to disable unloading for manual unloading
|
||||
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||
#define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
#define ADVANCED_PAUSE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define ADVANCED_PAUSE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define PAUSE_PARK_NOZZLE_TIMEOUT 45 // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5 // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
#define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
//#define PARK_HEAD_ON_PAUSE // Go to filament change position on pause, return to print position on resume
|
||||
//#define HOME_BEFORE_FILAMENT_CHANGE // Ensure homing has been completed prior to parking for filament change
|
||||
#endif
|
||||
|
||||
// @section tmc
|
||||
@@ -1013,7 +1034,7 @@
|
||||
*/
|
||||
#define TMC2130_ADV() { }
|
||||
|
||||
#endif // ENABLED(HAVE_TMC2130)
|
||||
#endif // HAVE_TMC2130
|
||||
|
||||
// @section L6470
|
||||
|
||||
@@ -1128,6 +1149,55 @@
|
||||
//#define EXPERIMENTAL_I2CBUS
|
||||
#define I2C_SLAVE_ADDRESS 0 // Set a value from 8 to 127 to act as a slave
|
||||
|
||||
// @section extras
|
||||
|
||||
/**
|
||||
* Spindle & Laser control
|
||||
*
|
||||
* Add the M3, M4, and M5 commands to turn the spindle/laser on and off, and
|
||||
* to set spindle speed, spindle direction, and laser power.
|
||||
*
|
||||
* SuperPid is a router/spindle speed controller used in the CNC milling community.
|
||||
* Marlin can be used to turn the spindle on and off. It can also be used to set
|
||||
* the spindle speed from 5,000 to 30,000 RPM.
|
||||
*
|
||||
* You'll need to select a pin for the ON/OFF function and optionally choose a 0-5V
|
||||
* hardware PWM pin for the speed control and a pin for the rotation direction.
|
||||
*
|
||||
* See http://marlinfw.org/docs/configuration/laser_spindle.html for more config details.
|
||||
*/
|
||||
//#define SPINDLE_LASER_ENABLE
|
||||
#if ENABLED(SPINDLE_LASER_ENABLE)
|
||||
|
||||
#define SPINDLE_LASER_ENABLE_INVERT false // set to "true" if the on/off function is reversed
|
||||
#define SPINDLE_LASER_PWM true // set to true if your controller supports setting the speed/power
|
||||
#define SPINDLE_LASER_PWM_INVERT true // set to "true" if the speed/power goes up when you want it to go slower
|
||||
#define SPINDLE_LASER_POWERUP_DELAY 5000 // delay in milliseconds to allow the spindle/laser to come up to speed/power
|
||||
#define SPINDLE_LASER_POWERDOWN_DELAY 5000 // delay in milliseconds to allow the spindle to stop
|
||||
#define SPINDLE_DIR_CHANGE true // set to true if your spindle controller supports changing spindle direction
|
||||
#define SPINDLE_INVERT_DIR false
|
||||
#define SPINDLE_STOP_ON_DIR_CHANGE true // set to true if Marlin should stop the spindle before changing rotation direction
|
||||
|
||||
/**
|
||||
* The M3 & M4 commands use the following equation to convert PWM duty cycle to speed/power
|
||||
*
|
||||
* SPEED/POWER = PWM duty cycle * SPEED_POWER_SLOPE + SPEED_POWER_INTERCEPT
|
||||
* where PWM duty cycle varies from 0 to 255
|
||||
*
|
||||
* set the following for your controller (ALL MUST BE SET)
|
||||
*/
|
||||
|
||||
#define SPEED_POWER_SLOPE 118.4
|
||||
#define SPEED_POWER_INTERCEPT 0
|
||||
#define SPEED_POWER_MIN 5000
|
||||
#define SPEED_POWER_MAX 30000 // SuperPID router controller 0 - 30,000 RPM
|
||||
|
||||
//#define SPEED_POWER_SLOPE 0.3922
|
||||
//#define SPEED_POWER_INTERCEPT 0
|
||||
//#define SPEED_POWER_MIN 10
|
||||
//#define SPEED_POWER_MAX 100 // 0-100%
|
||||
#endif
|
||||
|
||||
/**
|
||||
* M43 - display pin status, watch pins for changes, watch endstops & toggle LED, Z servo probe test, toggle pins
|
||||
*/
|
||||
@@ -1136,12 +1206,12 @@
|
||||
/**
|
||||
* Auto-report temperatures with M155 S<seconds>
|
||||
*/
|
||||
//#define AUTO_REPORT_TEMPERATURES
|
||||
#define AUTO_REPORT_TEMPERATURES
|
||||
|
||||
/**
|
||||
* Include capabilities in M115 output
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
@@ -1161,4 +1231,214 @@
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
/**
|
||||
* Set the number of proportional font spaces required to fill up a typical character space.
|
||||
* This can help to better align the output of commands like `G29 O` Mesh Output.
|
||||
*
|
||||
* For clients that use a fixed-width font (like OctoPrint), leave this set to 1.0.
|
||||
* Otherwise, adjust according to your client and font.
|
||||
*/
|
||||
#define PROPORTIONAL_FONT_RATIO 1.0
|
||||
|
||||
/**
|
||||
* Spend 28 bytes of SRAM to optimize the GCode parser
|
||||
*/
|
||||
#define FASTER_GCODE_PARSER
|
||||
|
||||
/**
|
||||
* User-defined menu items that execute custom GCode
|
||||
*/
|
||||
//#define CUSTOM_USER_MENUS
|
||||
#if ENABLED(CUSTOM_USER_MENUS)
|
||||
#define USER_SCRIPT_DONE "M117 User Script Done"
|
||||
|
||||
#define USER_DESC_1 "Home & UBL Info"
|
||||
#define USER_GCODE_1 "G28\nG29 W"
|
||||
|
||||
#define USER_DESC_2 "Preheat for PLA"
|
||||
#define USER_GCODE_2 "M140 S" STRINGIFY(PREHEAT_1_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_1_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_3 "Preheat for ABS"
|
||||
#define USER_GCODE_3 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nM104 S" STRINGIFY(PREHEAT_2_TEMP_HOTEND)
|
||||
|
||||
#define USER_DESC_4 "Heat Bed/Home/Level"
|
||||
#define USER_GCODE_4 "M140 S" STRINGIFY(PREHEAT_2_TEMP_BED) "\nG28\nG29"
|
||||
|
||||
#define USER_DESC_5 "Home & Info"
|
||||
#define USER_GCODE_5 "G28\nM503"
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
//============================ I2C Encoder Settings =========================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Specify an action command to send to the host when the printer is killed.
|
||||
* Will be sent in the form '//action:ACTION_ON_KILL', e.g. '//action:poweroff'.
|
||||
* The host must be configured to handle the action command.
|
||||
*/
|
||||
//#define ACTION_ON_KILL "poweroff"
|
||||
|
||||
//===========================================================================
|
||||
//====================== I2C Position Encoder Settings ======================
|
||||
//===========================================================================
|
||||
/**
|
||||
* I2C position encoders for closed loop control.
|
||||
* Developed by Chris Barr at Aus3D.
|
||||
*
|
||||
* Wiki: http://wiki.aus3d.com.au/Magnetic_Encoder
|
||||
* Github: https://github.com/Aus3D/MagneticEncoder
|
||||
*
|
||||
* Supplier: http://aus3d.com.au/magnetic-encoder-module
|
||||
* Alternative Supplier: http://reliabuild3d.com/
|
||||
*
|
||||
* Reilabuild encoders have been modified to improve reliability.
|
||||
*/
|
||||
|
||||
//#define I2C_POSITION_ENCODERS
|
||||
#if ENABLED(I2C_POSITION_ENCODERS)
|
||||
|
||||
#define I2CPE_ENCODER_CNT 1 // The number of encoders installed; max of 5
|
||||
// encoders supported currently.
|
||||
|
||||
#define I2CPE_ENC_1_ADDR I2CPE_PRESET_ADDR_X // I2C address of the encoder. 30-200.
|
||||
#define I2CPE_ENC_1_AXIS X_AXIS // Axis the encoder module is installed on. <X|Y|Z|E>_AXIS.
|
||||
#define I2CPE_ENC_1_TYPE I2CPE_ENC_TYPE_LINEAR // Type of encoder: I2CPE_ENC_TYPE_LINEAR -or-
|
||||
// I2CPE_ENC_TYPE_ROTARY.
|
||||
#define I2CPE_ENC_1_TICKS_UNIT 2048 // 1024 for magnetic strips with 2mm poles; 2048 for
|
||||
// 1mm poles. For linear encoders this is ticks / mm,
|
||||
// for rotary encoders this is ticks / revolution.
|
||||
//#define I2CPE_ENC_1_TICKS_REV (16 * 200) // Only needed for rotary encoders; number of stepper
|
||||
// steps per full revolution (motor steps/rev * microstepping)
|
||||
//#define I2CPE_ENC_1_INVERT // Invert the direction of axis travel.
|
||||
#define I2CPE_ENC_1_EC_METHOD I2CPE_ECM_NONE // Type of error error correction.
|
||||
#define I2CPE_ENC_1_EC_THRESH 0.10 // Threshold size for error (in mm) above which the
|
||||
// printer will attempt to correct the error; errors
|
||||
// smaller than this are ignored to minimize effects of
|
||||
// measurement noise / latency (filter).
|
||||
|
||||
#define I2CPE_ENC_2_ADDR I2CPE_PRESET_ADDR_Y // Same as above, but for encoder 2.
|
||||
#define I2CPE_ENC_2_AXIS Y_AXIS
|
||||
#define I2CPE_ENC_2_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_ENC_2_TICKS_UNIT 2048
|
||||
//#define I2CPE_ENC_2_TICKS_REV (16 * 200)
|
||||
//#define I2CPE_ENC_2_INVERT
|
||||
#define I2CPE_ENC_2_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_ENC_2_EC_THRESH 0.10
|
||||
|
||||
#define I2CPE_ENC_3_ADDR I2CPE_PRESET_ADDR_Z // Encoder 3. Add additional configuration options
|
||||
#define I2CPE_ENC_3_AXIS Z_AXIS // as above, or use defaults below.
|
||||
|
||||
#define I2CPE_ENC_4_ADDR I2CPE_PRESET_ADDR_E // Encoder 4.
|
||||
#define I2CPE_ENC_4_AXIS E_AXIS
|
||||
|
||||
#define I2CPE_ENC_5_ADDR 34 // Encoder 5.
|
||||
#define I2CPE_ENC_5_AXIS E_AXIS
|
||||
|
||||
// Default settings for encoders which are enabled, but without settings configured above.
|
||||
#define I2CPE_DEF_TYPE I2CPE_ENC_TYPE_LINEAR
|
||||
#define I2CPE_DEF_ENC_TICKS_UNIT 2048
|
||||
#define I2CPE_DEF_TICKS_REV (16 * 200)
|
||||
#define I2CPE_DEF_EC_METHOD I2CPE_ECM_NONE
|
||||
#define I2CPE_DEF_EC_THRESH 0.1
|
||||
|
||||
//#define I2CPE_ERR_THRESH_ABORT 100.0 // Threshold size for error (in mm) error on any given
|
||||
// axis after which the printer will abort. Comment out to
|
||||
// disable abort behaviour.
|
||||
|
||||
#define I2CPE_TIME_TRUSTED 10000 // After an encoder fault, there must be no further fault
|
||||
// for this amount of time (in ms) before the encoder
|
||||
// is trusted again.
|
||||
|
||||
/**
|
||||
* Position is checked every time a new command is executed from the buffer but during long moves,
|
||||
* this setting determines the minimum update time between checks. A value of 100 works well with
|
||||
* error rolling average when attempting to correct only for skips and not for vibration.
|
||||
*/
|
||||
#define I2CPE_MIN_UPD_TIME_MS 100 // Minimum time in miliseconds between encoder checks.
|
||||
|
||||
// Use a rolling average to identify persistant errors that indicate skips, as opposed to vibration and noise.
|
||||
#define I2CPE_ERR_ROLLING_AVERAGE
|
||||
|
||||
#endif // I2C_POSITION_ENCODERS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
||||
+110
-3920
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,720 @@
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Pin mapping for the 1281 and 2561
|
||||
*
|
||||
* 1281 38 39 40 41 42 43 44 45 16 10 11 12 06 07 08 09 30 31 32 33 34 35 36 37 17 18 19 20 21 22 23 24 00 01 13 05 02 03 14 15 46 47 48 49 50 51 52 53 25 26 27 28 29 04
|
||||
* Port A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7 E0 E1 E2 E3 E4 E5 E6 E7 F0 F1 F2 F3 F4 F5 F6 F7 G0 G1 G2 G3 G4 G5
|
||||
* Marlin 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
||||
*/
|
||||
|
||||
#ifndef _FASTIO_1281
|
||||
#define _FASTIO_1281
|
||||
|
||||
#include "fastio.h"
|
||||
|
||||
// change for your board
|
||||
#define DEBUG_LED DIO46
|
||||
|
||||
// UART
|
||||
#define RXD DIO0
|
||||
#define TXD DIO1
|
||||
|
||||
// SPI
|
||||
#define SCK DIO10
|
||||
#define MISO DIO12
|
||||
#define MOSI DIO11
|
||||
#define SS DIO16
|
||||
|
||||
// TWI (I2C)
|
||||
#define SCL DIO17
|
||||
#define SDA DIO18
|
||||
|
||||
// Timers and PWM
|
||||
#define OC0A DIO9
|
||||
#define OC0B DIO4
|
||||
#define OC1A DIO7
|
||||
#define OC1B DIO8
|
||||
#define OC2A DIO6
|
||||
#define OC3A DIO5
|
||||
#define OC3B DIO2
|
||||
#define OC3C DIO3
|
||||
|
||||
// Digital I/O
|
||||
|
||||
#define DIO0_PIN PINE0
|
||||
#define DIO0_RPORT PINE
|
||||
#define DIO0_WPORT PORTE
|
||||
#define DIO0_DDR DDRE
|
||||
#define DIO0_PWM NULL
|
||||
|
||||
#define DIO1_PIN PINE1
|
||||
#define DIO1_RPORT PINE
|
||||
#define DIO1_WPORT PORTE
|
||||
#define DIO1_DDR DDRE
|
||||
#define DIO1_PWM NULL
|
||||
|
||||
#define DIO2_PIN PINE4
|
||||
#define DIO2_RPORT PINE
|
||||
#define DIO2_WPORT PORTE
|
||||
#define DIO2_DDR DDRE
|
||||
#define DIO2_PWM &OCR3BL
|
||||
|
||||
#define DIO3_PIN PINE5
|
||||
#define DIO3_RPORT PINE
|
||||
#define DIO3_WPORT PORTE
|
||||
#define DIO3_DDR DDRE
|
||||
#define DIO3_PWM &OCR3CL
|
||||
|
||||
#define DIO4_PIN PING5
|
||||
#define DIO4_RPORT PING
|
||||
#define DIO4_WPORT PORTG
|
||||
#define DIO4_DDR DDRG
|
||||
#define DIO4_PWM &OCR0B
|
||||
|
||||
#define DIO5_PIN PINE3
|
||||
#define DIO5_RPORT PINE
|
||||
#define DIO5_WPORT PORTE
|
||||
#define DIO5_DDR DDRE
|
||||
#define DIO5_PWM &OCR3AL
|
||||
|
||||
#define DIO6_PIN PINB4
|
||||
#define DIO6_RPORT PINB
|
||||
#define DIO6_WPORT PORTB
|
||||
#define DIO6_DDR DDRB
|
||||
#define DIO6_PWM &OCR2AL
|
||||
|
||||
#define DIO7_PIN PINB5
|
||||
#define DIO7_RPORT PINB
|
||||
#define DIO7_WPORT PORTB
|
||||
#define DIO7_DDR DDRB
|
||||
#define DIO7_PWM &OCR1AL
|
||||
|
||||
#define DIO8_PIN PINB6
|
||||
#define DIO8_RPORT PINB
|
||||
#define DIO8_WPORT PORTB
|
||||
#define DIO8_DDR DDRB
|
||||
#define DIO8_PWM &OCR1BL
|
||||
|
||||
#define DIO9_PIN PINB7
|
||||
#define DIO9_RPORT PINB
|
||||
#define DIO9_WPORT PORTB
|
||||
#define DIO9_DDR DDRB
|
||||
#define DIO9_PWM &OCR0AL
|
||||
|
||||
#define DIO10_PIN PINB1
|
||||
#define DIO10_RPORT PINB
|
||||
#define DIO10_WPORT PORTB
|
||||
#define DIO10_DDR DDRB
|
||||
#define DIO10_PWM NULL
|
||||
|
||||
#define DIO11_PIN PINB2
|
||||
#define DIO11_RPORT PINB
|
||||
#define DIO11_WPORT PORTB
|
||||
#define DIO11_DDR DDRB
|
||||
#define DIO11_PWM NULL
|
||||
|
||||
#define DIO12_PIN PINB3
|
||||
#define DIO12_RPORT PINB
|
||||
#define DIO12_WPORT PORTB
|
||||
#define DIO12_DDR DDRB
|
||||
#define DIO12_PWM NULL
|
||||
|
||||
#define DIO13_PIN PINE2
|
||||
#define DIO13_RPORT PINE
|
||||
#define DIO13_WPORT PORTE
|
||||
#define DIO13_DDR DDRE
|
||||
#define DIO13_PWM NULL
|
||||
|
||||
#define DIO14_PIN PINE6
|
||||
#define DIO14_RPORT PINE
|
||||
#define DIO14_WPORT PORTE
|
||||
#define DIO14_DDR DDRE
|
||||
#define DIO14_PWM NULL
|
||||
|
||||
#define DIO15_PIN PINE7
|
||||
#define DIO15_RPORT PINE
|
||||
#define DIO15_WPORT PORTE
|
||||
#define DIO15_DDR DDRE
|
||||
#define DIO15_PWM NULL
|
||||
|
||||
#define DIO16_PIN PINB0
|
||||
#define DIO16_RPORT PINB
|
||||
#define DIO16_WPORT PORTB
|
||||
#define DIO16_DDR DDRB
|
||||
#define DIO16_PWM NULL
|
||||
|
||||
#define DIO17_PIN PIND0
|
||||
#define DIO17_RPORT PIND
|
||||
#define DIO17_WPORT PORTD
|
||||
#define DIO17_DDR DDRD
|
||||
#define DIO17_PWM NULL
|
||||
|
||||
#define DIO18_PIN PIND1
|
||||
#define DIO18_RPORT PIND
|
||||
#define DIO18_WPORT PORTD
|
||||
#define DIO18_DDR DDRD
|
||||
#define DIO18_PWM NULL
|
||||
|
||||
#define DIO19_PIN PIND2
|
||||
#define DIO19_RPORT PIND
|
||||
#define DIO19_WPORT PORTD
|
||||
#define DIO19_DDR DDRD
|
||||
#define DIO19_PWM NULL
|
||||
|
||||
#define DIO20_PIN PIND3
|
||||
#define DIO20_RPORT PIND
|
||||
#define DIO20_WPORT PORTD
|
||||
#define DIO20_DDR DDRD
|
||||
#define DIO20_PWM NULL
|
||||
|
||||
#define DIO21_PIN PIND4
|
||||
#define DIO21_RPORT PIND
|
||||
#define DIO21_WPORT PORTD
|
||||
#define DIO21_DDR DDRD
|
||||
#define DIO21_PWM NULL
|
||||
|
||||
#define DIO22_PIN PIND5
|
||||
#define DIO22_RPORT PIND
|
||||
#define DIO22_WPORT PORTD
|
||||
#define DIO22_DDR DDRD
|
||||
#define DIO22_PWM NULL
|
||||
|
||||
#define DIO23_PIN PIND6
|
||||
#define DIO23_RPORT PIND
|
||||
#define DIO23_WPORT PORTD
|
||||
#define DIO23_DDR DDRD
|
||||
#define DIO23_PWM NULL
|
||||
|
||||
#define DIO24_PIN PIND7
|
||||
#define DIO24_RPORT PIND
|
||||
#define DIO24_WPORT PORTD
|
||||
#define DIO24_DDR DDRD
|
||||
#define DIO24_PWM NULL
|
||||
|
||||
#define DIO25_PIN PING0
|
||||
#define DIO25_RPORT PING
|
||||
#define DIO25_WPORT PORTG
|
||||
#define DIO25_DDR DDRG
|
||||
#define DIO25_PWM NULL
|
||||
|
||||
#define DIO26_PIN PING1
|
||||
#define DIO26_RPORT PING
|
||||
#define DIO26_WPORT PORTG
|
||||
#define DIO26_DDR DDRG
|
||||
#define DIO26_PWM NULL
|
||||
|
||||
#define DIO27_PIN PING2
|
||||
#define DIO27_RPORT PING
|
||||
#define DIO27_WPORT PORTG
|
||||
#define DIO27_DDR DDRG
|
||||
#define DIO27_PWM NULL
|
||||
|
||||
#define DIO28_PIN PING3
|
||||
#define DIO28_RPORT PING
|
||||
#define DIO28_WPORT PORTG
|
||||
#define DIO28_DDR DDRG
|
||||
#define DIO28_PWM NULL
|
||||
|
||||
#define DIO29_PIN PING4
|
||||
#define DIO29_RPORT PING
|
||||
#define DIO29_WPORT PORTG
|
||||
#define DIO29_DDR DDRG
|
||||
#define DIO29_PWM NULL
|
||||
|
||||
#define DIO30_PIN PINC0
|
||||
#define DIO30_RPORT PINC
|
||||
#define DIO30_WPORT PORTC
|
||||
#define DIO30_DDR DDRC
|
||||
#define DIO30_PWM NULL
|
||||
|
||||
#define DIO31_PIN PINC1
|
||||
#define DIO31_RPORT PINC
|
||||
#define DIO31_WPORT PORTC
|
||||
#define DIO31_DDR DDRC
|
||||
#define DIO31_PWM NULL
|
||||
|
||||
#define DIO32_PIN PINC2
|
||||
#define DIO32_RPORT PINC
|
||||
#define DIO32_WPORT PORTC
|
||||
#define DIO32_DDR DDRC
|
||||
#define DIO32_PWM NULL
|
||||
|
||||
#define DIO33_PIN PINC3
|
||||
#define DIO33_RPORT PINC
|
||||
#define DIO33_WPORT PORTC
|
||||
#define DIO33_DDR DDRC
|
||||
#define DIO33_PWM NULL
|
||||
|
||||
#define DIO34_PIN PINC4
|
||||
#define DIO34_RPORT PINC
|
||||
#define DIO34_WPORT PORTC
|
||||
#define DIO34_DDR DDRC
|
||||
#define DIO34_PWM NULL
|
||||
|
||||
#define DIO35_PIN PINC5
|
||||
#define DIO35_RPORT PINC
|
||||
#define DIO35_WPORT PORTC
|
||||
#define DIO35_DDR DDRC
|
||||
#define DIO35_PWM NULL
|
||||
|
||||
#define DIO36_PIN PINC6
|
||||
#define DIO36_RPORT PINC
|
||||
#define DIO36_WPORT PORTC
|
||||
#define DIO36_DDR DDRC
|
||||
#define DIO36_PWM NULL
|
||||
|
||||
#define DIO37_PIN PINC7
|
||||
#define DIO37_RPORT PINC
|
||||
#define DIO37_WPORT PORTC
|
||||
#define DIO37_DDR DDRC
|
||||
#define DIO37_PWM NULL
|
||||
|
||||
#define DIO38_PIN PINA0
|
||||
#define DIO38_RPORT PINA
|
||||
#define DIO38_WPORT PORTA
|
||||
#define DIO38_DDR DDRA
|
||||
#define DIO38_PWM NULL
|
||||
|
||||
#define DIO39_PIN PINA1
|
||||
#define DIO39_RPORT PINA
|
||||
#define DIO39_WPORT PORTA
|
||||
#define DIO39_DDR DDRA
|
||||
#define DIO39_PWM NULL
|
||||
|
||||
#define DIO40_PIN PINA2
|
||||
#define DIO40_RPORT PINA
|
||||
#define DIO40_WPORT PORTA
|
||||
#define DIO40_DDR DDRA
|
||||
#define DIO40_PWM NULL
|
||||
|
||||
#define DIO41_PIN PINA3
|
||||
#define DIO41_RPORT PINA
|
||||
#define DIO41_WPORT PORTA
|
||||
#define DIO41_DDR DDRA
|
||||
#define DIO41_PWM NULL
|
||||
|
||||
#define DIO42_PIN PINA4
|
||||
#define DIO42_RPORT PINA
|
||||
#define DIO42_WPORT PORTA
|
||||
#define DIO42_DDR DDRA
|
||||
#define DIO42_PWM NULL
|
||||
|
||||
#define DIO43_PIN PINA5
|
||||
#define DIO43_RPORT PINA
|
||||
#define DIO43_WPORT PORTA
|
||||
#define DIO43_DDR DDRA
|
||||
#define DIO43_PWM NULL
|
||||
|
||||
#define DIO44_PIN PINA6
|
||||
#define DIO44_RPORT PINA
|
||||
#define DIO44_WPORT PORTA
|
||||
#define DIO44_DDR DDRA
|
||||
#define DIO44_PWM NULL
|
||||
|
||||
#define DIO45_PIN PINA7
|
||||
#define DIO45_RPORT PINA
|
||||
#define DIO45_WPORT PORTA
|
||||
#define DIO45_DDR DDRA
|
||||
#define DIO45_PWM NULL
|
||||
|
||||
#define DIO46_PIN PINF0
|
||||
#define DIO46_RPORT PINF
|
||||
#define DIO46_WPORT PORTF
|
||||
#define DIO46_DDR DDRF
|
||||
#define DIO46_PWM NULL
|
||||
|
||||
#define DIO47_PIN PINF1
|
||||
#define DIO47_RPORT PINF
|
||||
#define DIO47_WPORT PORTF
|
||||
#define DIO47_DDR DDRF
|
||||
#define DIO47_PWM NULL
|
||||
|
||||
#define DIO48_PIN PINF2
|
||||
#define DIO48_RPORT PINF
|
||||
#define DIO48_WPORT PORTF
|
||||
#define DIO48_DDR DDRF
|
||||
#define DIO48_PWM NULL
|
||||
|
||||
#define DIO49_PIN PINF3
|
||||
#define DIO49_RPORT PINF
|
||||
#define DIO49_WPORT PORTF
|
||||
#define DIO49_DDR DDRF
|
||||
#define DIO49_PWM NULL
|
||||
|
||||
#define DIO50_PIN PINF4
|
||||
#define DIO50_RPORT PINF
|
||||
#define DIO50_WPORT PORTF
|
||||
#define DIO50_DDR DDRF
|
||||
#define DIO50_PWM NULL
|
||||
|
||||
#define DIO51_PIN PINF5
|
||||
#define DIO51_RPORT PINF
|
||||
#define DIO51_WPORT PORTF
|
||||
#define DIO51_DDR DDRF
|
||||
#define DIO51_PWM NULL
|
||||
|
||||
#define DIO52_PIN PINF6
|
||||
#define DIO52_RPORT PINF
|
||||
#define DIO52_WPORT PORTF
|
||||
#define DIO52_DDR DDRF
|
||||
#define DIO52_PWM NULL
|
||||
|
||||
#define DIO53_PIN PINF7
|
||||
#define DIO53_RPORT PINF
|
||||
#define DIO53_WPORT PORTF
|
||||
#define DIO53_DDR DDRF
|
||||
#define DIO53_PWM NULL
|
||||
|
||||
#undef PA0
|
||||
#define PA0_PIN PINA0
|
||||
#define PA0_RPORT PINA
|
||||
#define PA0_WPORT PORTA
|
||||
#define PA0_DDR DDRA
|
||||
#define PA0_PWM NULL
|
||||
#undef PA1
|
||||
#define PA1_PIN PINA1
|
||||
#define PA1_RPORT PINA
|
||||
#define PA1_WPORT PORTA
|
||||
#define PA1_DDR DDRA
|
||||
#define PA1_PWM NULL
|
||||
#undef PA2
|
||||
#define PA2_PIN PINA2
|
||||
#define PA2_RPORT PINA
|
||||
#define PA2_WPORT PORTA
|
||||
#define PA2_DDR DDRA
|
||||
#define PA2_PWM NULL
|
||||
#undef PA3
|
||||
#define PA3_PIN PINA3
|
||||
#define PA3_RPORT PINA
|
||||
#define PA3_WPORT PORTA
|
||||
#define PA3_DDR DDRA
|
||||
#define PA3_PWM NULL
|
||||
#undef PA4
|
||||
#define PA4_PIN PINA4
|
||||
#define PA4_RPORT PINA
|
||||
#define PA4_WPORT PORTA
|
||||
#define PA4_DDR DDRA
|
||||
#define PA4_PWM NULL
|
||||
#undef PA5
|
||||
#define PA5_PIN PINA5
|
||||
#define PA5_RPORT PINA
|
||||
#define PA5_WPORT PORTA
|
||||
#define PA5_DDR DDRA
|
||||
#define PA5_PWM NULL
|
||||
#undef PA6
|
||||
#define PA6_PIN PINA6
|
||||
#define PA6_RPORT PINA
|
||||
#define PA6_WPORT PORTA
|
||||
#define PA6_DDR DDRA
|
||||
#define PA6_PWM NULL
|
||||
#undef PA7
|
||||
#define PA7_PIN PINA7
|
||||
#define PA7_RPORT PINA
|
||||
#define PA7_WPORT PORTA
|
||||
#define PA7_DDR DDRA
|
||||
#define PA7_PWM NULL
|
||||
|
||||
#undef PB0
|
||||
#define PB0_PIN PINB0
|
||||
#define PB0_RPORT PINB
|
||||
#define PB0_WPORT PORTB
|
||||
#define PB0_DDR DDRB
|
||||
#define PB0_PWM NULL
|
||||
#undef PB1
|
||||
#define PB1_PIN PINB1
|
||||
#define PB1_RPORT PINB
|
||||
#define PB1_WPORT PORTB
|
||||
#define PB1_DDR DDRB
|
||||
#define PB1_PWM NULL
|
||||
#undef PB2
|
||||
#define PB2_PIN PINB2
|
||||
#define PB2_RPORT PINB
|
||||
#define PB2_WPORT PORTB
|
||||
#define PB2_DDR DDRB
|
||||
#define PB2_PWM NULL
|
||||
#undef PB3
|
||||
#define PB3_PIN PINB3
|
||||
#define PB3_RPORT PINB
|
||||
#define PB3_WPORT PORTB
|
||||
#define PB3_DDR DDRB
|
||||
#define PB3_PWM NULL
|
||||
#undef PB4
|
||||
#define PB4_PIN PINB4
|
||||
#define PB4_RPORT PINB
|
||||
#define PB4_WPORT PORTB
|
||||
#define PB4_DDR DDRB
|
||||
#define PB4_PWM &OCR2A
|
||||
#undef PB5
|
||||
#define PB5_PIN PINB5
|
||||
#define PB5_RPORT PINB
|
||||
#define PB5_WPORT PORTB
|
||||
#define PB5_DDR DDRB
|
||||
#define PB5_PWM NULL
|
||||
#undef PB6
|
||||
#define PB6_PIN PINB6
|
||||
#define PB6_RPORT PINB
|
||||
#define PB6_WPORT PORTB
|
||||
#define PB6_DDR DDRB
|
||||
#define PB6_PWM NULL
|
||||
#undef PB7
|
||||
#define PB7_PIN PINB7
|
||||
#define PB7_RPORT PINB
|
||||
#define PB7_WPORT PORTB
|
||||
#define PB7_DDR DDRB
|
||||
#define PB7_PWM &OCR0A
|
||||
|
||||
#undef PC0
|
||||
#define PC0_PIN PINC0
|
||||
#define PC0_RPORT PINC
|
||||
#define PC0_WPORT PORTC
|
||||
#define PC0_DDR DDRC
|
||||
#define PC0_PWM NULL
|
||||
#undef PC1
|
||||
#define PC1_PIN PINC1
|
||||
#define PC1_RPORT PINC
|
||||
#define PC1_WPORT PORTC
|
||||
#define PC1_DDR DDRC
|
||||
#define PC1_PWM NULL
|
||||
#undef PC2
|
||||
#define PC2_PIN PINC2
|
||||
#define PC2_RPORT PINC
|
||||
#define PC2_WPORT PORTC
|
||||
#define PC2_DDR DDRC
|
||||
#define PC2_PWM NULL
|
||||
#undef PC3
|
||||
#define PC3_PIN PINC3
|
||||
#define PC3_RPORT PINC
|
||||
#define PC3_WPORT PORTC
|
||||
#define PC3_DDR DDRC
|
||||
#define PC3_PWM NULL
|
||||
#undef PC4
|
||||
#define PC4_PIN PINC4
|
||||
#define PC4_RPORT PINC
|
||||
#define PC4_WPORT PORTC
|
||||
#define PC4_DDR DDRC
|
||||
#define PC4_PWM NULL
|
||||
#undef PC5
|
||||
#define PC5_PIN PINC5
|
||||
#define PC5_RPORT PINC
|
||||
#define PC5_WPORT PORTC
|
||||
#define PC5_DDR DDRC
|
||||
#define PC5_PWM NULL
|
||||
#undef PC6
|
||||
#define PC6_PIN PINC6
|
||||
#define PC6_RPORT PINC
|
||||
#define PC6_WPORT PORTC
|
||||
#define PC6_DDR DDRC
|
||||
#define PC6_PWM NULL
|
||||
#undef PC7
|
||||
#define PC7_PIN PINC7
|
||||
#define PC7_RPORT PINC
|
||||
#define PC7_WPORT PORTC
|
||||
#define PC7_DDR DDRC
|
||||
#define PC7_PWM NULL
|
||||
|
||||
#undef PD0
|
||||
#define PD0_PIN PIND0
|
||||
#define PD0_RPORT PIND
|
||||
#define PD0_WPORT PORTD
|
||||
#define PD0_DDR DDRD
|
||||
#define PD0_PWM NULL
|
||||
#undef PD1
|
||||
#define PD1_PIN PIND1
|
||||
#define PD1_RPORT PIND
|
||||
#define PD1_WPORT PORTD
|
||||
#define PD1_DDR DDRD
|
||||
#define PD1_PWM NULL
|
||||
#undef PD2
|
||||
#define PD2_PIN PIND2
|
||||
#define PD2_RPORT PIND
|
||||
#define PD2_WPORT PORTD
|
||||
#define PD2_DDR DDRD
|
||||
#define PD2_PWM NULL
|
||||
#undef PD3
|
||||
#define PD3_PIN PIND3
|
||||
#define PD3_RPORT PIND
|
||||
#define PD3_WPORT PORTD
|
||||
#define PD3_DDR DDRD
|
||||
#define PD3_PWM NULL
|
||||
#undef PD4
|
||||
#define PD4_PIN PIND4
|
||||
#define PD4_RPORT PIND
|
||||
#define PD4_WPORT PORTD
|
||||
#define PD4_DDR DDRD
|
||||
#define PD4_PWM NULL
|
||||
#undef PD5
|
||||
#define PD5_PIN PIND5
|
||||
#define PD5_RPORT PIND
|
||||
#define PD5_WPORT PORTD
|
||||
#define PD5_DDR DDRD
|
||||
#define PD5_PWM NULL
|
||||
#undef PD6
|
||||
#define PD6_PIN PIND6
|
||||
#define PD6_RPORT PIND
|
||||
#define PD6_WPORT PORTD
|
||||
#define PD6_DDR DDRD
|
||||
#define PD6_PWM NULL
|
||||
#undef PD7
|
||||
#define PD7_PIN PIND7
|
||||
#define PD7_RPORT PIND
|
||||
#define PD7_WPORT PORTD
|
||||
#define PD7_DDR DDRD
|
||||
#define PD7_PWM NULL
|
||||
|
||||
#undef PE0
|
||||
#define PE0_PIN PINE0
|
||||
#define PE0_RPORT PINE
|
||||
#define PE0_WPORT PORTE
|
||||
#define PE0_DDR DDRE
|
||||
#define PE0_PWM NULL
|
||||
#undef PE1
|
||||
#define PE1_PIN PINE1
|
||||
#define PE1_RPORT PINE
|
||||
#define PE1_WPORT PORTE
|
||||
#define PE1_DDR DDRE
|
||||
#define PE1_PWM NULL
|
||||
#undef PE2
|
||||
#define PE2_PIN PINE2
|
||||
#define PE2_RPORT PINE
|
||||
#define PE2_WPORT PORTE
|
||||
#define PE2_DDR DDRE
|
||||
#define PE2_PWM NULL
|
||||
#undef PE3
|
||||
#define PE3_PIN PINE3
|
||||
#define PE3_RPORT PINE
|
||||
#define PE3_WPORT PORTE
|
||||
#define PE3_DDR DDRE
|
||||
#define PE3_PWM &OCR3AL
|
||||
#undef PE4
|
||||
#define PE4_PIN PINE4
|
||||
#define PE4_RPORT PINE
|
||||
#define PE4_WPORT PORTE
|
||||
#define PE4_DDR DDRE
|
||||
#define PE4_PWM &OCR3BL
|
||||
#undef PE5
|
||||
#define PE5_PIN PINE5
|
||||
#define PE5_RPORT PINE
|
||||
#define PE5_WPORT PORTE
|
||||
#define PE5_DDR DDRE
|
||||
#define PE5_PWM &OCR3CL
|
||||
#undef PE6
|
||||
#define PE6_PIN PINE6
|
||||
#define PE6_RPORT PINE
|
||||
#define PE6_WPORT PORTE
|
||||
#define PE6_DDR DDRE
|
||||
#define PE6_PWM NULL
|
||||
#undef PE7
|
||||
#define PE7_PIN PINE7
|
||||
#define PE7_RPORT PINE
|
||||
#define PE7_WPORT PORTE
|
||||
#define PE7_DDR DDRE
|
||||
#define PE7_PWM NULL
|
||||
|
||||
#undef PF0
|
||||
#define PF0_PIN PINF0
|
||||
#define PF0_RPORT PINF
|
||||
#define PF0_WPORT PORTF
|
||||
#define PF0_DDR DDRF
|
||||
#define PF0_PWM NULL
|
||||
#undef PF1
|
||||
#define PF1_PIN PINF1
|
||||
#define PF1_RPORT PINF
|
||||
#define PF1_WPORT PORTF
|
||||
#define PF1_DDR DDRF
|
||||
#define PF1_PWM NULL
|
||||
#undef PF2
|
||||
#define PF2_PIN PINF2
|
||||
#define PF2_RPORT PINF
|
||||
#define PF2_WPORT PORTF
|
||||
#define PF2_DDR DDRF
|
||||
#define PF2_PWM NULL
|
||||
#undef PF3
|
||||
#define PF3_PIN PINF3
|
||||
#define PF3_RPORT PINF
|
||||
#define PF3_WPORT PORTF
|
||||
#define PF3_DDR DDRF
|
||||
#define PF3_PWM NULL
|
||||
#undef PF4
|
||||
#define PF4_PIN PINF4
|
||||
#define PF4_RPORT PINF
|
||||
#define PF4_WPORT PORTF
|
||||
#define PF4_DDR DDRF
|
||||
#define PF4_PWM NULL
|
||||
#undef PF5
|
||||
#define PF5_PIN PINF5
|
||||
#define PF5_RPORT PINF
|
||||
#define PF5_WPORT PORTF
|
||||
#define PF5_DDR DDRF
|
||||
#define PF5_PWM NULL
|
||||
#undef PF6
|
||||
#define PF6_PIN PINF6
|
||||
#define PF6_RPORT PINF
|
||||
#define PF6_WPORT PORTF
|
||||
#define PF6_DDR DDRF
|
||||
#define PF6_PWM NULL
|
||||
#undef PF7
|
||||
#define PF7_PIN PINF7
|
||||
#define PF7_RPORT PINF
|
||||
#define PF7_WPORT PORTF
|
||||
#define PF7_DDR DDRF
|
||||
#define PF7_PWM NULL
|
||||
|
||||
#undef PG0
|
||||
#define PG0_PIN PING0
|
||||
#define PG0_RPORT PING
|
||||
#define PG0_WPORT PORTG
|
||||
#define PG0_DDR DDRG
|
||||
#define PG0_PWM NULL
|
||||
#undef PG1
|
||||
#define PG1_PIN PING1
|
||||
#define PG1_RPORT PING
|
||||
#define PG1_WPORT PORTG
|
||||
#define PG1_DDR DDRG
|
||||
#define PG1_PWM NULL
|
||||
#undef PG2
|
||||
#define PG2_PIN PING2
|
||||
#define PG2_RPORT PING
|
||||
#define PG2_WPORT PORTG
|
||||
#define PG2_DDR DDRG
|
||||
#define PG2_PWM NULL
|
||||
#undef PG3
|
||||
#define PG3_PIN PING3
|
||||
#define PG3_RPORT PING
|
||||
#define PG3_WPORT PORTG
|
||||
#define PG3_DDR DDRG
|
||||
#define PG3_PWM NULL
|
||||
#undef PG4
|
||||
#define PG4_PIN PING4
|
||||
#define PG4_RPORT PING
|
||||
#define PG4_WPORT PORTG
|
||||
#define PG4_DDR DDRG
|
||||
#define PG4_PWM NULL
|
||||
#undef PG5
|
||||
#define PG5_PIN PING5
|
||||
#define PG5_RPORT PING
|
||||
#define PG5_WPORT PORTG
|
||||
#define PG5_DDR DDRG
|
||||
#define PG5_PWM &OCR0B
|
||||
|
||||
#endif // _FASTIO_1281
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user