173 Commits
1.1.7 ... 1.3.1

Author SHA1 Message Date
Knutwurst
21d062c285 Disable Wifi for 1.3.1 Release 2021-09-23 18:37:47 +02:00
Knutwurst
04fcfa3b30 Fix Chiron Z-Offset editing via special menu 2021-09-18 21:54:20 +02:00
Knutwurst
3eff63185d Set correct version 2021-09-18 12:35:29 +02:00
Knutwurst
533d44bf94 Cleanup 2021-09-17 21:38:18 +02:00
Knutwurst
ad974e176c Fix for #197 Print Menu file list, when there were exactely 3 files or folders on the sd card. This was caused by a misinterpreted comparision between uint16_t and integer. 2021-09-17 21:28:42 +02:00
Knutwurst
f8208b7e5e Bump release date 2021-09-14 13:22:08 +02:00
Knutwurst
f1dc45dcd3 Add esp programmer image 2021-09-14 13:00:40 +02:00
Knutwurst
978403d1c8 Additional Images 2021-09-14 12:48:41 +02:00
Knutwurst
59ec01bdd1 Update Pictures 2021-09-14 11:38:38 +02:00
Knutwurst
8b3b4c47cf Upload ESP3D Wiki pictures 2021-09-14 11:35:46 +02:00
Knutwurst
85bac6b396 Increase Heatercheck timeout 2021-09-14 10:22:19 +02:00
Knutwurst
2e1c2343cb Revert "HeaterCheck is now only displayed one single time at startup"
This reverts commit 8aa79ade6a.
2021-09-13 22:41:58 +02:00
Knutwurst
8aa79ade6a HeaterCheck is now only displayed one single time at startup 2021-09-13 12:11:58 +02:00
Knutwurst
0b48145044 Add additional baudrate setting for serial 2. 2021-09-13 12:04:09 +02:00
Knutwurst
28993ec8b6 Bump version and reenable secondary serial port 2021-09-13 08:28:20 +02:00
Knutwurst
cf29882768 Fix typo 2021-09-12 16:36:55 +02:00
Knutwurst
b16342e759 Just a little cleanup 2021-09-12 16:35:06 +02:00
Knutwurst
6bc23bb27e Disable TFT Debugging for production 2021-09-12 16:32:34 +02:00
Knutwurst
d85ebb2506 Add additional serial connection to EXP1 Header to connect ESP3D Wifi Module. #194 2021-09-12 16:31:36 +02:00
Knutwurst
4ad1429c5b Fix Non-DGUS special menu key value pairs 2021-09-05 16:52:37 +02:00
Knutwurst
1729115a07 Fix non-BLT build 2021-09-04 13:12:33 +02:00
Knutwurst
01a8239da3 Bump release date 2021-09-04 13:07:01 +02:00
Knutwurst
e2c1dd0b3c Fully working Z offset adjustment 2021-09-04 13:04:54 +02:00
Knutwurst
1a8d83556a Remove code dupication 2021-09-04 00:17:22 +02:00
Knutwurst
923693fc14 Add debugging code and read current offset to LCD. 2021-09-03 23:54:15 +02:00
Knutwurst
39deaa0fc0 Implement Z Offset editing via BLTouch submenu. 2021-09-03 20:41:14 +02:00
Knutwurst
096caa47ed Add missing char 2021-08-28 10:56:33 +02:00
Knutwurst
01272e0626 Bump Version to Beta 3 2021-08-28 10:54:26 +02:00
Oliver Köster
cd7cd794dc Merge pull request #191 from ashleysommer/ashleysommer-g2_g3_fix
fix mistake in G2/G3 merge
2021-08-28 07:48:01 +02:00
Ashley Sommer
6b2ad60d47 fix mistake in G2/G3 merge
accidental duplicated line, when previously hand-merging file versions
2021-08-28 00:24:13 +10:00
Knutwurst
1ecca13347 Disable Steppers after 3 Minutes idle time. 2021-08-22 22:07:09 +02:00
Knutwurst
856f20dd26 Bump build version and date 2021-08-20 09:47:24 +02:00
Oliver Köster
8fc3d6eaa0 Merge pull request #186 from ashleysommer/g2_g3_update
backport G2/G3 changes from upstream to fix ARC issues
2021-08-20 09:35:47 +02:00
Oliver Köster
918820850e Merge pull request #185 from ashleysommer/meatpack_add
Backport meatpack feature from upstream
2021-08-20 09:31:14 +02:00
Ashley Sommer
d464e036e0 backport G2/G3 changes from upstream to fix ARC issues 2021-08-20 15:41:54 +10:00
Ashley Sommer
92bfd1b495 Backport meatpack feature from upstream 2021-08-20 13:45:16 +10:00
Knutwurst
b3f4dcb2d1 Extruder jerk tweak for chiron 2021-07-12 22:08:37 +02:00
Knutwurst
35656c7782 Add manual image for fan settings in cura 2021-07-10 09:08:23 +02:00
Oliver Köster
a0618b4a1e Update README.md
Removed all unnecessary stuff on the main page, because nobody read it.
2021-07-08 09:12:22 +02:00
Knutwurst
b740c9f747 PID Specialmenu image for manual 2021-07-05 10:54:36 +02:00
Knutwurst
4d953f30f8 Add image indicators 2021-07-04 15:50:40 +02:00
Knutwurst
a0b9947172 Add special menu images 2021-07-04 15:48:13 +02:00
Knutwurst
5cbf59285d Add images for cura fw update 2021-07-04 15:19:52 +02:00
Knutwurst
6adfa4571e Add pictures of all known trigorilla mainboards 2021-07-04 14:41:48 +02:00
Knutwurst
0cb10a5255 Another image 2021-07-04 14:08:05 +02:00
Knutwurst
d5e526cc02 Upload Images for new step my step manual 2021-07-04 13:34:54 +02:00
Knutwurst
c06c1f37a4 Removed misleading pin assignment. 2021-06-29 08:43:30 +02:00
Knutwurst
6e74183381 If SpecialMenu is selected, the current menu item is not always deselected after clicking on reload/ok. 2021-06-28 19:11:56 +02:00
Knutwurst
79f44aa23c Correctly measured Extruder Steps 2021-06-25 12:09:04 +02:00
Knutwurst
b98627d095 Cleanup 2021-06-25 09:19:15 +02:00
Knutwurst
28f97829c2 Disable auto stepper deactivation because it causes problems with the mesh leveling 2021-06-25 08:39:44 +02:00
Knutwurst
973ee2e315 Bump Version for next stable release 2021-06-24 22:39:06 +02:00
Knutwurst
11f9862cb9 Fix printer reset/lockup when clicking on back in advanced level menu. 2021-06-24 10:53:17 +02:00
Knutwurst
5b768b4295 Bump Version 2021-06-24 10:35:21 +02:00
Knutwurst
56e283ea9a Tweak default acceleration for TMC drivers 2021-06-24 08:35:47 +02:00
Knutwurst
75e6aa1ac8 Slower homing feedrate for chiron 2021-06-23 18:31:50 +02:00
Oliver Köster
d78629db24 Update README.md 2021-06-21 22:55:01 +02:00
Knutwurst
fc01d05bb6 Increase maximum hotend target temperature to 300 degrees instead of 260. 2021-06-21 22:33:26 +02:00
Knutwurst
035538dac7 Back to special TMC/A4988 timings 2021-06-21 21:50:18 +02:00
Knutwurst
00155509a3 Only home X after G29, play some beeping tones and save eeprom automatically. Also bump version for next release. 2021-06-21 15:48:48 +02:00
Knutwurst
955b3aa21b Reset Chiron TFT after successful G29. 2021-06-21 14:57:29 +02:00
Knutwurst
09801c54a0 Some minor fixes 2021-06-21 12:11:42 +02:00
Knutwurst
df00fdd01e Fix Chiron Endstop Configuration and Pin mapping. 2021-06-21 12:02:00 +02:00
Knutwurst
cb0f10f4b6 Fine tune Z Probe offset for chiron. 2021-06-20 13:21:51 +02:00
Knutwurst
320ba839dd Tune probe settings for chiron. 2021-06-20 13:13:27 +02:00
Knutwurst
6437bbfe91 Reset temp values to maximum possible and fix typo. 2021-06-20 12:46:32 +02:00
Knutwurst
74bef229c1 Add special menu entry to reset the mesh leveling grid to -1. 2021-06-20 12:00:31 +02:00
Knutwurst
aac24f36ce Fix reset bug after mesh inizialisation. 2021-06-19 11:43:55 +02:00
Knutwurst
f20b0c3058 Update Chiron TFT leveling 2021-06-18 14:02:17 +02:00
Knutwurst
de2b3f5860 Fix Chiron Filament Runout Sensor 2021-06-18 11:13:05 +02:00
Knutwurst
f358634e0a Fix for Mega Pro whining noise 2021-06-18 11:11:12 +02:00
Knutwurst
2bf9fc57cc Update float conversion 2021-06-12 16:15:47 +02:00
Knutwurst
4172c90f07 More chiron fixes. Reduced memory usage and better thermal runaway values. 2021-06-12 11:06:16 +02:00
Knutwurst
10536793fb Apply Chiron initialization patch 2021-06-06 16:14:32 +02:00
Knutwurst
18fa9767d4 Bump version 2021-06-05 11:48:12 +02:00
Knutwurst
1d499a99f8 Chiron fixes by DKoch83 2021-06-04 18:29:02 +02:00
Knutwurst
6d82c139cf Revert "- Remove unused error correction in tft code."
This reverts commit 527fbf1699.
2021-05-31 12:46:02 +02:00
Knutwurst
0fb9bcf66d Reset print bed size für i3 MEGA, since this printer has a smaller print area. 2021-05-31 12:42:31 +02:00
Oliver Köster
57e0e8ca2b Update config.yml 2021-05-22 13:37:57 +02:00
Oliver Köster
13e12f4777 Update feature_request.md 2021-05-22 13:32:58 +02:00
Oliver Köster
138ae98b37 Update bug_report.md 2021-05-22 13:32:38 +02:00
Oliver Köster
c8b9c649a5 Update feature_request.md 2021-05-22 13:31:32 +02:00
Oliver Köster
99e5ab3c9d Update bug_report.md 2021-05-22 13:30:17 +02:00
Oliver Köster
25f34ecc24 Update config.yml 2021-05-22 13:25:49 +02:00
Knutwurst
238fd8e077 Revert homing speed 2021-05-20 13:06:36 +02:00
Knutwurst
0419bc5c0e Build fix 2021-05-17 21:23:23 +02:00
Knutwurst
751e3c0f25 Some refactoring 2021-05-17 21:20:01 +02:00
Knutwurst
589ad64a97 Limit floating point conversion to two digits. Thanks to dkoch83. 2021-05-17 19:01:20 +02:00
Knutwurst
6c2e17d8a4 Bump version 2021-05-16 19:07:08 +02:00
Knutwurst
e17cb6e00b Enable TFT leveling for Chiron 2021-05-16 19:05:21 +02:00
Knutwurst
a97a83b4d0 Configuration Fixes for Chiron 2021-05-16 19:04:24 +02:00
Knutwurst
5f196b1702 Revert "Complete rework of the Chiron ABL feature."
This reverts commit 2024943390.
2021-05-16 17:58:14 +02:00
Knutwurst
2024943390 Complete rework of the Chiron ABL feature. 2021-05-16 13:45:27 +02:00
Knutwurst
c183f90466 reenable heater check in tft 2021-05-16 11:09:01 +02:00
Knutwurst
3ac8166410 Add automatic mesh grid rebuild feature for chiron 2021-05-15 21:15:52 +02:00
Knutwurst
fd8c757cbd Update Version 2021-05-14 11:20:30 +02:00
Knutwurst
158472dbbf Support AutoLeveling for new Chiron 1.4.1 Model. 2021-05-14 11:12:34 +02:00
Knutwurst
527fbf1699 - Remove unused error correction in tft code.
- Increase max set temp value of hotend.
- Disable Z raise if below 10mm for heating.
2021-05-14 10:33:41 +02:00
Knutwurst
f902d5e827 - Ultra-Fast BLTouch leveling
- EEPROM is saved automatically after BLTouch level
- Music plays after BLTouch
2021-05-13 20:47:49 +02:00
Knutwurst
d73d9c8034 Chiron TFT leveling refactoring. 2021-04-27 22:35:35 +02:00
Knutwurst
cb4eafedb6 Bump version to Beta 2 2021-04-21 12:50:20 +02:00
Knutwurst
5ffe3eed64 Disable SW_MODE for BLTouch. Also reenable mesh insets to ensure the nozzle stays inside boundries. 2021-04-21 12:40:55 +02:00
Knutwurst
d7a11222a8 Hotfix for BLTouch on Mega S and Mega X. 2021-04-21 11:12:34 +02:00
Knutwurst
f2f1d6213a Fix build for chiron without tft leveling. 2021-04-18 21:17:39 +02:00
Knutwurst
cd106eb777 Set cleanup from 7 to 30 days 2021-04-18 21:10:50 +02:00
Knutwurst
589cd31743 Add github token to cleanup job 2021-04-18 21:09:17 +02:00
Knutwurst
5fcc39c8b2 Move chiron autolevel build flag to configuration.h 2021-04-18 21:07:10 +02:00
Knutwurst
9aa481ad4d Remove TFT Leveling build flag because it is set inside the configuration. 2021-04-18 21:06:01 +02:00
Knutwurst
be5567c421 Update Version für next beta release 2021-04-18 21:03:20 +02:00
Knutwurst
f2840a72a3 Fix build 2021-04-18 14:26:19 +02:00
Knutwurst
a5c21b3f94 New environment settings 2021-04-14 17:03:14 +02:00
Knutwurst
9c0bbe2bed PID Tining now moves the nozzle to the middle of the bed - also for MEGA X and CHIRON. 2021-04-14 14:02:59 +02:00
Knutwurst
7a6d94b06f Better PID Values for Chiron. 2021-04-14 10:58:08 +02:00
Knutwurst
a56aaa5bf7 Bug when referencing to externals in EEPROM. Now it should work. 2021-04-14 09:37:08 +02:00
Knutwurst
a6fc1cb0c5 First partially working ABL implementation for Anycubic Chiron including EEPROM functions. 2021-04-13 23:04:49 +02:00
Knutwurst
1eed2a03dd A step further to LCD Bed levelling. Yay. 2021-04-13 22:03:41 +02:00
Knutwurst
4e2e623790 Fix levelling mesh size for large printers like chiron. 2021-04-13 20:53:33 +02:00
Knutwurst
af2f1ba456 Add readme/hint in configuration.h. 2021-04-12 10:24:53 +02:00
Knutwurst
6f4ee21cc9 Fix Mesh bed leveling for Chiron without BLTouch or TFT Levelling. 2021-04-11 18:27:53 +02:00
Knutwurst
e4a5191178 Add missing newline. 2021-04-11 12:38:17 +02:00
Knutwurst
aa7b477b30 Add automatic workflow build artifact cleanup. 2021-04-11 12:37:58 +02:00
Knutwurst
5b3c593f77 Fix CHIRON_DGUS profile naming. 2021-04-11 12:20:26 +02:00
Knutwurst
6457ce2d1c Set automatic Fan speed for Chiron Models. 2021-04-11 12:18:02 +02:00
Knutwurst
0bfd779bbe Add Support for the "new" Chiron model with Anycubic 0.0.2 TFT 2021-04-11 12:17:36 +02:00
Knutwurst
4ccffd3894 Fix junction deviation default value for Mega X and add JD value for Chiron 2021-04-11 00:24:20 +02:00
Oliver Köster
4b4f21369e Merge pull request #82 from chschu/feature/optimize-menu-entries
Use PROGMEM for menu entries to save RAM
2021-04-11 00:09:56 +02:00
Oliver Köster
fcdcff6384 Merge pull request #93 from ChristophDerndorfer/patch-1
Updated README.md to correct a typo
2021-04-11 00:04:35 +02:00
Oliver Köster
7cdc56c8d1 Merge pull request #100 from chschu/bugfix/percent-done-not-working
Fix progress percentage
2021-04-11 00:03:40 +02:00
Knutwurst
85969087a8 Add base environments for Github CI 2021-04-10 16:15:03 +02:00
Knutwurst
8959bcd2e2 Bump build version and date for nex release. 2021-04-10 15:54:30 +02:00
Knutwurst
0033b9a289 Rewrite of the Chiron pin mapping. 2021-04-10 15:51:26 +02:00
Knutwurst
090f82814a Fix Chiron 4 point easy leveling where only point 1 was usable. 2021-04-10 15:08:30 +02:00
Knutwurst
6ed85e90d0 Fix non working extruder fan on Mega P and Chiron. 2021-04-10 15:05:10 +02:00
Knutwurst
ecff16c7dc Enable manual mesh bed leveling for Chiron. 2021-04-10 15:04:38 +02:00
Knutwurst
e0aa7f7d96 Disable (slow) TFT error correction. 2021-04-10 15:04:04 +02:00
Knutwurst
bc46dcb336 Add Support for MEGA X with new Anycubic 0.0.2 TFT (DGUS Clone). Use MEGA_X_DGUS to use this environment. 2021-04-10 14:48:44 +02:00
Knutwurst
8c0ffc5ddb Edit FlowRate in 1 percet steps instead of 5 percent. 2021-04-06 11:43:19 +02:00
Knutwurst
827c7a81ff Set new machine name and distribution date 2021-03-26 09:08:51 +01:00
Knutwurst
c14f93323c Fix for ARC stuttering. 2021-03-17 14:48:50 +01:00
Christian Schuster
2483cd01e2 Fix missing newline at end of A6V 2021-03-10 00:00:58 +01:00
Christian Schuster
3f1500a3a8 Use PROGMEM for menu entries to save RAM 2021-03-09 22:58:08 +01:00
Christoph Derndorfer-Medosch
424e770f00 Updated README.md to correct a typo
Table of Contets (english) --> Table of Contents (English)
2021-03-06 23:20:21 +01:00
Knutwurst
56e81609d7 Fix Mega x fan not working 2021-03-05 21:25:32 +01:00
Knutwurst
6845a5164a Remove TFT leveling, because it's not working atm. 2021-03-03 09:55:38 +01:00
Knutwurst
3e558a61b2 Add more warnings 2021-03-03 09:50:23 +01:00
Knutwurst
3b6d20d657 Fix build for MEGA_P 2021-02-18 18:45:13 +01:00
Knutwurst
7f56178d13 Complete rewrite of anycubic tft code structure + cleanup for upcoming Chiron BBL feature. 2021-02-18 18:18:38 +01:00
Oliver Köster
72d48a5ef8 Update README.md 2021-02-18 15:35:25 +01:00
Oliver Köster
2edc36ca29 Update README.md 2021-02-18 15:33:56 +01:00
Knutwurst
7949ab4f51 - Fix Mega X pin mapping
- Fix Chiron support
2021-02-17 16:40:34 +01:00
Oliver Köster
9b058efa41 Update README.md
fixed typo
2021-02-12 10:59:33 +01:00
Knutwurst
a544698888 Bump distribution date, since there were some major changes 2021-01-20 10:49:04 +01:00
Knutwurst
d735bccbb6 Disable automatic leveling restore after G28 because it's buggy. Also enable BLTouch Software-Mode after deploy to ensure compatiblity with BLT3.1 and some cheap wiring. 2021-01-20 10:47:24 +01:00
Knutwurst
9734a61c2a A little cleanup 2021-01-19 09:21:17 +01:00
Knutwurst
fe5f2c6e16 Add rudimentary Chiron support. Currently only base configuration, but no propritary control menu settings. 2021-01-18 16:20:48 +01:00
Knutwurst
5f1e91e04e Include Chiron in build variants. Also bump version to 1.2.0-Alpha 1, which should not be released to the public. 2021-01-18 15:46:34 +01:00
Knutwurst
c6b6c280fb Laser and BMP struct initialisation. 2021-01-18 15:38:56 +01:00
Knutwurst
5938775746 BMP Structs 2021-01-18 15:37:36 +01:00
Knutwurst
a52aa9f69f Add more Mega Pro Laser stuff. 2021-01-18 15:31:33 +01:00
Knutwurst
3f6663dca4 Add Chiron an Laser Stuff. Currently not in a good working condition, so be careful! 2021-01-18 15:22:14 +01:00
Knutwurst
451526bf15 Fix TFT pause feature in Mega X 2021-01-18 15:21:27 +01:00
Oliver Köster
20c0e89d81 Update README.md 2021-01-15 22:07:33 +01:00
Knutwurst
67f181f220 Update README.md 2021-01-15 22:04:40 +01:00
Knutwurst
bbfec43d31 Delete unused workflows 2021-01-14 10:26:30 +01:00
Knutwurst
5d1444295b - Set MINTEMP to 1 degree celsius
- Bump Verison to 1.1.9
- Bump distribution date
- Add CodeValueInt function to prepare Laser support
2021-01-13 15:36:03 +01:00
Knutwurst
57fb9a40a0 Increase MAX_TEMP 2021-01-13 14:21:05 +01:00
Knutwurst
bf6aab0a93 Set lock script from 60 to 180 days 2021-01-08 08:37:23 +01:00
Knutwurst
14e075c5fb Set prerelease custom Version 2021-01-07 09:54:03 +01:00
Knutwurst
62a2ccc849 Set minimum stepper pulse to 1 (@see: https://www.makerline.de/probleme-mit-linear-advance-und-marlin-2/) 2021-01-05 08:32:59 +01:00
Knutwurst
53cdbaec58 Decrease stepper dir delay to eliminate direction bug for extruders with TMC stepper drivers. 2021-01-01 15:11:43 +01:00
Knutwurst
6bfe25f72c Bump version number and distribution date for upcoming release 2021-01-01 15:08:51 +01:00
Knutwurst
08a1ceed8a - Enable Babystepping without BLTouch
- Revert ARC Settings to default
2020-12-13 13:37:44 +01:00
Knutwurst
eee52d4fd8 Bugfix for special menu not shown anymore when no sd card is inserted 2020-12-07 18:21:41 +01:00
73 changed files with 4002 additions and 1921 deletions

View File

@@ -1,6 +1,6 @@
---
name: Bug report
about: Report a bug in Marlin
about: Report a bug in Knutwurst's Marlin Firmware
title: "[BUG] (short description)"
labels: ''
assignees: ''
@@ -9,11 +9,12 @@ assignees: ''
<!--
Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/master/.github/code_of_conduct.md
------ PLEASE USE THIS TEMPLATE! --------
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use one of the support links at https://github.com/MarlinFirmware/Marlin/issues/new/choose
Have you read all Wiki articles in cluding the FAQ?
https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki
Before filing an issue be sure to test the "bugfix" branches to see whether the issue has been resolved.
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use one of the support links at https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/issues/new/choose
-->
@@ -21,10 +22,6 @@ Before filing an issue be sure to test the "bugfix" branches to see whether the
<!-- Description of the bug -->
### My Configurations
**Required:** Please include a ZIP file containing your `Configuration.h` and `Configuration_adv.h` files.
### Steps to Reproduce
<!-- Please describe the steps needed to reproduce the issue -->

View File

@@ -1,17 +1,14 @@
blank_issues_enabled: false
contact_links:
- name: Marlin Documentation
url: http://marlinfw.org/
about: Lots of documentation on installing and using Marlin.
- name: MarlinFirmware Facebook group
url: https://www.facebook.com/groups/1049718498464482
about: Please ask and answer questions here.
- name: Marlin on Discord
url: https://discord.gg/n5NJ59y
about: Join the Discord server for support and discussion.
- name: Marlin Discussion Forum
url: http://forums.reprap.org/list.php?415
about: A searchable web forum hosted by RepRap dot org.
- name: Marlin Videos on YouTube
url: https://www.youtube.com/results?search_query=marlin+firmware
about: Tutorials and more from Marlin users all around the world. Great for new users!
- name: Knutwurst Wiki
url: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki
about: Lots of documentation on installing and using Knutwurst Firmware.
- name: FAQ
url: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/FAQ-(english)
about: Please look for your question here
- name: Official Facebook Group (german)
url: https://www.facebook.com/groups/3094090037303577
about: If you need general help (english/german), please ask your question here
- name: Knuwturst Videos on YouTube
url: https://www.youtube.com/results?search_query=knutwurst+firmware
about: Tutorials and more from Knutwurst users all around the world. Great for new users!

View File

@@ -9,14 +9,16 @@ assignees: ''
<!--
Have you read Marlin's Code of Conduct? By filing an Issue, you are expected to comply with it, including treating everyone with respect: https://github.com/MarlinFirmware/Marlin/blob/master/.github/code_of_conduct.md
------ PLEASE USE THIS TEMPLATE! --------
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use one of the support links at https://github.com/MarlinFirmware/Marlin/issues/new/choose
Have you read all Wiki articles in cluding the FAQ?
https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki
Before filing an issue be sure to test the "bugfix" branches to see whether the issue has been resolved.
Do you want to ask a question? Are you looking for support? Please don't post here. Instead please use one of the support links at https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/issues/new/choose
-->
### Description
<!-- Description of the requested feature -->
@@ -32,4 +34,3 @@ Before filing an issue be sure to test the "bugfix" branches to see whether the
#### Additional Information
* Provide pictures or links that demonstrate a similar feature or concept.
* See [How Can I Contribute](#how-can-i-contribute) for additional guidelines.

2
.github/lock.yml vendored
View File

@@ -3,7 +3,7 @@
#
# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 60
daysUntilLock: 180
# Skip issues and pull requests created before a given timestamp. Timestamp must
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable

View File

@@ -59,12 +59,22 @@ jobs:
- MEGA_X_BLT_11
- MEGA_X_TMC_BLT_10
- MEGA_X_TMC_BLT_11
- MEGA_X_DGUS
- MEGA_X_DGUS_TMC
- MEGA_X_DGUS_BLT_10
- MEGA_X_DGUS_BLT_11
- MEGA_X_DGUS_TMC_BLT_10
- MEGA_X_DGUS_TMC_BLT_11
- MEGA_P
- MEGA_P_TMC
- MEGA_P_BLT_10
- MEGA_P_BLT_11
- MEGA_P_TMC_BLT_10
- MEGA_P_TMC_BLT_11
- CHIRON
- CHIRON_TMC
- CHIRON_DGUS
- CHIRON_DGUS_TMC
steps:

View File

@@ -1,39 +0,0 @@
#
# bump-date.yml
# Bump the distribution date
#
name: Bump Distribution Date
on:
release:
branches:
- master
paths-ignore:
- config/**
- data/**
- docs/**
- '**/*.md'
#schedule:
# - cron: '0 0 * * *'
jobs:
bump_date:
name: Bump Distribution Date
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Bump Distribution Date
run: |
# Inline Bump Script
DIST=$( date +"%Y-%m-%d" )
eval "sed -E -i 's/(#define +STRING_DISTRIBUTION_DATE) .*$/\1 \"$DIST\"/g' Marlin/src/inc/Version.h" && \
git config user.name "${GITHUB_ACTOR}" && \
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" && \
git add . && \
git commit -m "[cron] Bump distribution date ($DIST)" && \
git push

View File

@@ -1,31 +0,0 @@
#
# check-pr.yml
# Close PRs directed at release branches
#
name: PR Bad Target
on:
pull_request:
branches:
- 2.0.x
jobs:
bad_target:
name: PR Bad Target
if: github.repository == 'knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S'
runs-on: ubuntu-latest
steps:
- uses: peter-evans/close-pull@v1
with:
delete-branch: false
comment: >
Thanks for your contribution! Unfortunately we can't accept PRs directed at release branches. We make patches to the bugfix branches and only later do we push them out as releases.
Please redo this PR starting with the `bugfix-2.0.x` branch and be careful to target `bugfix-2.0.x` when resubmitting the PR.
It may help to set your fork's default branch to `bugfix-2.0.x`.
See [this page](http://marlinfw.org/docs/development/getting_started_pull_requests.html) for full instructions.

13
.github/workflows/nightly_cleanup.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
name: 'nightly artifacts cleanup'
on:
schedule:
- cron: '0 1 * * *' # every night at 1 am UTC
jobs:
delete-artifacts:
runs-on: ubuntu-latest
steps:
- uses: kolpav/purge-artifacts-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
expire-in: 30days # Set this to 0 to delete all artifacts

View File

@@ -38,6 +38,18 @@
*/
#define CONFIGURATION_H_VERSION 020005
/********************************************************************************************
# ** **
# ** If you want to select a specific configuration for your **
# ** printer, just open the PlatformIO tab on the left, select **
# ** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
# ** From there you can build and upload your code. **
# ** **
# *******************************************************************************************/
#define ANYCUBIC_TOUCHSCREEN
#define ANYCUBIC_FILAMENT_RUNOUT_SENSOR
#define KNUTWURST_SPECIAL_MENU
@@ -45,132 +57,40 @@
//#define ANYCUBIC_TFT_DEBUG
//#define POWER_OUTAGE_TEST
/*******************************************************************************************
** **
** **
** WARNING: **
** THE FOLLOWING SETTINGS ARE NORMALLY SET BY PLATFORMIO! **
** **
** IF YOU CHANGE THEM WITHIN THE SOURCECODE, DO NOT COMMIT **
** TO MASTER BRANCH OR BUILD WITH PLATFORMIO ENVIRONMENT! **
** OTHERWISE SOME SETTINGS MIGHT BE OVERWRITTEN AND YOU END **
** UP WITH A NON FUNCTIONING FIRMWARE! **
** **
** If you want to select a specific configuration for your **
** printer, just open the PlatformIO tab on the left, select **
** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
** From there you can build and upload your code. **
** **
** **
*******************************************************************************************/
/*
* Select your printer.
* DO NOT ENABLE MORE THAN ONE LINE!
*
* MEGA is the normal i3 Version without spool holder and the cassic extruder
* MEGA_S is the S version with Titan clone extruder
* MEGA_X is the big version with 310x310mm Bed
* MEGA_P is the "Pro" Version with BMG Extruder, 2 TMC Steppers and Laser
*
* PLEASE READ THE WARNING ABOVE!
*
*/
//#define KNUTWURST_MEGA
//#define KNUTWURST_MEGA_S
//#define KNUTWURST_MEGA_X
//#define KNUTWURST_MEGA_P
/*
* If you own the first generation i3 Mega
* with only one Z endstop, you need to activate
* KNUTWURST_MEGA and also this to disable
* the left endstop and switch the Z Motors.
*
* If the option is disabled, two Z endstops
* are used by default.
*
* PLEASE READ THE WARNING ABOVE!
*
*/
//#define KNUTWURST_ONE_Z_ENDSTOP
/*
* If you have defined the MEGA_X or if
* you have the "new" Mega S with the blue/yellow
* Touchscreen display, you need to enable the
* DGUS2 switch to get the special menu to work
*
* PLEASE READ THE WARNING ABOVE!
*
*/
//#define KNUTWURST_DGUS2_TFT
/*
* Enable Support for Trinamic Stepper drivers.
* This also inverts the X,Y,Z and Extruder motor
* outputs/directions.
*
* PLEASE READ THE WARNING ABOVE!
*/
//#define KNUTWURST_TMC
/*
* Invert E0 Stepper driver for
* Bondtech Mini Geared (BMG) Extruders
*
* This flag is mandatory if you own a
* MEGA Pro, which has this Extruder by
* default.
*
*/
//#define KNUTWURST_BMG
/*
* This enables the BLTouch Support and also
* activates the BLTouch Menu item in the
* special menu. It also removes all manual
* leveling features because they are not
* neccessary at all.
*
* PLEASE READ THE WARNING ABOVE!
*
*/
//#define KNUTWURST_BLTOUCH
#define EXT_LEVEL_HIGH 0.1
/*
* This feature is for debugging purpose only.
* It enabled more console output and should be
* disabled in production. It can cause the
* printer to stutter.
*
* PLEASE READ THE WARNING ABOVE!
*
*/
//#define KNUTWURST_DEBUG
/*******************************************************************************************
** **
** **
** WARNING: **
** THE SETTINGS ABOVE ARE NORMALLY SET BY PLATFORMIO! **
** **
** IF YOU CHANGE THEM WITHIN THE SOURCECODE, DO NOT COMMIT **
** TO MASTER BRANCH OR BUILD WITH PLATFORMIO ENVIRONMENT! **
** OTHERWISE SOME SETTINGS MIGHT BE OVERWRITTEN AND YOU END **
** UP WITH A NON FUNCTIONING FIRMWARE! **
** **
** If you want to select a specific configuration for your **
** printer, just open the PlatformIO tab on the left, select **
** PROJECT TASKS and then "env:i3_MEGA*" (your desired config) **
** From there you can build and upload your code. **
** **
** **
*******************************************************************************************/
/*
* This enabled the integrated Laser engaving feature
* in the anycubic touchscreen. It's currently only
* supported by the Anycubic MEGA Pro and therefore it
* is automatically set if the MEGA_P is enabled.
*
*/
#if ENABLED(KNUTWURST_MEGA_P)
//#define KNUTWURST_MEGA_P_LASER
#endif
/*
* This enabled the integrated leveling features
* in the anycubic touchscreen. It's currently only
* supported by the Anycubic Chiron and therefore it
* is automatically set if the chiron is enabled.
*
*/
#if ENABLED(KNUTWURST_CHIRON)
#define KNUTWURST_TFT_LEVELING
#endif
/*
* Here you can set the default preheat-Temperatures
* which are set when you use the builtin preheat
@@ -256,7 +176,23 @@
* Select a secondary serial port on the board to use for communication with the host.
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
*/
//#define SERIAL_PORT_2 -1
//#define SERIAL_PORT_2 2 // D16(RX) + D17(TX)
/* EXP1 Header
---------------
|| D37 D35 ||
|| ||
|| [D17] [D16] || <---- Connect your ESP8266 here (TX/RX)
/|| ||
||| D23 D25 ||
\|| ||
|| D27 D29 ||
|| ||
|| GND 5V ||
---------------
*/
/**
* This setting determines the communication speed of the printer.
@@ -268,6 +204,7 @@
* :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
*/
#define BAUDRATE 250000
#define BAUDRATE_2 500000 // For ESP8266
// Enable the Bluetooth serial interface on AT90USB devices
//#define BLUETOOTH
@@ -278,9 +215,10 @@
*
* BOARD_TRIGORILLA_14 = Default Trigorilla
* BOARD_TRIGORILLA_14_11 = Newer Trigorilla v1.1 (first seen late 2018)
* BOARD_TRIGORILLA_CHIRON = EFB Version for Anycubic Chiron
*
* The only major difference is a slight change on the servo pin mapping.
* This setting only is relevant if you want to use BLtouch or similar
* The only major difference between 14 and 14_11 is a slight change on the servo
* pin mapping. This setting only is relevant if you want to use BLtouch or similar
* mods to be used via servo pins.
* The new version is to be identified by a "TRIGORILLA1.1" lettering
* on the upper left of the PCB silkscreen.
@@ -595,15 +533,15 @@
// Below this temperature the heater will be switched off
// because it probably indicates a broken thermistor wire.
#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define HEATER_3_MINTEMP 5
#define HEATER_4_MINTEMP 5
#define HEATER_5_MINTEMP 5
#define HEATER_6_MINTEMP 5
#define HEATER_7_MINTEMP 5
#define BED_MINTEMP 5
#define HEATER_0_MINTEMP 1
#define HEATER_1_MINTEMP 1
#define HEATER_2_MINTEMP 1
#define HEATER_3_MINTEMP 1
#define HEATER_4_MINTEMP 1
#define HEATER_5_MINTEMP 1
#define HEATER_6_MINTEMP 1
#define HEATER_7_MINTEMP 1
#define BED_MINTEMP 1
// Above this temperature the heater will be switched off.
// This can protect components from overheating, but NOT from shorts and failures.
@@ -641,25 +579,23 @@
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// i3 Mega stock v5 hotend, 40W heater cartridge (3.6Ω @ 22°C)
#define DEFAULT_Kp 15.94
#define DEFAULT_Ki 1.17
#define DEFAULT_Kd 54.19
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P)
#define DEFAULT_Kp 15.94
#define DEFAULT_Ki 1.17
#define DEFAULT_Kd 54.19
#endif
// Ultimaker
// #define DEFAULT_Kp 22.2
// #define DEFAULT_Ki 1.08
// #define DEFAULT_Kd 114
#if ENABLED(KNUTWURST_MEGA_X)
#define DEFAULT_Kp 15.94
#define DEFAULT_Ki 1.17
#define DEFAULT_Kd 54.19
#endif
// MakerGear
//#define DEFAULT_Kp 7.0
//#define DEFAULT_Ki 0.1
//#define DEFAULT_Kd 12
// Mendel Parts V9 on 12V
//#define DEFAULT_Kp 63.0
//#define DEFAULT_Ki 2.25
//#define DEFAULT_Kd 440
#if ENABLED(KNUTWURST_CHIRON)
#define DEFAULT_Kp 20
#define DEFAULT_Ki 0.5
#define DEFAULT_Kd 106.55
#endif
#endif // PIDTEMP
@@ -696,10 +632,24 @@
//#define MIN_BED_POWER 0
//#define PID_BED_DEBUG // Sends debug data to the serial port.
//Anycubic i3 Mega Ultrabase (0.9Ω @ 22°C)
#define DEFAULT_bedKp 251.78
#define DEFAULT_bedKi 49.57
#define DEFAULT_bedKd 319.73
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P)
#define DEFAULT_bedKp 251.78
#define DEFAULT_bedKi 49.57
#define DEFAULT_bedKd 319.73
#endif
#if ENABLED(KNUTWURST_MEGA_X)
#define DEFAULT_bedKp 251.78
#define DEFAULT_bedKi 49.57
#define DEFAULT_bedKd 319.73
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define DEFAULT_bedKp 97.10
#define DEFAULT_bedKi 1.41
#define DEFAULT_bedKd 1675.16
#endif
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune
@@ -781,6 +731,11 @@
#if DISABLED(KNUTWURST_ONE_Z_ENDSTOP)
#define USE_XMAX_PLUG
#endif
#if ENABLED(KNUTWURST_CHIRON)
//#define USE_ZMAX_PLUG
#endif
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG
@@ -832,6 +787,16 @@
//#define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#endif
#if ENABLED(KNUTWURST_CHIRON)
// Mechanical endstop with COM to ground and NC to Signal uses "false" here (most common setup).
#define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#endif
/**
* Stepper Drivers
@@ -849,22 +814,24 @@
* TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
* :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
*/
#define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988
#define Z_DRIVER_TYPE A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988
#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988
#if ENABLED(KNUTWURST_TMC)
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#define Z_DRIVER_TYPE TMC2208_STANDALONE
#define E0_DRIVER_TYPE TMC2208_STANDALONE
#define E1_DRIVER_TYPE TMC2208_STANDALONE
#else
#if ENABLED(KNUTWURST_MEGA_P)
#define X_DRIVER_TYPE TMC2208_STANDALONE
#define Y_DRIVER_TYPE TMC2208_STANDALONE
#else
#define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988
#endif
#define Z_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988
#define E1_DRIVER_TYPE A4988
#endif
// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
@@ -914,7 +881,7 @@
#endif
#if ENABLED(KNUTWURST_MEGA_S)
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 392 }
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 393 }
#endif
#if ENABLED(KNUTWURST_MEGA_X)
@@ -925,6 +892,11 @@
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 415 }
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 100, 400, 415 }
#endif
/**
* Default Max Feed Rate (mm/s)
@@ -956,6 +928,14 @@
#define DEFAULT_MAX_FEEDRATE { 500, 500, 6, 30 }
#endif
#if ENABLED(KNUTWURST_CHIRON)
#if ENABLED(KNUTWURST_BMG)
#define DEFAULT_MAX_FEEDRATE { 100, 100, 20, 30 }
#else
#define DEFAULT_MAX_FEEDRATE { 100, 100, 20, 80 }
#endif
#endif
//#define LIMITED_MAX_FR_EDITING // Limit edit via M203 or LCD to DEFAULT_MAX_FEEDRATE * 2
#if ENABLED(LIMITED_MAX_FR_EDITING)
@@ -977,7 +957,9 @@
//#define DEFAULT_MAX_ACCELERATION { 2000, 1500, 60, 10000 }
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define DEFAULT_MAX_ACCELERATION { 350, 350, 50, 20000 }
#endif
//#define LIMITED_MAX_ACCEL_EDITING // Limit edit via M201 or LCD to DEFAULT_MAX_ACCELERATION * 2
@@ -995,7 +977,7 @@
*/
#if ENABLED(KNUTWURST_MEGA)
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_ACCELERATION 1500 // X, Y, Z and E acceleration for printing moves
#if ENABLED(KNUTWURST_BMG)
#define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts
#else
@@ -1006,7 +988,7 @@
#endif
#if ENABLED(KNUTWURST_MEGA_S)
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_ACCELERATION 1500 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
#endif
@@ -1018,11 +1000,17 @@
#endif
#if ENABLED(KNUTWURST_MEGA_P)
#define DEFAULT_ACCELERATION 1600 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_ACCELERATION 1500 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION 1500 // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define DEFAULT_ACCELERATION 350 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION 2000//3000 // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION 350 // X, Y, Z acceleration for travel (non printing) moves
#endif
/**
* Default Jerk limits (mm/s)
* Override with M205 X Y Z E
@@ -1032,29 +1020,28 @@
* value set here, it may happen instantaneously.
*/
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P)
#define CLASSIC_JERK
#endif
#if ENABLED(KNUTWURST_MEGA_X)
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P, KNUTWURST_MEGA_X, KNUTWURST_CHIRON)
#define CLASSIC_JERK
#endif
#if ENABLED(CLASSIC_JERK)
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P)
#define DEFAULT_XJERK 8.0
#define DEFAULT_YJERK 8.0
#define DEFAULT_ZJERK 0.4
#endif
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P)
#define DEFAULT_XJERK 8.0
#define DEFAULT_YJERK 8.0
#define DEFAULT_ZJERK 0.4
#endif
#if ENABLED(KNUTWURST_MEGA_X)
#define DEFAULT_XJERK 4.0
#define DEFAULT_YJERK 4.0
#define DEFAULT_ZJERK 0.2
#endif
#if ENABLED(KNUTWURST_MEGA_X)
#define DEFAULT_XJERK 4.0
#define DEFAULT_YJERK 4.0
#define DEFAULT_ZJERK 0.2
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define DEFAULT_XJERK 4
#define DEFAULT_YJERK 4
#define DEFAULT_ZJERK 0.4
#endif
//#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves
@@ -1072,6 +1059,10 @@
#define DEFAULT_EJERK 8.0 // May be used by Linear Advance
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define DEFAULT_EJERK 8.0 // May be used by Linear Advance
#endif
/**
* Junction Deviation Factor
*
@@ -1085,7 +1076,11 @@
#endif
#if ENABLED(KNUTWURST_MEGA_X)
#define JUNCTION_DEVIATION_MM 0.16 // (mm) Distance from real junction edge
#define JUNCTION_DEVIATION_MM 0.016 // (mm) Distance from real junction edge
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define JUNCTION_DEVIATION_MM 0.018 // (mm) Distance from real junction edge
#endif
#endif
@@ -1130,10 +1125,11 @@
* - normally-closed switches to GND and D32.
* - normally-open switches to 5V and D32.
*
* If you need to change the Z_MIN_PROBE_PIN, please do this
* in the file pins_RAMPS.h or pins_RAMPS_CHIRON.h !
*
*/
#if ENABLED(KNUTWURST_BLTOUCH)
#define Z_MIN_PROBE_PIN 2 // Pin 32 is the RAMPS default
#endif
/**
* Probe Type
@@ -1147,8 +1143,8 @@
* Use G29 repeatedly, adjusting the Z height at each point with movement commands
* or (with LCD_BED_LEVELING) the LCD controller.
*/
#if DISABLED(KNUTWURST_BLTOUCH)
#define PROBE_MANUALLY
#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_TFT_LEVELING)
#define PROBE_MANUALLY
#endif
//#define MANUAL_PROBE_START_Z 0.2
@@ -1168,6 +1164,10 @@
/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
#if ENABLED(KNUTWURST_TFT_LEVELING)
#define Z_PROBE_SERVO_NR 0
#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles
#endif
//#define Z_PROBE_SERVO_NR 0 // Defaults to SERVO 0 connector.
//#define Z_SERVO_ANGLES { 70, 0 } // Z Servo Deploy and Stow angles
@@ -1249,23 +1249,34 @@
* Specify a Probe position as { X, Y, Z }
*/
#if ENABLED(KNUTWURST_BLTOUCH)
#define NOZZLE_TO_PROBE_OFFSET { -2, -25, 0 } //https://www.thingiverse.com/thing:2824005
#define NOZZLE_TO_PROBE_OFFSET { -2, -25, -0.4 } //https://www.thingiverse.com/thing:2824005
//#define NOZZLE_TO_PROBE_OFFSET { 29, -15, 0 } //X-Carriage
#endif
#if DISABLED(KNUTWURST_BLTOUCH)
#if ENABLED(KNUTWURST_TFT_LEVELING)
//#define NOZZLE_TO_PROBE_OFFSET { 0, 0, -17 } // Chiron Default Value!
#define NOZZLE_TO_PROBE_OFFSET { 0, 0, -16.8 }
#endif
#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_TFT_LEVELING)
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
#endif
// Most probes should stay away from the edges of the bed, but
// with NOZZLE_AS_PROBE this can be negative for a wider probing area.
#define MIN_PROBE_EDGE 30
#if ENABLED(KNUTWURST_CHIRON)
#define MIN_PROBE_EDGE 15
#else
#define MIN_PROBE_EDGE 30
#endif
// X and Y axis travel speed (mm/m) between probes
#define XY_PROBE_SPEED 8000
// Feedrate (mm/m) for the first approach when double-probing (MULTIPLE_PROBING == 2)
#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z
#define Z_PROBE_SPEED_FAST 600//HOMING_FEEDRATE_Z
// Feedrate (mm/m) for the "accurate" probe of each point
#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)
@@ -1296,23 +1307,18 @@
* Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
* But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
*/
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_DEPLOY_PROBE 20 // Z Clearance for Deploy/Stow
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
#define Z_CLEARANCE_MULTI_PROBE 5 // Z Clearance between multiple probes
//#define Z_AFTER_PROBING 5 // Z position after probing is done
#if ENABLED(KNUTWURST_BLTOUCH)
#define Z_PROBE_LOW_POINT -10 // Farthest distance below the trigger-point to go before stopping
#endif
#if DISABLED(KNUTWURST_BLTOUCH)
#define Z_PROBE_LOW_POINT -2 // Farthest distance below the trigger-point to go before stopping
#endif
#define Z_PROBE_LOW_POINT -12 // Farthest distance below the trigger-point to go before stopping
// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
#define Z_PROBE_OFFSET_RANGE_MIN -30
#define Z_PROBE_OFFSET_RANGE_MAX 30
// Enable the M48 repeatability test to test probe accuracy
#if ENABLED(KNUTWURST_BLTOUCH)
@@ -1410,6 +1416,29 @@
#define INVERT_E6_DIR false
#define INVERT_E7_DIR false
#endif
#if ENABLED(KNUTWURST_CHIRON)
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR true // set to true for stock drivers or TMC2208 with reversed connectors
#define INVERT_Y_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
#define INVERT_Z_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
#if ENABLED(KNUTWURST_BMG)
#define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
#else
#define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors
#endif
#define INVERT_E1_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
#define INVERT_E5_DIR false
#define INVERT_E6_DIR false
#define INVERT_E7_DIR false
#endif
#endif
#if ENABLED(KNUTWURST_TMC)
@@ -1457,6 +1486,29 @@
#define INVERT_E6_DIR false
#define INVERT_E7_DIR false
#endif
#if ENABLED(KNUTWURST_CHIRON)
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR false // set to true for stock drivers or TMC2208 with reversed connectors
#define INVERT_Y_DIR false // set to false for stock drivers or TMC2208 with reversed connectors
#define INVERT_Z_DIR false // set to false for stock drivers or TMC2208 with reversed connectors
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
#if ENABLED(KNUTWURST_BMG)
#define INVERT_E0_DIR false // set to false for stock drivers or TMC2208 with reversed connectors
#else
#define INVERT_E0_DIR true // set to false for stock drivers or TMC2208 with reversed connectors
#endif
#define INVERT_E1_DIR false // set to false for stock drivers or TMC2208 with reversed connectors
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
#define INVERT_E5_DIR false
#define INVERT_E6_DIR false
#define INVERT_E7_DIR false
#endif
#endif
// @section homing
@@ -1487,25 +1539,50 @@
#endif
*/
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P)
#if ENABLED(KNUTWURST_MEGA)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_BED_SIZE 215
#define Y_BED_SIZE 215
#define Z_MAX_POS 206
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#endif
#if ANY(KNUTWURST_MEGA_S, KNUTWURST_MEGA_P)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_BED_SIZE 225
#define Y_BED_SIZE 220
#define Z_BED_HEIGHT 210
#define Z_MAX_POS 210
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#endif
#if ENABLED(KNUTWURST_MEGA_X)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_BED_SIZE 310
#define Y_BED_SIZE 310
#define Z_BED_HEIGHT 305
#define Z_MAX_POS 305
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define X_MIN_POS -10
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_BED_SIZE 400
#define Y_BED_SIZE 400
#define Z_MAX_POS 455
#define X_MAX_POS X_BED_SIZE +10
#define Y_MAX_POS Y_BED_SIZE +10
#endif
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS Z_BED_HEIGHT
/**
* Software Endstops
@@ -1606,7 +1683,7 @@
* leveling in steps so you can manually adjust the Z height at each grid-point.
* With an LCD controller the process is guided step-by-step.
*/
#if ENABLED(KNUTWURST_BLTOUCH)
#if EITHER(KNUTWURST_BLTOUCH, KNUTWURST_TFT_LEVELING)
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
#define AUTO_BED_LEVELING_BILINEAR
@@ -1614,7 +1691,7 @@
//#define MESH_BED_LEVELING
#endif
#if DISABLED(KNUTWURST_BLTOUCH)
#if NONE(KNUTWURST_BLTOUCH, KNUTWURST_TFT_LEVELING)
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR
@@ -1626,7 +1703,7 @@
* Normally G28 leaves leveling disabled on completion. Enable
* this option to have G28 restore the prior leveling state.
*/
#define RESTORE_LEVELING_AFTER_G28
#define RESTORE_LEVELING_AFTER_G28 // Disabled due to some bugs regarding BLTouch leveling
/**
* Enable detailed logging of G28, G29, M48, etc.
@@ -1634,7 +1711,7 @@
* NOTE: Requires a lot of PROGMEM!
*/
#if ENABLED(KNUTWURST_DEBUG)
#define DEBUG_LEVELING_FEATURE
#define DEBUG_LEVELING_FEATURE
#endif
#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL)
@@ -1673,6 +1750,7 @@
// Probe along the Y axis, advancing X after each column
//#define PROBE_Y_FIRST
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
// Beyond the probed grid, continue the implied tilt?
@@ -1715,9 +1793,15 @@
//=================================== Mesh ==================================
//===========================================================================
#define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed
#define GRID_MAX_POINTS_X 5 // Don't use more than 7 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#if ENABLED(KNUTWURST_CHIRON)
#define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed
#define GRID_MAX_POINTS_X 3 // Don't use more than 7 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#else
#define MESH_INSET 10 // Set Mesh bounds as an inset region of the bed
#define GRID_MAX_POINTS_X 5 // Don't use more than 7 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#endif
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest Z at Z_MIN_POS
@@ -1791,6 +1875,12 @@
#define HOMING_FEEDRATE_Z (6*60)
#endif
#if ENABLED(KNUTWURST_CHIRON)
// Homing speeds (mm/m)
#define HOMING_FEEDRATE_XY (30*60)
#define HOMING_FEEDRATE_Z (6*60)
#endif
// Validate that endstops are triggered on homing moves
#define VALIDATE_HOMING_ENDSTOPS
@@ -2679,7 +2769,9 @@
* Set this manually if there are extra servos needing manual control.
* Leave undefined or set to 0 to entirely disable the servo subsystem.
*/
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
#if ENABLED(KNUTWURST_TFT_LEVELING)
#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
#endif
// (ms) Delay before the next move will start, to give the servo time to reach its target angle.
// 300ms is a good value but you can try less delay.

View File

@@ -152,42 +152,61 @@
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
*/
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
#define THERMAL_PROTECTION_PERIOD 10 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 15 // Degrees Celsius
#if ENABLED(KNUTWURST_CHIRON)
#define THERMAL_PROTECTION_PERIOD 60 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 20 // Degrees Celsius
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
#if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP)
//#define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303
#endif
#define WATCH_TEMP_PERIOD 60 // Seconds
#define WATCH_TEMP_INCREASE 10 // Degrees Celsius
#else
#define THERMAL_PROTECTION_PERIOD 10 // Seconds
#define THERMAL_PROTECTION_HYSTERESIS 15 // Degrees Celsius
/**
* Whenever an M104, M109, or M303 increases the target temperature, the
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
* hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted and
* requires a hard reset. This test restarts with any M104/M109/M303, but only
* if the current temperature is far enough below the target for a reliable
* test.
*
* If you get false positives for "Heating failed", increase WATCH_TEMP_PERIOD
* and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
* below 2.
*/
#define WATCH_TEMP_PERIOD 30 // Seconds
#define WATCH_TEMP_INCREASE 3 // Degrees Celsius
//#define ADAPTIVE_FAN_SLOWING // Slow part cooling fan if temperature drops
#if BOTH(ADAPTIVE_FAN_SLOWING, PIDTEMP)
//#define NO_FAN_SLOWING_IN_PID_TUNING // Don't slow fan speed during M303
#endif
/**
* Whenever an M104, M109, or M303 increases the target temperature, the
* firmware will wait for the WATCH_TEMP_PERIOD to expire. If the temperature
* hasn't increased by WATCH_TEMP_INCREASE degrees, the machine is halted and
* requires a hard reset. This test restarts with any M104/M109/M303, but only
* if the current temperature is far enough below the target for a reliable
* test.
*
* If you get false positives for "Heating failed", increase WATCH_TEMP_PERIOD
* and/or decrease WATCH_TEMP_INCREASE. WATCH_TEMP_INCREASE should not be set
* below 2.
*/
#define WATCH_TEMP_PERIOD 30 // Seconds
#define WATCH_TEMP_INCREASE 3 // Degrees Celsius
#endif
#endif
/**
* Thermal Protection parameters for the bed are just as above for hotends.
*/
#if ENABLED(THERMAL_PROTECTION_BED)
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
#if ENABLED(KNUTWURST_CHIRON)
#define THERMAL_PROTECTION_BED_PERIOD 40 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 10 // Degrees Celsius
/**
* As described above, except for the bed (M140/M190/M303).
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
/**
* As described above, except for the bed (M140/M190/M303).
*/
#define WATCH_BED_TEMP_PERIOD 120 // Seconds
#define WATCH_BED_TEMP_INCREASE 10 // Degrees Celsius
#else
#define THERMAL_PROTECTION_BED_PERIOD 20 // Seconds
#define THERMAL_PROTECTION_BED_HYSTERESIS 2 // Degrees Celsius
/**
* As described above, except for the bed (M140/M190/M303).
*/
#define WATCH_BED_TEMP_PERIOD 60 // Seconds
#define WATCH_BED_TEMP_INCREASE 2 // Degrees Celsius
#endif
#endif
/**
@@ -306,7 +325,13 @@
// The number of consecutive low temperature errors that can occur
// before a min_temp_error is triggered. (Shouldn't be more than 10.)
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
#if ENABLED(KNUTWURST_CHIRON)
#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 3
#else
//#define MAX_CONSECUTIVE_LOW_TEMPERATURE_ERROR_ALLOWED 0
#endif
// The number of milliseconds a hotend will preheat before starting to check
// the temperature. This value should NOT be set to the time it takes the
@@ -341,7 +366,7 @@
* Controller Fan
* To cool down the stepper drivers and MOSFETs.
*
* The fan turns on automatically whenever any driver is enabled and turns
* The fan turns on automatically whenever any driver is enabled and turns
* off (or reduces to idle speed) shortly after drivers are turned off.
*
*/
@@ -424,25 +449,13 @@
* the fan will turn on when any selected extruder is above the threshold.
*/
#if EITHER(KNUTWURST_MEGA, KNUTWURST_MEGA_S)
#define E0_AUTO_FAN_PIN FAN2_PIN
#define E1_AUTO_FAN_PIN -1
#define E2_AUTO_FAN_PIN -1
#define E3_AUTO_FAN_PIN -1
#define E4_AUTO_FAN_PIN -1
#define E5_AUTO_FAN_PIN -1
#define CHAMBER_AUTO_FAN_PIN -1
#endif
#if ENABLED(KNUTWURST_MEGAX)
#define E0_AUTO_FAN_PIN -1
#define E1_AUTO_FAN_PIN -1
#define E2_AUTO_FAN_PIN -1
#define E3_AUTO_FAN_PIN -1
#define E4_AUTO_FAN_PIN -1
#define E5_AUTO_FAN_PIN -1
#define CHAMBER_AUTO_FAN_PIN -1
#endif
#define E0_AUTO_FAN_PIN FAN2_PIN
#define E1_AUTO_FAN_PIN -1
#define E2_AUTO_FAN_PIN -1
#define E3_AUTO_FAN_PIN -1
#define E4_AUTO_FAN_PIN -1
#define E5_AUTO_FAN_PIN -1
#define CHAMBER_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
@@ -541,7 +554,14 @@
#define Z_MULTI_ENDSTOPS
#endif
#if ENABLED(Z_MULTI_ENDSTOPS)
#define Z2_USE_ENDSTOP _XMAX_
#if ANY(KNUTWURST_MEGA, KNUTWURST_MEGA_S, KNUTWURST_MEGA_P, KNUTWURST_MEGA_X)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#if ENABLED(KNUTWURST_CHIRON)
#define Z2_USE_ENDSTOP _XMAX_
#endif
#define Z2_ENDSTOP_ADJUSTMENT 0
#if NUM_Z_STEPPER_DRIVERS >= 3
#define Z3_USE_ENDSTOP _YMAX_
@@ -615,8 +635,9 @@
#define Z_HOME_BUMP_MM 2
#define HOMING_BUMP_DIVISOR { 2, 2, 4 } // Re-Bump Speed Divisor (Divides the Homing Feedrate)
//#define QUICK_HOME // If homing includes X and Y, do a diagonal move initially
//#define HOMING_BACKOFF_MM { 2, 2, 2 } // (mm) Move away from the endstops after homing
#if DISABLED(KNUTWURST_CHIRON)
#define HOMING_BACKOFF_MM { 2, 2, 0 } // (mm) Move away from the endstops after homing
#endif
// When G28 is called, this option will make Y home before X
//#define HOME_Y_BEFORE_X
@@ -683,7 +704,7 @@
* This feature was designed for Delta's with very fast Z moves however higher speed cartesians may function
* If the machine cannot raise the probe fast enough after a trigger, it may enter a fault state.
*/
//#define BLTOUCH_HS_MODE
#define BLTOUCH_HS_MODE
// Safety: Enable voltage mode settings in the LCD menu.
//#define BLTOUCH_LCD_VOLTAGE_MENU
@@ -765,7 +786,7 @@
// Default stepper release if idle. Set to 0 to deactivate.
// Steppers will shut down DEFAULT_STEPPER_DEACTIVE_TIME seconds after the last move when DISABLE_INACTIVE_? is true.
// Time can be set by M18 and M84.
#define DEFAULT_STEPPER_DEACTIVE_TIME 120
#define DEFAULT_STEPPER_DEACTIVE_TIME 180
#define DISABLE_INACTIVE_X true
#define DISABLE_INACTIVE_Y true
#define DISABLE_INACTIVE_Z true // Set to false if the nozzle will fall down on your printed part when print has finished.
@@ -1487,9 +1508,7 @@
*
* Warning: Does not respect endstops!
*/
#if ENABLED(KNUTWURST_BLTOUCH)
#define BABYSTEPPING
#endif
#define BABYSTEPPING
#if ENABLED(BABYSTEPPING)
//#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR
//#define BABYSTEP_WITHOUT_HOMING
@@ -1539,7 +1558,7 @@
#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE)
//#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants
#define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed
#define LIN_ADVANCE_K 0.0 // Unit: mm compression per 1mm/s extruder speed
//#define LA_DEBUG // If enabled, this will generate debug information output over USB.
#endif
@@ -1576,29 +1595,20 @@
* the probe to be unable to reach any points.
*/
#if ENABLED(KNUTWURST_BLTOUCH)
#if PROBE_SELECTED && !IS_KINEMATIC
#define MIN_PROBE_EDGE_LEFT 10
#define MIN_PROBE_EDGE_RIGHT 10
#define MIN_PROBE_EDGE_FRONT 10
#define MIN_PROBE_EDGE_BACK 10
#endif
#endif
#if DISABLED(KNUTWURST_BLTOUCH)
#if PROBE_SELECTED && !IS_KINEMATIC
//#define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
//#define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE
//#define MIN_PROBE_EDGE_FRONT MIN_PROBE_EDGE
//#define MIN_PROBE_EDGE_BACK MIN_PROBE_EDGE
#endif
#if PROBE_SELECTED && !IS_KINEMATIC
#define MIN_PROBE_EDGE_LEFT 10
#define MIN_PROBE_EDGE_RIGHT 10
#define MIN_PROBE_EDGE_FRONT 10
#define MIN_PROBE_EDGE_BACK 10
#endif
#endif
#if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL)
// Override the mesh area if the automatic (max) area is too large
//#define MESH_MIN_X MESH_INSET
//#define MESH_MIN_Y MESH_INSET
//#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
//#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
#define MESH_MIN_X MESH_INSET
#define MESH_MIN_Y MESH_INSET
#define MESH_MAX_X X_BED_SIZE - (MESH_INSET)
#define MESH_MAX_Y Y_BED_SIZE - (MESH_INSET)
#endif
/**
@@ -1663,11 +1673,11 @@
//
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
#if ENABLED(ARC_SUPPORT)
#define MM_PER_ARC_SEGMENT 0 // (mm) Length (or minimum length) of each arc segment (default: 1)
#define MM_PER_ARC_SEGMENT 1 // (mm) Length (or minimum length) of each arc segment (default: 1)
//#define ARC_SEGMENTS_PER_R 1 // Max segment length, MM_PER = Min
#define MIN_ARC_SEGMENTS 0 // Minimum number of segments in a complete circle (default: 24)
#define MIN_ARC_SEGMENTS 24 // Minimum number of segments in a complete circle (default: 24)
//#define ARC_SEGMENTS_PER_SEC 50 // Use feedrate to choose segment length (with MM_PER_ARC_SEGMENT as the minimum)
//#define N_ARC_CORRECTION 25 // Number of interpolated segments between corrections
#define N_ARC_CORRECTION 25 // Number of interpolated 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
@@ -1704,8 +1714,10 @@
*
* Override the default value based on the driver type set in Configuration.h.
*/
#define MINIMUM_STEPPER_POST_DIR_DELAY 650
#define MINIMUM_STEPPER_PRE_DIR_DELAY 650
#if NONE(KNUTWURST_MEGA_P, KNUTWURST_TMC)
//#define MINIMUM_STEPPER_POST_DIR_DELAY 200
//#define MINIMUM_STEPPER_PRE_DIR_DELAY 200
#endif
/**
* Minimum stepper driver pulse width (in µs)
@@ -1718,8 +1730,9 @@
*
* Override the default value based on the driver type set in Configuration.h.
*/
#define MINIMUM_STEPPER_PULSE 2
#if NONE(KNUTWURST_MEGA_P, KNUTWURST_TMC)
//#define MINIMUM_STEPPER_PULSE 1
#endif
/**
* Maximum stepping rate (in Hz) the stepper driver allows
* If undefined, defaults to 1MHz / (2 * MINIMUM_STEPPER_PULSE)
@@ -1745,34 +1758,49 @@
// @section hidden
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2 (e.g. 8, 16, 32) because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
/*
#if ENABLED(KNUTWURST_CHIRON)
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 8 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
#define MAX_CMD_SIZE 96
#define BUFSIZE 4
#define TX_BUFFER_SIZE 0
#define RX_BUFFER_SIZE 64
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
*/
// The number of linear motions that can be in the plan at any give time.
// THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2 (e.g. 8, 16, 32) because shifts and ors are used to do the ring-buffering.
#if ENABLED(SDSUPPORT)
#define BLOCK_BUFFER_SIZE 16 // SD,LCD,Buttons take more memory, block buffer needs to be smaller
#else
#define BLOCK_BUFFER_SIZE 16 // maximize block buffer
#endif
// @section serial
// @section serial
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 128
#define BUFSIZE 8
// The ASCII buffer for serial input
#define MAX_CMD_SIZE 128
#define BUFSIZE 8
// Transmission to Host Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0, 2, 4, 8, 16, 32, 64, 128, 256]
#define TX_BUFFER_SIZE 4
// Transmission to Host Buffer Size
// To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0.
// To buffer a simple "ok" you need 4 bytes.
// For ADVANCED_OK (M105) you need 32 bytes.
// For debug-echo: 128 bytes for the optimal speed.
// Other output doesn't need to be that speedy.
// :[0, 2, 4, 8, 16, 32, 64, 128, 256]
#define TX_BUFFER_SIZE 0
// Host Receive Buffer Size
// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
// To use flow control, set this buffer size to at least 1024 bytes.
// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
#define RX_BUFFER_SIZE 256
// Host Receive Buffer Size
// Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough.
// To use flow control, set this buffer size to at least 1024 bytes.
// :[0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
#define RX_BUFFER_SIZE 256
//#endif
#if RX_BUFFER_SIZE >= 1024
// Enable to have the controller send XON/XOFF control characters to
@@ -3178,3 +3206,5 @@
//#define KNUTWURST_MEGAS_ADV
//#define KNUTWURST_TMC_ADV
#define MEATPACK // Support for MeatPack G-code compression (https://github.com/scottmudge/OctoPrint-MeatPack)

View File

@@ -994,7 +994,7 @@ void setup() {
uint32_t serial_connect_timeout = millis() + 1000UL;
while (!MYSERIAL0 && PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
#if NUM_SERIAL > 1
MYSERIAL1.begin(BAUDRATE);
MYSERIAL1.begin(BAUDRATE_2);
serial_connect_timeout = millis() + 1000UL;
while (!MYSERIAL1 && PENDING(millis(), serial_connect_timeout)) { /*nada*/ }
#endif

View File

@@ -104,6 +104,7 @@
#define BOARD_TANGO 1148 // BIQU Tango V1
#define BOARD_MKS_GEN_L_V2 1149 // MKS GEN L V2
#define BOARD_COPYMASTER_3D 1150 // Copymaster 3D
#define BOARD_TRIGORILLA_CHIRON 1151 // TriGorilla Anycubic version 1.4 based on RAMPS EFB for Chiron
//
// RAMBo and derivatives

View File

@@ -29,7 +29,7 @@ static const char errormagic[] PROGMEM = "Error:";
static const char echomagic[] PROGMEM = "echo:";
#if NUM_SERIAL > 1
int8_t serial_port_index = 0;
serial_index_t serial_port_index = 0;
#endif
void serialprintPGM(PGM_P str) {

View File

@@ -45,10 +45,10 @@ enum MarlinDebugFlags : uint8_t {
extern uint8_t marlin_debug_flags;
#define DEBUGGING(F) (marlin_debug_flags & (MARLIN_DEBUG_## F))
typedef int8_t serial_index_t;
#define SERIAL_BOTH 0x7F
#if NUM_SERIAL > 1
extern int8_t serial_port_index;
extern serial_index_t serial_port_index;
#define _PORT_REDIRECT(n,p) REMEMBER(n,serial_port_index,p)
#define _PORT_RESTORE(n) RESTORE(n)
#define SERIAL_OUT(WHAT, V...) do{ \

View File

@@ -0,0 +1,228 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
*
*/
/**
* MeatPack G-code Compression
*
* Algorithm & Implementation: Scott Mudge - mail@scottmudge.com
* Date: Dec. 2020
*
* Character Frequencies from ~30 MB of comment-stripped gcode:
* '1' -> 4451136 '4' -> 1353273 '\n' -> 1087683 '-' -> 90242
* '0' -> 4253577 '9' -> 1352147 'G' -> 1075806 'Z' -> 34109
* ' ' -> 3053297 '3' -> 1262929 'X' -> 975742 'M' -> 11879
* '.' -> 3035310 '5' -> 1189871 'E' -> 965275 'S' -> 9910
* '2' -> 1523296 '6' -> 1127900 'Y' -> 965274
* '8' -> 1366812 '7' -> 1112908 'F' -> 99416
*
* When space is omitted the letter 'E' is used in its place
*/
#include "../inc/MarlinConfig.h"
#if ENABLED(MEATPACK)
#include "meatpack.h"
MeatPack meatpack;
#define MeatPack_ProtocolVersion "PV01"
//#define MP_DEBUG
#define DEBUG_OUT ENABLED(MP_DEBUG)
#include "../core/debug_out.h"
bool MeatPack::cmd_is_next = false; // A command is pending
uint8_t MeatPack::state = 0; // Configuration state OFF
uint8_t MeatPack::second_char = 0; // The unpacked 2nd character from an out-of-sequence packed pair
uint8_t MeatPack::cmd_count = 0, // Counts how many command bytes are received (need 2)
MeatPack::full_char_count = 0, // Counts how many full-width characters are to be received
MeatPack::char_out_count = 0; // Stores number of characters to be read out.
uint8_t MeatPack::char_out_buf[2]; // Output buffer for caching up to 2 characters
// The 15 most-common characters used in G-code, ~90-95% of all G-code uses these characters
// Stored in SRAM for performance.
uint8_t meatPackLookupTable[16] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'.', ' ', '\n', 'G', 'X',
'\0' // Unused. 0b1111 indicates a literal character
};
TERN_(MP_DEBUG, uint8_t chars_decoded = 0); // Log the first 64 bytes after each reset
void MeatPack::reset_state() {
state = 0;
cmd_is_next = false;
second_char = 0;
cmd_count = full_char_count = char_out_count = 0;
TERN_(MP_DEBUG, chars_decoded = 0);
}
/**
* Unpack one or two characters from a packed byte into a buffer.
* Return flags indicating whether any literal bytes follow.
*/
uint8_t MeatPack::unpack_chars(const uint8_t pk, uint8_t* __restrict const chars_out) {
uint8_t out = 0;
// If lower nybble is 1111, the higher nybble is unused, and next char is full.
if ((pk & kFirstNotPacked) == kFirstNotPacked)
out = kFirstCharIsLiteral;
else {
const uint8_t chr = pk & 0x0F;
chars_out[0] = meatPackLookupTable[chr]; // Set the first char
}
// Check if upper nybble is 1111... if so, we don't need the second char.
if ((pk & kSecondNotPacked) == kSecondNotPacked)
out |= kSecondCharIsLiteral;
else {
const uint8_t chr = (pk >> 4) & 0x0F;
chars_out[1] = meatPackLookupTable[chr]; // Set the second char
}
return out;
}
/**
* Interpret a single (non-command) character
* according to the current MeatPack state.
*/
void MeatPack::handle_rx_char_inner(const uint8_t c) {
if (TEST(state, MPConfig_Bit_Active)) { // Is MeatPack active?
if (!full_char_count) { // No literal characters to fetch?
uint8_t buf[2] = { 0, 0 };
register const uint8_t res = unpack_chars(c, buf); // Decode the byte into one or two characters.
if (res & kFirstCharIsLiteral) { // The 1st character couldn't be packed.
++full_char_count; // So the next stream byte is a full character.
if (res & kSecondCharIsLiteral) ++full_char_count; // The 2nd character couldn't be packed. Another stream byte is a full character.
else second_char = buf[1]; // Retain the unpacked second character.
}
else {
handle_output_char(buf[0]); // Send the unpacked first character out.
if (buf[0] != '\n') { // After a newline the next char won't be set
if (res & kSecondCharIsLiteral) ++full_char_count; // The 2nd character couldn't be packed. The next stream byte is a full character.
else handle_output_char(buf[1]); // Send the unpacked second character out.
}
}
}
else {
handle_output_char(c); // Pass through the character that couldn't be packed...
if (second_char) {
handle_output_char(second_char); // ...and send an unpacked 2nd character, if set.
second_char = 0;
}
--full_char_count; // One literal character was consumed
}
}
else // Packing not enabled, just copy character to output
handle_output_char(c);
}
/**
* Buffer a single output character which will be picked up in
* GCodeQueue::get_serial_commands via calls to get_result_char
*/
void MeatPack::handle_output_char(const uint8_t c) {
char_out_buf[char_out_count++] = c;
#if ENABLED(MP_DEBUG)
if (chars_decoded < 1024) {
++chars_decoded;
DEBUG_ECHOPGM("RB: ");
MYSERIAL.print((char)c);
DEBUG_EOL();
}
#endif
}
/**
* Process a MeatPack command byte to update the state.
* Report the new state to serial.
*/
void MeatPack::handle_command(const MeatPack_Command c) {
switch (c) {
case MPCommand_QueryConfig: break;
case MPCommand_EnablePacking: SBI(state, MPConfig_Bit_Active); DEBUG_ECHOLNPGM("[MPDBG] ENA REC"); break;
case MPCommand_DisablePacking: CBI(state, MPConfig_Bit_Active); DEBUG_ECHOLNPGM("[MPDBG] DIS REC"); break;
case MPCommand_ResetAll: reset_state(); DEBUG_ECHOLNPGM("[MPDBG] RESET REC"); break;
case MPCommand_EnableNoSpaces:
SBI(state, MPConfig_Bit_NoSpaces);
meatPackLookupTable[kSpaceCharIdx] = kSpaceCharReplace; DEBUG_ECHOLNPGM("[MPDBG] ENA NSP"); break;
case MPCommand_DisableNoSpaces:
CBI(state, MPConfig_Bit_NoSpaces);
meatPackLookupTable[kSpaceCharIdx] = ' '; DEBUG_ECHOLNPGM("[MPDBG] DIS NSP"); break;
default: DEBUG_ECHOLNPGM("[MPDBG] UNK CMD REC");
}
report_state();
}
void MeatPack::report_state() {
// NOTE: if any configuration vars are added below, the outgoing sync text for host plugin
// should not contain the "PV' substring, as this is used to indicate protocol version
SERIAL_ECHOPGM("[MP] ");
SERIAL_ECHOPGM(MeatPack_ProtocolVersion " ");
serialprint_onoff(TEST(state, MPConfig_Bit_Active));
serialprintPGM(TEST(state, MPConfig_Bit_NoSpaces) ? PSTR(" NSP\n") : PSTR(" ESP\n"));
}
/**
* Interpret a single character received from serial
* according to the current meatpack state.
*/
void MeatPack::handle_rx_char(const uint8_t c, const serial_index_t serial_ind) {
if (c == kCommandByte) { // A command (0xFF) byte?
if (cmd_count) { // In fact, two in a row?
cmd_is_next = true; // Then a MeatPack command follows
cmd_count = 0;
}
else
++cmd_count; // cmd_count = 1 // One command byte received so far...
return;
}
if (cmd_is_next) { // Were two command bytes received?
PORT_REDIRECT(serial_ind);
handle_command((MeatPack_Command)c); // Then the byte is a MeatPack command
cmd_is_next = false;
return;
}
if (cmd_count) { // Only a single 0xFF was received
handle_rx_char_inner(kCommandByte); // A single 0xFF is passed on literally so it can be interpreted as kFirstNotPacked|kSecondNotPacked
cmd_count = 0;
}
handle_rx_char_inner(c); // Other characters are passed on for MeatPack decoding
}
uint8_t MeatPack::get_result_char(char* const __restrict out) {
uint8_t res = 0;
if (char_out_count) {
res = char_out_count;
char_out_count = 0;
for (register uint8_t i = 0; i < res; ++i)
out[i] = (char)char_out_buf[i];
}
return res;
}
#endif // MEATPACK

View File

@@ -0,0 +1,123 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
*
*/
/*
* MeatPack G-code Compression
*
* Algorithm & Implementation: Scott Mudge - mail@scottmudge.com
* Date: Dec. 2020
*
* Specifically optimized for 3D printing G-Code, this is a zero-cost data compression method
* which packs ~180-190% more data into the same amount of bytes going to the CNC controller.
* As a majority of G-Code can be represented by a restricted alphabet, I performed histogram
* analysis on a wide variety of 3D printing gcode samples, and found ~93% of all gcode could
* be represented by the same 15-character alphabet.
*
* This allowed me to design a system of packing 2 8-bit characters into a single byte, assuming
* they fall within this limited 15-character alphabet. Using a 4-bit lookup table, these 8-bit
* characters can be represented by a 4-bit index.
*
* Combined with some logic to allow commingling of full-width characters outside of this 15-
* character alphabet (at the cost of an extra 8-bits per full-width character), and by stripping
* out unnecessary comments, the end result is gcode which is roughly half the original size.
*
* Why did I do this? I noticed micro-stuttering and other data-bottleneck issues while printing
* objects with high curvature, especially at high speeds. There is also the issue of the limited
* baud rate provided by Prusa's Atmega2560-based boards, over the USB serial connection. So soft-
* ware like OctoPrint would also suffer this same micro-stuttering and poor print quality issue.
*
*/
#pragma once
#include <stdint.h>
/**
* Commands sent to MeatPack to control its behavior.
* They are sent by first sending 2x MeatPack_CommandByte (0xFF) in sequence,
* followed by one of the command bytes below.
* Provided that 0xFF is an exceedingly rare character that is virtually never
* present in G-code naturally, it is safe to assume 2 in sequence should never
* happen naturally, and so it is used as a signal here.
*
* 0xFF *IS* used in "packed" G-code (used to denote that the next 2 characters are
* full-width), however 2 in a row will never occur, as the next 2 bytes will always
* some non-0xFF character.
*/
enum MeatPack_Command : uint8_t {
MPCommand_None = 0,
MPCommand_EnablePacking = 0xFB,
MPCommand_DisablePacking = 0xFA,
MPCommand_ResetAll = 0xF9,
MPCommand_QueryConfig = 0xF8,
MPCommand_EnableNoSpaces = 0xF7,
MPCommand_DisableNoSpaces = 0xF6
};
enum MeatPack_ConfigStateBits : uint8_t {
MPConfig_Bit_Active = 0,
MPConfig_Bit_NoSpaces = 1
};
class MeatPack {
private:
friend class GCodeQueue;
// Utility definitions
static const uint8_t kCommandByte = 0b11111111,
kFirstNotPacked = 0b00001111,
kSecondNotPacked = 0b11110000,
kFirstCharIsLiteral = 0b00000001,
kSecondCharIsLiteral = 0b00000010;
static const uint8_t kSpaceCharIdx = 11;
static const char kSpaceCharReplace = 'E';
static bool cmd_is_next; // A command is pending
static uint8_t state; // Configuration state
static uint8_t second_char; // Buffers a character if dealing with out-of-sequence pairs
static uint8_t cmd_count, // Counter of command bytes received (need 2)
full_char_count, // Counter for full-width characters to be received
char_out_count; // Stores number of characters to be read out.
static uint8_t char_out_buf[2]; // Output buffer for caching up to 2 characters
// Pass in a character rx'd by SD card or serial. Automatically parses command/ctrl sequences,
// and will control state internally.
static void handle_rx_char(const uint8_t c, const serial_index_t serial_ind);
/**
* After passing in rx'd char using above method, call this to get characters out.
* Can return from 0 to 2 characters at once.
* @param out [in] Output pointer for unpacked/processed data.
* @return Number of characters returned. Range from 0 to 2.
*/
static uint8_t get_result_char(char* const __restrict out);
static void reset_state();
static void report_state();
static uint8_t unpacked_char(register const uint8_t in);
static uint8_t unpack_chars(const uint8_t pk, uint8_t* __restrict const chars_out);
static void handle_command(const MeatPack_Command c);
static void handle_output_char(const uint8_t c);
static void handle_rx_char_inner(const uint8_t c);
};
extern MeatPack meatpack;

View File

@@ -67,7 +67,7 @@
#define G26_ERR true
#if ENABLED(ARC_SUPPORT)
void plan_arc(const xyze_pos_t &cart, const ab_float_t &offset, const uint8_t clockwise);
void plan_arc(const xyze_pos_t &cart, const ab_float_t &offset, const bool clockwise, const uint8_t);
#endif
/**
@@ -886,7 +886,7 @@ void GcodeSuite::G26()
const feedRate_t old_feedrate = feedrate_mm_s;
feedrate_mm_s = PLANNER_XY_FEEDRATE() * 0.1f;
plan_arc(endpoint, arc_offset, false); // Draw a counter-clockwise arc
plan_arc(endpoint, arc_offset, false, 0); // Draw a counter-clockwise arc
feedrate_mm_s = old_feedrate;
destination = current_position;

View File

@@ -36,6 +36,10 @@
#include "../../../module/probe.h"
#include "../../queue.h"
#if ENABLED(KNUTWURST_TFT_LEVELING)
#include "../../../lcd/HardwareSerial.h"
#endif
#if ENABLED(PROBE_TEMP_COMPENSATION)
#include "../../../feature/probe_temp_comp.h"
#include "../../../module/temperature.h"
@@ -811,6 +815,11 @@ G29_TYPE GcodeSuite::G29() {
if (!dryrun) extrapolate_unprobed_bed_level();
print_bilinear_leveling_grid();
#if ENABLED(KNUTWURST_TFT_LEVELING)
HARDWARE_SERIAL_PROTOCOLPGM("J25"); // Autoleveling done!
HARDWARE_SERIAL_ENTER();
#endif
refresh_bed_level();
#if ENABLED(ABL_BILINEAR_SUBDIVISION)

View File

@@ -112,5 +112,8 @@ void GcodeSuite::M115() {
// CHAMBER_TEMPERATURE (M141, M191)
cap_line(PSTR("CHAMBER_TEMPERATURE"), ENABLED(HAS_HEATED_CHAMBER));
// MEATPACK Compresson
cap_line(PSTR("MEATPACK"), ENABLED(MEATPACK));
#endif // EXTENDED_CAPABILITIES_REPORT
}

View File

@@ -53,7 +53,7 @@ void GcodeSuite::M118() {
}
#if NUM_SERIAL > 1
const int8_t old_serial = serial_port_index;
const serial_index_t old_serial = serial_port_index;
if (WITHIN(port, 0, NUM_SERIAL))
serial_port_index = (
port == 0 ? SERIAL_BOTH

View File

@@ -52,7 +52,8 @@
void plan_arc(
const xyze_pos_t &cart, // Destination position
const ab_float_t &offset, // Center of rotation relative to current_position
const uint8_t clockwise // Clockwise?
const bool clockwise, // Clockwise?
const uint8_t circles // Take the scenic route
) {
#if ENABLED(CNC_WORKSPACE_PLANES)
AxisEnum p_axis, q_axis, l_axis;
@@ -70,52 +71,90 @@ void plan_arc(
ab_float_t rvec = -offset;
const float radius = HYPOT(rvec.a, rvec.b),
#if ENABLED(AUTO_BED_LEVELING_UBL)
start_L = current_position[l_axis],
#endif
center_P = current_position[p_axis] - rvec.a,
center_Q = current_position[q_axis] - rvec.b,
rt_X = cart[p_axis] - center_P,
rt_Y = cart[q_axis] - center_Q,
linear_travel = cart[l_axis] - current_position[l_axis],
start_L = current_position[l_axis],
linear_travel = cart[l_axis] - start_L,
extruder_travel = cart.e - current_position.e;
// CCW angle of rotation between position and target from the circle center. Only one atan2() trig computation required.
float angular_travel = ATAN2(rvec.a * rt_Y - rvec.b * rt_X, rvec.a * rt_X + rvec.b * rt_Y);
if (angular_travel < 0) angular_travel += RADIANS(360);
#ifdef MIN_ARC_SEGMENTS
uint16_t min_segments = CEIL((MIN_ARC_SEGMENTS) * (angular_travel / RADIANS(360)));
NOLESS(min_segments, 1U);
uint16_t min_segments = MIN_ARC_SEGMENTS;
#else
constexpr uint16_t min_segments = 1;
#endif
if (clockwise) angular_travel -= RADIANS(360);
// Make a circle if the angular rotation is 0 and the target is current position
if (angular_travel == 0 && current_position[p_axis] == cart[p_axis] && current_position[q_axis] == cart[q_axis]) {
angular_travel = RADIANS(360);
// Angle of rotation between position and target from the circle center.
float angular_travel, abs_angular_travel;
// Do a full circle if starting and ending positions are "identical"
if (NEAR(current_position[p_axis], cart[p_axis]) && NEAR(current_position[q_axis], cart[q_axis])) {
// Preserve direction for circles
angular_travel = clockwise ? -RADIANS(360) : RADIANS(360);
abs_angular_travel = RADIANS(360);
}
else {
// Calculate the angle
angular_travel = ATAN2(rvec.a * rt_Y - rvec.b * rt_X, rvec.a * rt_X + rvec.b * rt_Y);
// Angular travel too small to detect? Just return.
if (!angular_travel) return;
// Make sure angular travel over 180 degrees goes the other way around.
switch (((angular_travel < 0) << 1) | clockwise) {
case 1: angular_travel -= RADIANS(360); break; // Positive but CW? Reverse direction.
case 2: angular_travel += RADIANS(360); break; // Negative but CCW? Reverse direction.
}
abs_angular_travel = ABS(angular_travel);
#ifdef MIN_ARC_SEGMENTS
min_segments = MIN_ARC_SEGMENTS;
min_segments = CEIL(min_segments * abs_angular_travel / RADIANS(360));
NOLESS(min_segments, 1U);
#endif
}
const float flat_mm = radius * angular_travel,
mm_of_travel = linear_travel ? HYPOT(flat_mm, linear_travel) : ABS(flat_mm);
if (ENABLED(ARC_P_CIRCLES) && circles) {
const float total_angular = abs_angular_travel + circles * RADIANS(360), // Total rotation with all circles and remainder
part_per_circle = RADIANS(360) / total_angular; // Each circle's part of the total
#if HAS_Z_AXIS
const float l_per_circle = linear_travel * part_per_circle; // L movement per circle
#endif
#if HAS_EXTRUDERS
const float e_per_circle = extruder_travel * part_per_circle; // E movement per circle
#endif
xyze_pos_t temp_position = current_position; // for plan_arc to compare to current_position
for (uint16_t n = circles; n--;) {
TERN_(HAS_EXTRUDERS, temp_position.e += e_per_circle); // Destination E axis
TERN_(HAS_Z_AXIS, temp_position[l_axis] += l_per_circle); // Destination L axis
plan_arc(temp_position, offset, clockwise, 0); // Plan a single whole circle
}
TERN_(HAS_Z_AXIS, linear_travel = cart[l_axis] - current_position[l_axis]);
TERN_(HAS_EXTRUDERS, extruder_travel = cart.e - current_position.e);
}
const float flat_mm = radius * abs_angular_travel,
mm_of_travel = linear_travel ? HYPOT(flat_mm, linear_travel) : flat_mm;
if (mm_of_travel < 0.001f) return;
const feedRate_t scaled_fr_mm_s = MMS_SCALED(feedrate_mm_s);
#ifdef ARC_SEGMENTS_PER_R
float seg_length = MM_PER_ARC_SEGMENT * radius;
LIMIT(seg_length, MM_PER_ARC_SEGMENT, ARC_SEGMENTS_PER_R);
#elif ARC_SEGMENTS_PER_SEC
float seg_length = scaled_fr_mm_s * RECIPROCAL(ARC_SEGMENTS_PER_SEC);
NOLESS(seg_length, MM_PER_ARC_SEGMENT);
#else
constexpr float seg_length = MM_PER_ARC_SEGMENT;
#endif
// Start with a nominal segment length
float seg_length = (
#ifdef ARC_SEGMENTS_PER_R
constrain(MM_PER_ARC_SEGMENT * radius, MM_PER_ARC_SEGMENT, ARC_SEGMENTS_PER_R)
#elif ARC_SEGMENTS_PER_SEC
_MAX(scaled_fr_mm_s * RECIPROCAL(ARC_SEGMENTS_PER_SEC), MM_PER_ARC_SEGMENT)
#else
MM_PER_ARC_SEGMENT
#endif
);
// Divide total travel by nominal segment length
uint16_t segments = FLOOR(mm_of_travel / seg_length);
NOLESS(segments, min_segments);
NOLESS(segments, min_segments); // At least some segments
seg_length = mm_of_travel / segments;
/**
* Vector rotation by transformation matrix: r is the original vector, r_T is the rotated vector,
@@ -146,10 +185,11 @@ void plan_arc(
// Vector rotation matrix values
xyze_pos_t raw;
const float theta_per_segment = angular_travel / segments,
linear_per_segment = linear_travel / segments,
extruder_per_segment = extruder_travel / segments,
sin_T = theta_per_segment,
cos_T = 1 - 0.5f * sq(theta_per_segment); // Small angle approximation
linear_per_segment = linear_travel / segments,
extruder_per_segment = extruder_travel / segments,
sq_theta_per_segment = sq(theta_per_segment),
sin_T = theta_per_segment - sq_theta_per_segment * theta_per_segment / 6,
cos_T = 1 - 0.5f * sq_theta_per_segment; // Small angle approximation
// Initialize the linear axis
raw[l_axis] = current_position[l_axis];
@@ -216,7 +256,7 @@ void plan_arc(
planner.apply_leveling(raw);
#endif
if (!planner.buffer_line(raw, scaled_fr_mm_s, active_extruder, seg_length
if (!planner.buffer_line(raw, scaled_fr_mm_s, active_extruder, 0 /* seg_length */
#if ENABLED(SCARA_FEEDRATE_SCALING)
, inv_duration
#endif
@@ -283,7 +323,7 @@ void GcodeSuite::G2_G3(const bool clockwise) {
relative_mode = true;
#endif
get_destination_from_command();
get_destination_from_command(); // Get X Y Z E F (and set cutter power)
#if ENABLED(SF_ARC_FIX)
relative_mode = relative_mode_backup;
@@ -328,13 +368,12 @@ void GcodeSuite::G2_G3(const bool clockwise) {
int8_t circles_to_do = parser.byteval('P');
if (!WITHIN(circles_to_do, 0, 100))
SERIAL_ERROR_MSG(STR_ERR_ARC_ARGS);
while (circles_to_do--)
plan_arc(current_position, arc_offset, clockwise);
#else
constexpr uint8_t circles_to_do = 0;
#endif
// Send the arc to the planner
plan_arc(destination, arc_offset, clockwise);
plan_arc(destination, arc_offset, clockwise, circles_to_do);
reset_stepper_timeout();
}
else

View File

@@ -43,6 +43,10 @@ GCodeQueue queue;
#include "../feature/binary_protocol.h"
#endif
#if ENABLED(MEATPACK)
#include "../feature/meatpack.h"
#endif
#if ENABLED(POWER_LOSS_RECOVERY)
#include "../feature/powerloss.h"
#endif
@@ -73,7 +77,7 @@ char GCodeQueue::command_buffer[BUFSIZE][MAX_CMD_SIZE];
* The port that the command was received on
*/
#if NUM_SERIAL > 1
int16_t GCodeQueue::port[BUFSIZE];
serial_index_t GCodeQueue::port[BUFSIZE];
#endif
/**
@@ -116,12 +120,12 @@ void GCodeQueue::clear() {
*/
void GCodeQueue::_commit_command(bool say_ok
#if NUM_SERIAL > 1
, int16_t p/*=-1*/
, serial_index_t serial_ind/*=-1*/
#endif
) {
send_ok[index_w] = say_ok;
#if NUM_SERIAL > 1
port[index_w] = p;
port[index_w] = serial_ind;
#endif
#if ENABLED(POWER_LOSS_RECOVERY)
recovery.commit_sdpos(index_w);
@@ -137,14 +141,14 @@ void GCodeQueue::_commit_command(bool say_ok
*/
bool GCodeQueue::_enqueue(const char* cmd, bool say_ok/*=false*/
#if NUM_SERIAL > 1
, int16_t pn/*=-1*/
, serial_index_t serial_ind/*=-1*/
#endif
) {
if (*cmd == ';' || length >= BUFSIZE) return false;
strcpy(command_buffer[index_w], cmd);
_commit_command(say_ok
#if NUM_SERIAL > 1
, pn
, serial_ind
#endif
);
return true;
@@ -256,9 +260,9 @@ void GCodeQueue::enqueue_now_P(PGM_P const pgcode) {
*/
void GCodeQueue::ok_to_send() {
#if NUM_SERIAL > 1
const int16_t pn = port[index_r];
if (pn < 0) return;
PORT_REDIRECT(pn); // Reply to the serial port that sent the command
const serial_index_t serial_ind = port[index_r];
if (serial_ind < 0) return; // Never mind. Command came from SD or Flash Drive
PORT_REDIRECT(serial_ind); // Reply to the serial port that sent the command
#endif
if (!send_ok[index_r]) return;
SERIAL_ECHOPGM(STR_OK);
@@ -282,9 +286,9 @@ void GCodeQueue::ok_to_send() {
*/
void GCodeQueue::flush_and_request_resend() {
#if NUM_SERIAL > 1
const int16_t pn = port[index_r];
if (pn < 0) return;
PORT_REDIRECT(pn); // Reply to the serial port that sent the command
const serial_index_t serial_ind = port[index_r];
if (serial_ind < 0) return;
PORT_REDIRECT(serial_ind); // Reply to the serial port that sent the command
#endif
SERIAL_FLUSH();
SERIAL_ECHOPGM(STR_RESEND);
@@ -311,14 +315,14 @@ inline int read_serial(const uint8_t index) {
}
}
void GCodeQueue::gcode_line_error(PGM_P const err, const int8_t pn) {
PORT_REDIRECT(pn); // Reply to the serial port that sent the command
void GCodeQueue::gcode_line_error(PGM_P const err, const serial_index_t serial_ind) {
PORT_REDIRECT(serial_ind); // Reply to the serial port that sent the command
SERIAL_ERROR_START();
serialprintPGM(err);
SERIAL_ECHOLN(last_N);
while (read_serial(pn) != -1); // Clear out the RX buffer
while (read_serial(serial_ind) != -1); // Clear out the RX buffer
flush_and_request_resend();
serial_count[pn] = 0;
serial_count[serial_ind] = 0;
}
FORCE_INLINE bool is_M29(const char * const cmd) { // matches "M29" & "M29 ", but not "M290", etc
@@ -383,11 +387,14 @@ inline void process_stream_char(const char c, uint8_t &sis, char (&buff)[MAX_CMD
* keep sensor readings going and watchdog alive.
*/
inline bool process_line_done(uint8_t &sis, char (&buff)[MAX_CMD_SIZE], int &ind) {
sis = PS_NORMAL;
buff[ind] = 0;
if (ind) { ind = 0; return false; }
thermalManager.manage_heater();
return true;
sis = PS_NORMAL; // "Normal" Serial Input State
buff[ind] = '\0'; // Of course, I'm a Terminator.
const bool is_empty = (ind == 0); // An empty line?
if (is_empty)
thermalManager.manage_heater(); // Keep sensors satisfied
else
ind = 0; // Start a new line
return is_empty; // Inform the caller
}
/**
@@ -427,105 +434,114 @@ void GCodeQueue::get_serial_commands() {
* Loop while serial characters are incoming and the queue is not full
*/
while (length < BUFSIZE && serial_data_available()) {
LOOP_L_N(i, NUM_SERIAL) {
LOOP_L_N(p, NUM_SERIAL) {
const int c = read_serial(i);
const int c = read_serial(p);
if (c < 0) continue;
const char serial_char = c;
#if ENABLED(MEATPACK)
meatpack.handle_rx_char(uint8_t(c), p);
char c_res[2] = { 0, 0 };
const uint8_t char_count = meatpack.get_result_char(c_res);
#else
constexpr uint8_t char_count = 1;
#endif
if (ISEOL(serial_char)) {
LOOP_L_N(char_index, char_count) {
const char serial_char = TERN(MEATPACK, c_res[char_index], c);
// Reset our state, continue if the line was empty
if (process_line_done(serial_input_state[i], serial_line_buffer[i], serial_count[i]))
continue;
if (ISEOL(serial_char)) {
char* command = serial_line_buffer[i];
// Reset our state, continue if the line was empty
if (process_line_done(serial_input_state[p], serial_line_buffer[p], serial_count[p]))
continue;
while (*command == ' ') command++; // Skip leading spaces
char *npos = (*command == 'N') ? command : nullptr; // Require the N parameter to start the line
char* command = serial_line_buffer[p];
if (npos) {
while (*command == ' ') command++; // Skip leading spaces
char *npos = (*command == 'N') ? command : nullptr; // Require the N parameter to start the line
bool M110 = strstr_P(command, PSTR("M110")) != nullptr;
if (npos) {
if (M110) {
char* n2pos = strchr(command + 4, 'N');
if (n2pos) npos = n2pos;
bool M110 = strstr_P(command, PSTR("M110")) != nullptr;
if (M110) {
char* n2pos = strchr(command + 4, 'N');
if (n2pos) npos = n2pos;
}
gcode_N = strtol(npos + 1, nullptr, 10);
if (gcode_N != last_N + 1 && !M110)
return gcode_line_error(PSTR(STR_ERR_LINE_NO), p);
char *apos = strrchr(command, '*');
if (apos) {
uint8_t checksum = 0, count = uint8_t(apos - command);
while (count) checksum ^= command[--count];
if (strtol(apos + 1, nullptr, 10) != checksum)
return gcode_line_error(PSTR(STR_ERR_CHECKSUM_MISMATCH), p);
}
else
return gcode_line_error(PSTR(STR_ERR_NO_CHECKSUM), p);
last_N = gcode_N;
}
#if ENABLED(SDSUPPORT)
// Pronterface "M29" and "M29 " has no line number
else if (card.flag.saving && !is_M29(command))
return gcode_line_error(PSTR(STR_ERR_NO_CHECKSUM), p);
#endif
gcode_N = strtol(npos + 1, nullptr, 10);
//
// Movement commands give an alert when the machine is stopped
//
if (gcode_N != last_N + 1 && !M110)
return gcode_line_error(PSTR(STR_ERR_LINE_NO), i);
char *apos = strrchr(command, '*');
if (apos) {
uint8_t checksum = 0, count = uint8_t(apos - command);
while (count) checksum ^= command[--count];
if (strtol(apos + 1, nullptr, 10) != checksum)
return gcode_line_error(PSTR(STR_ERR_CHECKSUM_MISMATCH), i);
}
else
return gcode_line_error(PSTR(STR_ERR_NO_CHECKSUM), i);
last_N = gcode_N;
}
#if ENABLED(SDSUPPORT)
// Pronterface "M29" and "M29 " has no line number
else if (card.flag.saving && !is_M29(command))
return gcode_line_error(PSTR(STR_ERR_NO_CHECKSUM), i);
#endif
//
// Movement commands give an alert when the machine is stopped
//
if (IsStopped()) {
char* gpos = strchr(command, 'G');
if (gpos) {
switch (strtol(gpos + 1, nullptr, 10)) {
case 0: case 1:
#if ENABLED(ARC_SUPPORT)
case 2: case 3:
#endif
#if ENABLED(BEZIER_CURVE_SUPPORT)
case 5:
#endif
PORT_REDIRECT(i); // Reply to the serial port that sent the command
SERIAL_ECHOLNPGM(STR_ERR_STOPPED);
LCD_MESSAGEPGM(MSG_STOPPED);
break;
if (IsStopped()) {
char* gpos = strchr(command, 'G');
if (gpos) {
switch (strtol(gpos + 1, nullptr, 10)) {
case 0: case 1:
#if ENABLED(ARC_SUPPORT)
case 2: case 3:
#endif
#if ENABLED(BEZIER_CURVE_SUPPORT)
case 5:
#endif
PORT_REDIRECT(p); // Reply to the serial port that sent the command
SERIAL_ECHOLNPGM(STR_ERR_STOPPED);
LCD_MESSAGEPGM(MSG_STOPPED);
break;
}
}
}
}
#if DISABLED(EMERGENCY_PARSER)
// Process critical commands early
if (strcmp(command, "M108") == 0) {
wait_for_heatup = false;
#if HAS_LCD_MENU
wait_for_user = false;
#endif
}
if (strcmp(command, "M112") == 0) kill(M112_KILL_STR, nullptr, true);
if (strcmp(command, "M410") == 0) quickstop_stepper();
#endif
#if defined(NO_TIMEOUTS) && NO_TIMEOUTS > 0
last_command_time = ms;
#endif
// Add the command to the queue
_enqueue(serial_line_buffer[i], true
#if NUM_SERIAL > 1
, i
#if DISABLED(EMERGENCY_PARSER)
// Process critical commands early
if (strcmp(command, "M108") == 0) {
wait_for_heatup = false;
#if HAS_LCD_MENU
wait_for_user = false;
#endif
}
if (strcmp(command, "M112") == 0) kill(M112_KILL_STR, nullptr, true);
if (strcmp(command, "M410") == 0) quickstop_stepper();
#endif
);
}
else
process_stream_char(serial_char, serial_input_state[i], serial_line_buffer[i], serial_count[i]);
#if defined(NO_TIMEOUTS) && NO_TIMEOUTS > 0
last_command_time = ms;
#endif
// Add the command to the queue
_enqueue(serial_line_buffer[p], true
#if NUM_SERIAL > 1
, p
#endif
);
}
else
process_stream_char(serial_char, serial_input_state[p], serial_line_buffer[p], serial_count[p]);
} // char_count loop
} // for NUM_SERIAL
} // queue has space, serial has data
}

View File

@@ -55,7 +55,7 @@ public:
* The port that the command was received on
*/
#if NUM_SERIAL > 1
static int16_t port[BUFSIZE];
static serial_index_t port[BUFSIZE];
#endif
GCodeQueue();
@@ -135,13 +135,13 @@ private:
static void _commit_command(bool say_ok
#if NUM_SERIAL > 1
, int16_t p=-1
, serial_index_t serial_ind=-1
#endif
);
static bool _enqueue(const char* cmd, bool say_ok=false
#if NUM_SERIAL > 1
, int16_t p=-1
, serial_index_t serial_ind=-1
#endif
);
@@ -154,7 +154,7 @@ private:
*/
static bool enqueue_one(const char* cmd);
static void gcode_line_error(PGM_P const err, const int8_t pn);
static void gcode_line_error(PGM_P const err, const serial_index_t serial_ind);
};

View File

@@ -2833,3 +2833,10 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
#if SAVED_POSITIONS > 256
#error "SAVED_POSITIONS must be an integer from 0 to 256."
#endif
/**
* Sanity Check for MEATPACK and BINARY_FILE_TRANSFER Features
*/
#if BOTH(MEATPACK, BINARY_FILE_TRANSFER)
#error "Either enable MEATPACK or enable BINARY_FILE_TRANSFER."
#endif

View File

@@ -25,7 +25,7 @@
* Release version. Leave the Marlin version or apply a custom scheme.
*/
#ifndef SHORT_BUILD_VERSION
#define SHORT_BUILD_VERSION "2.0.5.4"
#define SHORT_BUILD_VERSION "2.0.x"
#endif
/**
@@ -41,10 +41,10 @@
* here we define this default string as the date where the latest release
* version was tagged.
*/
#define CUSTOM_BUILD_VERSION "1.1.7"
#define CUSTOM_BUILD_VERSION "1.3.1"
#ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2020-11-29"
#define STRING_DISTRIBUTION_DATE "2021-09-23"
#endif
/**
@@ -75,7 +75,7 @@
* Define a generic printer name to be output to the LCD after booting Marlin.
*/
#ifndef MACHINE_NAME
#define MACHINE_NAME "Knutwurst's Anycubic i3 MEGA"
#define MACHINE_NAME "Knutwurst's Anycubic Printer"
#endif
/**

File diff suppressed because it is too large Load Diff

View File

@@ -21,8 +21,20 @@
#ifndef anycubic_touchscreen_h
#define anycubic_touchscreen_h
#include <stdio.h>
#include "../inc/MarlinConfig.h"
//#include <stdio.h>
//#include "../inc/MarlinConfig.h"
//#include "../module/configuration_store.h"
#include "./src/inc/MarlinConfigPre.h"
#include "./src/feature/bedlevel/bedlevel.h"
#include "./src/feature/bedlevel/abl/abl.h"
#include "src/module/probe.h"
enum axis_t : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4 };
enum extruder_t : uint8_t { E0, E1, E2, E3, E4, E5, E6, E7 };
void setAxisPosition_mm(const float, const axis_t, const feedRate_t=0);
void initializeGrid();
char *itostr2(const uint8_t &x);
@@ -36,7 +48,11 @@ char *ftostr32(const float &);
#define MSG_MY_VERSION CUSTOM_BUILD_VERSION
#define MAX_PRINTABLE_FILENAME_LEN 30
#define FILAMENT_RUNOUT_PIN 19
#if ENABLED(KNUTWURST_CHIRON)
#define FILAMENT_RUNOUT_PIN 33
#else
#define FILAMENT_RUNOUT_PIN 19
#endif
#define ANYCUBIC_TFT_STATE_IDLE 0
#define ANYCUBIC_TFT_STATE_SDPRINT 1
@@ -79,8 +95,10 @@ char *ftostr32(const float &);
#define SM_Z_UP_001_S "<ZUP001>"
#define SM_Z_DN_001_L "<Z Down 0.01>"
#define SM_Z_DN_001_S "<ZDN001>"
#define SM_BLTOUCH_L "<BLTouch Leveling>"
#define SM_BLTOUCH_L "<Start Auto Leveling>"
#define SM_BLTOUCH_S "<BLTCH>"
#define SM_RESETLV_L "<Reset Level Grid>"
#define SM_RESETLV_S "<RSTLV>"
#define SM_PAUSE_L "<Fil. Change Pause>"
#define SM_PAUSE_S "<PAUSE>"
#define SM_RESUME_L "<Fil. Change Resume>"
@@ -90,7 +108,7 @@ char *ftostr32(const float &);
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>"
#define SM_EN_FILSENS_S "<ENSEN>"
#define SM_EXIT_L "<Exit>"
#define SM_EXIT_S "<EXIT>"
#define SM_EXIT_S "<SMEXIT>"
#define SM_BACK_L "<End Mesh Leveling>"
#define SM_BACK_S "<BACK>"
@@ -100,10 +118,10 @@ char *ftostr32(const float &);
#define SM_FLOW_DISP_L "<Flow is XXX>"
#define SM_FLOW_DISP_S "<FLDISP>"
#define SM_FLOW_UP_L "<Up>"
#define SM_FLOW_UP_S "<UP>"
#define SM_FLOW_UP_S "<FLUP>"
#define SM_FLOW_DN_L "<Down>"
#define SM_FLOW_DN_S "<DOWN>"
#define SM_FLOW_EXIT_L "<End Flow Settings>"
#define SM_FLOW_DN_S "<FLDN>"
#define SM_FLOW_EXIT_L "<Exit Flow Settings>"
#define SM_FLOW_EXIT_S "<EXTFLW>"
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>"
@@ -116,9 +134,20 @@ char *ftostr32(const float &);
#define SM_EZLVL_P3_S "<EZLPC>"
#define SM_EZLVL_P4_L "<Point D>"
#define SM_EZLVL_P4_S "<EZLPD>"
#define SM_EZLVL_EXIT_L "<End Easy Leveling>"
#define SM_EZLVL_EXIT_L "<Exit Easy Level>"
#define SM_EZLVL_EXIT_S "<EZLEXT>"
#define SM_BLTZMENU_L "<Auto Leveling>"
#define SM_BLTZMENU_S "<SETOFZ>"
#define SM_BLTZ_DISP_L "<Z Offset: XXXXX>"
#define SM_BLTZ_DISP_S "<OFZDSP>"
#define SM_BLTZ_UP_L "<Up>"
#define SM_BLTZ_UP_S "<UPOFFZ0>"
#define SM_BLTZ_DN_L "<Down>"
#define SM_BLTZ_DN_S "<DNOFFZ0>"
#define SM_BLTZ_EXIT_L "<SAVE and EXIT>"
#define SM_BLTZ_EXIT_S "<EXTABLM>"
#endif
#if ENABLED(KNUTWURST_DGUS2_TFT)
@@ -154,8 +183,10 @@ char *ftostr32(const float &);
#define SM_Z_UP_001_S "<ZUP00~2.GCO"
#define SM_Z_DN_001_L "<Z Down 0.01> .gcode"
#define SM_Z_DN_001_S "<ZDOWN~3.GCO"
#define SM_BLTOUCH_L "<BLTouch Leveling> .gcode"
#define SM_BLTOUCH_L "<Start AutoLeveling>.gcode"
#define SM_BLTOUCH_S "<BLTOU~1.GCO"
#define SM_RESETLV_L "<Reset Level Grid> .gcode"
#define SM_RESETLV_S "<RSTLV~1.GCO>"
#define SM_PAUSE_L "<Fil. Change Pause> .gcode"
#define SM_PAUSE_S "<FILCH~2.GCO"
#define SM_RESUME_L "<Fil. Change Resume>.gcode"
@@ -178,7 +209,7 @@ char *ftostr32(const float &);
#define SM_FLOW_UP_S "<UPFLOW1.GCO"
#define SM_FLOW_DN_L "<Down> .gcode"
#define SM_FLOW_DN_S "<DWNFLOW.GCO"
#define SM_FLOW_EXIT_L "<End Flow Settings> .gcode"
#define SM_FLOW_EXIT_L "<Exit Flow Settings>.gcode"
#define SM_FLOW_EXIT_S "<EXTFLW1.GCO"
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>.gcode"
@@ -191,10 +222,29 @@ char *ftostr32(const float &);
#define SM_EZLVL_P3_S "<EZLPC01.GCO"
#define SM_EZLVL_P4_L "<Point D> .gcode"
#define SM_EZLVL_P4_S "<EZLPD01.GCO"
#define SM_EZLVL_EXIT_L "<End Easy Leveling> .gcode"
#define SM_EZLVL_EXIT_L "<Exit Easy Leveling>.gcode"
#define SM_EZLVL_EXIT_S "<EZLEXT1.GCO"
#define SM_BLTZMENU_L "<Auto Leveling> .gcode"
#define SM_BLTZMENU_S "<SETOFZ0.GCO"
#define SM_BLTZ_DISP_L "<Z Offset: XXXXX> .gcode"
#define SM_BLTZ_DISP_S "<OFZDSP0.GCO"
#define SM_BLTZ_UP_L "<Up> .gcode"
#define SM_BLTZ_UP_S "<UPOFFZ0.GCO"
#define SM_BLTZ_DN_L "<Down> .gcode"
#define SM_BLTZ_DN_S "<DOWNOFZ.GCO"
#define SM_BLTZ_EXIT_L "<SAVE and EXIT> .gcode"
#define SM_BLTZ_EXIT_S "<EXTABLM.GCO"
#endif
#if ENABLED(KNUTWURST_TFT_LEVELING)
// eeprom_index
extern int z_values_index;
extern int z_values_size;
// temp value which needs to be saved
extern float SAVE_zprobe_zoffset;
#endif
class AnycubicTouchscreenClass
{
@@ -231,7 +281,7 @@ private:
int serial3_count = 0;
char *TFTstrchr_pointer;
char FlagResumFromOutage = 0;
uint16_t filenumber = 0;
int filenumber = 0;
unsigned long starttime = 0;
unsigned long stoptime = 0;
uint8_t tmp_extruder = 0;
@@ -252,7 +302,7 @@ private:
} OutageData;
#endif
int CodeValueInt();
float CodeValue();
bool CodeSeen(char);
void PrintList();
@@ -272,19 +322,80 @@ private:
char currentTouchscreenSelection[64];
char currentFileOrDirectory[64];
String flowRateBuffer;
String zOffsetBuffer;
uint16_t MyFileNrCnt = 0;
uint8_t FilamentSensorEnabled = true;
uint8_t SpecialMenu = false;
uint8_t MMLMenu = false;
uint8_t FlowMenu = false;
uint8_t BLTouchMenu = false;
uint8_t LevelMenu = false;
#if ENABLED(ANYCUBIC_FILAMENT_RUNOUT_SENSOR)
char FilamentTestStatus = false;
char FilamentTestLastStatus = false;
bool FilamentSetMillis = true;
int FilamentRunoutCounter = 0;
#endif
#if ENABLED(KNUTWURST_MEGA_P_LASER)
typedef struct {
unsigned char bfType[2];
unsigned char bfSize[4];
unsigned char bfReserved1[2];
unsigned char bfReserved2[2];
unsigned char bfOffBits[4];
unsigned char biSize[4];
unsigned char biWidth[4];
unsigned char biHeight[4];
unsigned char biPlanes[2];
unsigned char biBitCount[2];
unsigned char biCompression[4];
unsigned char biSizeImage[4];
unsigned char biXPelsPerMeter[4];
unsigned char biYPelsPerMeter[4];
unsigned char biClrUsed[4];
unsigned char biClrImportant[4];
}BMP_HEAD;
typedef struct
{
unsigned long pic_file_size;
unsigned long pic_ptr;
unsigned long pic_start;
float pic_pixel_distance;
float laser_height;
float x_offset;
float y_offset;
unsigned int pic_realy_widht;
unsigned int pic_widht;
unsigned int pic_hight;
unsigned char pic_bit;
unsigned char pic_widht_odd;
unsigned char pic_hight_odd;
unsigned char pic_print_status;
unsigned char pic_dir;
unsigned char pic_vector;
unsigned char pic_x_mirror;
unsigned char pic_y_mirror;
unsigned char pic_laser_time;
}PRINTER_STRUCT;
#define PIC_FIXED 0.1f // // POINT/MM
#define PIC_OPEN 50 // // ms
#define PIC_SPEDD 20000
#define MIN_GRAY_VLAUE 20
#define LASER_PRINT_SPEED 30 //50*60
#endif
};
extern AnycubicTouchscreenClass AnycubicTouchscreen;

View File

@@ -51,6 +51,7 @@
#include "stepper.h"
#include "temperature.h"
#include "../lcd/ultralcd.h"
#include "../lcd/anycubic_touchscreen.h"
#include "../core/language.h"
#include "../libs/vector_3.h" // for matrix_3x3
#include "../gcode/gcode.h"
@@ -1562,6 +1563,12 @@ void MarlinSettings::postprocess() {
if (!validating) set_bed_leveling_enabled(false);
EEPROM_READ(bilinear_grid_spacing); // 2 ints
EEPROM_READ(bilinear_start); // 2 ints
#if ENABLED(KNUTWURST_TFT_LEVELING)
z_values_index = eeprom_index;
z_values_size = sizeof(z_values);
#endif
EEPROM_READ(z_values); // 9 to 256 floats
}
else // EEPROM data is stale

View File

@@ -190,6 +190,8 @@
#include "ramps/pins_MKS_GEN_L_V2.h" // ATmega2560 env:mega2560
#elif MB(COPYMASTER_3D)
#include "ramps/pins_COPYMASTER_3D.h" // ATmega2560 env:mega2560
#elif MB(TRIGORILLA_CHIRON)
#include "ramps/pins_TRIGORILLA_CHIRON.h" // ATmega2560 env:mega2560
//
// RAMBo and derivatives

View File

@@ -0,0 +1,723 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 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/>.
*
*/
#pragma once
/**
* Arduino Mega with RAMPS v1.4 (or v1.3) pin assignments
*
* Applies to the following boards:
*
* RAMPS_14_EFB (Hotend, Fan, Bed)
* RAMPS_14_EEB (Hotend0, Hotend1, Bed)
* RAMPS_14_EFF (Hotend, Fan0, Fan1)
* RAMPS_14_EEF (Hotend0, Hotend1, Fan)
* RAMPS_14_SF (Spindle, Controller Fan)
*
* RAMPS_13_EFB (Hotend, Fan, Bed)
* RAMPS_13_EEB (Hotend0, Hotend1, Bed)
* RAMPS_13_EFF (Hotend, Fan0, Fan1)
* RAMPS_13_EEF (Hotend0, Hotend1, Fan)
* RAMPS_13_SF (Spindle, Controller Fan)
*
* Other pins_MYBOARD.h files may override these defaults
*
* Differences between
* RAMPS_13 | RAMPS_14
* 7 | 11
*/
#ifdef TARGET_LPC1768
#error "Oops! Set MOTHERBOARD to an LPC1768-based board when building for LPC1768."
#elif defined(__STM32F1__)
#error "Oops! Set MOTHERBOARD to an STM32F1-based board when building for STM32F1."
#endif
#if NONE(IS_RAMPS_SMART, IS_RAMPS_DUO, IS_RAMPS4DUE, TARGET_LPC1768)
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
#error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
#endif
#endif
#ifndef BOARD_INFO_NAME
#define BOARD_INFO_NAME "RAMPS 1.4"
#endif
//
// Servos
//
#ifndef SERVO0_PIN
#ifdef IS_RAMPS_13
#define SERVO0_PIN 7
#else
#define SERVO0_PIN 11
#endif
#endif
#ifndef SERVO1_PIN
#define SERVO1_PIN 6
#endif
#ifndef SERVO2_PIN
#define SERVO2_PIN 5
#endif
#ifndef SERVO3_PIN
#define SERVO3_PIN 4
#endif
//
// Limit Switches
//
#ifndef X_STOP_PIN
#ifndef X_MIN_PIN
#define X_MIN_PIN 3
#endif
#ifndef X_MAX_PIN
#define X_MAX_PIN 43
#endif
#endif
#ifndef Y_STOP_PIN
#ifndef Y_MIN_PIN
#define Y_MIN_PIN 42
#endif
#ifndef Y_MAX_PIN
#define Y_MAX_PIN -1
#endif
#endif
#ifndef Z_STOP_PIN
#ifndef Z_MIN_PIN
#define Z_MIN_PIN 18
#endif
#ifndef Z_MAX_PIN
#define Z_MAX_PIN 43
#endif
#endif
//
// Z Probe (when not Z_MIN_PIN)
//
#ifndef Z_MIN_PROBE_PIN
#define Z_MIN_PROBE_PIN 2
#endif
//
// Steppers
//
#define X_STEP_PIN 54
#define X_DIR_PIN 55
#define X_ENABLE_PIN 38
#ifndef X_CS_PIN
#define X_CS_PIN 53
#endif
#define Y_STEP_PIN 60
#define Y_DIR_PIN 61
#define Y_ENABLE_PIN 56
#ifndef Y_CS_PIN
#define Y_CS_PIN 49
#endif
#ifndef Z_STEP_PIN
#define Z_STEP_PIN 46
#endif
#define Z_DIR_PIN 48
#define Z_ENABLE_PIN 62
#ifndef Z_CS_PIN
#define Z_CS_PIN 40
#endif
#define E0_STEP_PIN 26
#define E0_DIR_PIN 28
#define E0_ENABLE_PIN 24
#ifndef E0_CS_PIN
#define E0_CS_PIN 42
#endif
#define E1_STEP_PIN 36
#define E1_DIR_PIN 34
#define E1_ENABLE_PIN 30
#ifndef E1_CS_PIN
#define E1_CS_PIN 44
#endif
//
// Temperature Sensors
//
#ifndef TEMP_0_PIN
#define TEMP_0_PIN 13 // Analog Input
#endif
#ifndef TEMP_1_PIN
#define TEMP_1_PIN 15 // Analog Input
#endif
#ifndef TEMP_BED_PIN
#define TEMP_BED_PIN 14 // Analog Input
#endif
//
// SPI for Max6675 or Max31855 Thermocouple
//
#ifndef MAX6675_SS_PIN
#define MAX6675_SS_PIN 66 // Don't use 53 if using Display/SD card (SDSS) or 49 (SD_DETECT_PIN)
#endif
//
// Augmentation for auto-assigning RAMPS plugs
//
#if NONE(IS_RAMPS_EEB, IS_RAMPS_EEF, IS_RAMPS_EFB, IS_RAMPS_EFF, IS_RAMPS_SF) && !PIN_EXISTS(MOSFET_D)
#if HOTENDS > 1
#if TEMP_SENSOR_BED
#define IS_RAMPS_EEB
#else
#define IS_RAMPS_EEF
#endif
#elif TEMP_SENSOR_BED
#define IS_RAMPS_EFB
#else
#define IS_RAMPS_EFF
#endif
#endif
//
// Heaters / Fans
//
#ifndef MOSFET_D_PIN
#define MOSFET_D_PIN -1
#endif
#ifndef RAMPS_D8_PIN
#define RAMPS_D8_PIN 8
#endif
#ifndef RAMPS_D9_PIN
#define RAMPS_D9_PIN 9
#endif
#ifndef RAMPS_D10_PIN
#define RAMPS_D10_PIN 10
#endif
#define HEATER_0_PIN RAMPS_D10_PIN
#if ENABLED(IS_RAMPS_EFB) // Hotend, Fan, Bed
#define HEATER_BED_PIN 45 //RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EEF) // Hotend, Hotend, Fan
#define HEATER_1_PIN RAMPS_D9_PIN
#elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
#define HEATER_1_PIN RAMPS_D9_PIN
#define HEATER_BED_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EFF) // Hotend, Fan, Fan
#define FAN1_PIN RAMPS_D8_PIN
#elif DISABLED(IS_RAMPS_SF) // Not Spindle, Fan (i.e., "EFBF" or "EFBE")
#define HEATER_BED_PIN RAMPS_D8_PIN
#if HOTENDS == 1
#define FAN1_PIN MOSFET_D_PIN
#else
#define HEATER_1_PIN MOSFET_D_PIN
#endif
#endif
#ifndef FAN_PIN
#if EITHER(IS_RAMPS_EFB, IS_RAMPS_EFF) // Hotend, Fan, Bed or Hotend, Fan, Fan
#define FAN_PIN RAMPS_D9_PIN
#elif EITHER(IS_RAMPS_EEF, IS_RAMPS_SF) // Hotend, Hotend, Fan or Spindle, Fan
#define FAN_PIN RAMPS_D8_PIN
#elif ENABLED(IS_RAMPS_EEB) // Hotend, Hotend, Bed
#define FAN_PIN 4 // IO pin. Buffer needed
#else // Non-specific are "EFB" (i.e., "EFBF" or "EFBE")
#define FAN_PIN RAMPS_D9_PIN
#endif
#endif
//
// Misc. Functions
//
#define SDSS 53
#define LED_PIN 13
#ifndef FILWIDTH_PIN
#define FILWIDTH_PIN 5 // Analog Input on AUX2
#endif
// RAMPS 1.4 DIO 4 on the servos connector
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN 4
#endif
#ifndef PS_ON_PIN
#define PS_ON_PIN 12
#endif
#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
#if NUM_SERVOS <= 1 // Prefer the servo connector
#define CASE_LIGHT_PIN 6 // Hardware PWM
#elif HAS_FREE_AUX2_PINS
#define CASE_LIGHT_PIN 44 // Hardware PWM
#endif
#endif
//
// M3/M4/M5 - Spindle/Laser Control
//
#if HAS_CUTTER && !defined(SPINDLE_LASER_ENA_PIN)
#if !NUM_SERVOS // Use servo connector if possible
#define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
#define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
#define SPINDLE_DIR_PIN 5
#elif HAS_FREE_AUX2_PINS
#define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
#define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
#define SPINDLE_DIR_PIN 65
#else
#error "No auto-assignable Spindle/Laser pins available."
#endif
#endif
//
// TMC software SPI
//
#if ENABLED(TMC_USE_SW_SPI)
#ifndef TMC_SW_MOSI
#define TMC_SW_MOSI 66
#endif
#ifndef TMC_SW_MISO
#define TMC_SW_MISO 44
#endif
#ifndef TMC_SW_SCK
#define TMC_SW_SCK 64
#endif
#endif
#if HAS_TMC_UART
/**
* TMC2208/TMC2209 stepper drivers
*
* Hardware serial communication ports.
* If undefined software serial is used according to the pins below
*/
//#define X_HARDWARE_SERIAL Serial1
//#define X2_HARDWARE_SERIAL Serial1
//#define Y_HARDWARE_SERIAL Serial1
//#define Y2_HARDWARE_SERIAL Serial1
//#define Z_HARDWARE_SERIAL Serial1
//#define Z2_HARDWARE_SERIAL Serial1
//#define E0_HARDWARE_SERIAL Serial1
//#define E1_HARDWARE_SERIAL Serial1
//#define E2_HARDWARE_SERIAL Serial1
//#define E3_HARDWARE_SERIAL Serial1
//#define E4_HARDWARE_SERIAL Serial1
//
// Software serial
//
#ifndef X_SERIAL_TX_PIN
#define X_SERIAL_TX_PIN 40
#endif
#ifndef X_SERIAL_RX_PIN
#define X_SERIAL_RX_PIN 63
#endif
#ifndef X2_SERIAL_TX_PIN
#define X2_SERIAL_TX_PIN -1
#endif
#ifndef X2_SERIAL_RX_PIN
#define X2_SERIAL_RX_PIN -1
#endif
#ifndef Y_SERIAL_TX_PIN
#define Y_SERIAL_TX_PIN 59
#endif
#ifndef Y_SERIAL_RX_PIN
#define Y_SERIAL_RX_PIN 64
#endif
#ifndef Y2_SERIAL_TX_PIN
#define Y2_SERIAL_TX_PIN -1
#endif
#ifndef Y2_SERIAL_RX_PIN
#define Y2_SERIAL_RX_PIN -1
#endif
#ifndef Z_SERIAL_TX_PIN
#define Z_SERIAL_TX_PIN 42
#endif
#ifndef Z_SERIAL_RX_PIN
#define Z_SERIAL_RX_PIN 65
#endif
#ifndef Z2_SERIAL_TX_PIN
#define Z2_SERIAL_TX_PIN -1
#endif
#ifndef Z2_SERIAL_RX_PIN
#define Z2_SERIAL_RX_PIN -1
#endif
#ifndef E0_SERIAL_TX_PIN
#define E0_SERIAL_TX_PIN 44
#endif
#ifndef E0_SERIAL_RX_PIN
#define E0_SERIAL_RX_PIN 66
#endif
#ifndef E1_SERIAL_TX_PIN
#define E1_SERIAL_TX_PIN -1
#endif
#ifndef E1_SERIAL_RX_PIN
#define E1_SERIAL_RX_PIN -1
#endif
#ifndef E2_SERIAL_TX_PIN
#define E2_SERIAL_TX_PIN -1
#endif
#ifndef E2_SERIAL_RX_PIN
#define E2_SERIAL_RX_PIN -1
#endif
#ifndef E3_SERIAL_TX_PIN
#define E3_SERIAL_TX_PIN -1
#endif
#ifndef E3_SERIAL_RX_PIN
#define E3_SERIAL_RX_PIN -1
#endif
#ifndef E4_SERIAL_TX_PIN
#define E4_SERIAL_TX_PIN -1
#endif
#ifndef E4_SERIAL_RX_PIN
#define E4_SERIAL_RX_PIN -1
#endif
#ifndef E5_SERIAL_TX_PIN
#define E5_SERIAL_TX_PIN -1
#endif
#ifndef E5_SERIAL_RX_PIN
#define E5_SERIAL_RX_PIN -1
#endif
#ifndef E6_SERIAL_TX_PIN
#define E6_SERIAL_TX_PIN -1
#endif
#ifndef E6_SERIAL_RX_PIN
#define E6_SERIAL_RX_PIN -1
#endif
#ifndef E7_SERIAL_TX_PIN
#define E7_SERIAL_TX_PIN -1
#endif
#ifndef E7_SERIAL_RX_PIN
#define E7_SERIAL_RX_PIN -1
#endif
#endif
//
// Průša i3 MK2 Multiplexer Support
//
#ifndef E_MUX0_PIN
#define E_MUX0_PIN 40 // Z_CS_PIN
#endif
#ifndef E_MUX1_PIN
#define E_MUX1_PIN 42 // E0_CS_PIN
#endif
#ifndef E_MUX2_PIN
#define E_MUX2_PIN 44 // E1_CS_PIN
#endif
//////////////////////////
// LCDs and Controllers //
//////////////////////////
#if HAS_SPI_LCD
//
// LCD Display output pins
//
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define LCD_PINS_RS 49 // CS chip select /SS chip slave select
#define LCD_PINS_ENABLE 51 // SID (MOSI)
#define LCD_PINS_D4 52 // SCK (CLK) clock
#elif BOTH(NEWPANEL, PANEL_ONE)
#define LCD_PINS_RS 40
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 65
#define LCD_PINS_D5 66
#define LCD_PINS_D6 44
#define LCD_PINS_D7 64
#else
#if ENABLED(CR10_STOCKDISPLAY)
#define LCD_PINS_RS 27
#define LCD_PINS_ENABLE 29
#define LCD_PINS_D4 25
#if DISABLED(NEWPANEL)
#define BEEPER_PIN 37
#endif
#elif ENABLED(ZONESTAR_LCD)
#define LCD_PINS_RS 64
#define LCD_PINS_ENABLE 44
#define LCD_PINS_D4 63
#define LCD_PINS_D5 40
#define LCD_PINS_D6 42
#define LCD_PINS_D7 65
#else
#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
#define LCD_PINS_DC 25 // Set as output on init
#define LCD_PINS_RS 27 // Pull low for 1s to init
// DOGM SPI LCD Support
#define DOGLCD_CS 16
#define DOGLCD_MOSI 17
#define DOGLCD_SCK 23
#define DOGLCD_A0 LCD_PINS_DC
#else
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
#define LCD_PINS_D5 25
#define LCD_PINS_D6 27
#endif
#define LCD_PINS_D7 29
#if DISABLED(NEWPANEL)
#define BEEPER_PIN 33
#endif
#endif
#if DISABLED(NEWPANEL)
// Buttons attached to a shift register
// Not wired yet
//#define SHIFT_CLK 38
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17
#endif
#endif
//
// LCD Display input pins
//
#if ENABLED(NEWPANEL)
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define BEEPER_PIN 37
#if ENABLED(CR10_STOCKDISPLAY)
#define BTN_EN1 17
#define BTN_EN2 23
#else
#define BTN_EN1 31
#define BTN_EN2 33
#endif
#define BTN_ENC 35
#ifndef SD_DETECT_PIN
#define SD_DETECT_PIN 49
#endif
#ifndef KILL_PIN
#define KILL_PIN 41
#endif
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
#define LCD_BACKLIGHT_PIN 39
#endif
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define BTN_EN1 64
#define BTN_EN2 59
#define BTN_ENC 63
#define SD_DETECT_PIN 42
#elif ENABLED(LCD_I2C_PANELOLU2)
#define BTN_EN1 47
#define BTN_EN2 43
#define BTN_ENC 32
#define LCD_SDSS SDSS
#define KILL_PIN 41
#elif ENABLED(LCD_I2C_VIKI)
#define BTN_EN1 40 // http://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
#define BTN_EN2 42
#define BTN_ENC -1
#define LCD_SDSS SDSS
#define SD_DETECT_PIN 49
#elif ANY(VIKI2, miniVIKI)
#define DOGLCD_CS 45
#define DOGLCD_A0 44
#define LCD_SCREEN_ROT_180
#define BEEPER_PIN 33
#define STAT_LED_RED_PIN 32
#define STAT_LED_BLUE_PIN 35
#define BTN_EN1 22
#define BTN_EN2 7
#define BTN_ENC 39
#define SD_DETECT_PIN -1 // Pin 49 for display SD interface, 72 for easy adapter board
#define KILL_PIN 31
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#define DOGLCD_CS 29
#define DOGLCD_A0 27
#define BEEPER_PIN 23
#define LCD_BACKLIGHT_PIN 33
#define BTN_EN1 35
#define BTN_EN2 37
#define BTN_ENC 31
#define LCD_SDSS SDSS
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#elif EITHER(MKS_MINI_12864, FYSETC_MINI_12864)
#define BEEPER_PIN 37
#define BTN_ENC 35
#define SD_DETECT_PIN 49
#ifndef KILL_PIN
#define KILL_PIN 41
#endif
#if ENABLED(MKS_MINI_12864) // Added in Marlin 1.1.6
#define DOGLCD_A0 27
#define DOGLCD_CS 25
// GLCD features
// Uncomment screen orientation
//#define LCD_SCREEN_ROT_90
//#define LCD_SCREEN_ROT_180
//#define LCD_SCREEN_ROT_270
// not connected to a pin
#define LCD_BACKLIGHT_PIN -1 // 65 (MKS mini12864 can't adjust backlight by software!)
#define BTN_EN1 31
#define BTN_EN2 33
#elif ENABLED(FYSETC_MINI_12864)
// From https://wiki.fysetc.com/Mini12864_Panel/?fbclid=IwAR1FyjuNdVOOy9_xzky3qqo_WeM5h-4gpRnnWhQr_O1Ef3h0AFnFXmCehK8
#define DOGLCD_A0 16
#define DOGLCD_CS 17
#define BTN_EN1 33
#define BTN_EN2 31
//#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
// results in LCD soft SPI mode 3, SD soft SPI mode 0
#define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
#ifndef RGB_LED_R_PIN
#define RGB_LED_R_PIN 25
#endif
#ifndef RGB_LED_G_PIN
#define RGB_LED_G_PIN 27
#endif
#ifndef RGB_LED_B_PIN
#define RGB_LED_B_PIN 29
#endif
#elif ENABLED(FYSETC_MINI_12864_2_1)
#define NEOPIXEL_PIN 25
#endif
#endif
#elif ENABLED(MINIPANEL)
#define BEEPER_PIN 42
// not connected to a pin
#define LCD_BACKLIGHT_PIN 65 // backlight LED on A11/D65
#define DOGLCD_A0 44
#define DOGLCD_CS 66
// GLCD features
// Uncomment screen orientation
//#define LCD_SCREEN_ROT_90
//#define LCD_SCREEN_ROT_180
//#define LCD_SCREEN_ROT_270
#define BTN_EN1 40
#define BTN_EN2 63
#define BTN_ENC 59
#define SD_DETECT_PIN 49
#define KILL_PIN 64
#elif ENABLED(ZONESTAR_LCD)
#define ADC_KEYPAD_PIN 12
#elif ENABLED(AZSMZ_12864)
// Pins only defined for RAMPS_SMART currently
#else
// Beeper on AUX-4
#define BEEPER_PIN 33
// Buttons are directly attached to AUX-2
#if ENABLED(PANEL_ONE)
#define BTN_EN1 59 // AUX2 PIN 3
#define BTN_EN2 63 // AUX2 PIN 4
#define BTN_ENC 49 // AUX3 PIN 7
#else
#define BTN_EN1 37
#define BTN_EN2 35
#define BTN_ENC 31
#endif
#if ENABLED(G3D_PANEL)
#define SD_DETECT_PIN 49
#define KILL_PIN 41
#endif
#endif
#endif // NEWPANEL
#endif // HAS_SPI_LCD
#if ENABLED(REPRAPWORLD_KEYPAD)
#define SHIFT_OUT 40
#define SHIFT_CLK 44
#define SHIFT_LD 42
#ifndef BTN_EN1
#define BTN_EN1 64
#endif
#ifndef BTN_EN2
#define BTN_EN2 59
#endif
#ifndef BTN_ENC
#define BTN_ENC 63
#endif
#endif

View File

@@ -0,0 +1,132 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2020 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/>.
*
*/
#pragma once
/**
* Arduino Mega with RAMPS v1.4 for Anycubic
*/
#define BOARD_INFO_NAME "Anycubic RAMPS 1.4"
#define IS_RAMPS_EFB
//
// Servos
//
#if MB(TRIGORILLA_14_11)
#define SERVO0_PIN 5
#define SERVO1_PIN 4
#define SERVO2_PIN 11
#define SERVO3_PIN 6
#endif
//
// Custom Limit Switches
//
//#define ANYCUBIC_4_MAX_PRO_ENDSTOPS
#if ENABLED(ANYCUBIC_4_MAX_PRO_ENDSTOPS)
#define X_MAX_PIN 43
#define Y_MIN_PIN 19
#endif
// Labeled pins
#define TG_HEATER_BED_PIN 8
#define TG_HEATER_0_PIN 10
#define TG_HEATER_1_PIN 45 // Anycubic Kossel: Unused
#define TG_FAN0_PIN 9 // Anycubic Kossel: Usually the part cooling fan
#define TG_FAN1_PIN 7 // Anycubic Kossel: Unused
#define TG_FAN2_PIN 44 // Anycubic Kossel: Hotend fan
#define CONTROLLER_FAN_PIN TG_FAN1_PIN
#define FIL_RUNOUT_PIN 19
#define BEEPER_PIN 31
#define SDSS 53
#define LED_PIN 13
#define SD_DETECT_PIN 49
// Remap MOSFET pins to common usages:
#define RAMPS_D10_PIN TG_HEATER_0_PIN // HEATER_0_PIN is always RAMPS_D10_PIN in pins_RAMPS.h
#if HOTENDS > 1 // EEF and EEB
#define RAMPS_D9_PIN TG_HEATER_1_PIN
#if !TEMP_SENSOR_BED
// EEF
#define RAMPS_D8_PIN TG_FAN0_PIN
#else
// EEB
#define RAMPS_D8_PIN TG_HEATER_BED_PIN
#define FAN_PIN TG_FAN0_PIN // Override pin 4 in pins_RAMPS.h
#endif
#elif TEMP_SENSOR_BED
// EFB (Anycubic Kossel default)
#define RAMPS_D9_PIN TG_FAN0_PIN
#define RAMPS_D8_PIN TG_HEATER_BED_PIN
#else
// EFF
#define RAMPS_D9_PIN TG_FAN1_PIN
#define RAMPS_D8_PIN TG_FAN0_PIN
#endif
#if HOTENDS > 1 || TEMP_SENSOR_BED // EEF, EEB, EFB
#define FAN1_PIN TG_FAN1_PIN
#endif
#define FAN2_PIN TG_FAN2_PIN
#define ORIG_E0_AUTO_FAN_PIN TG_FAN2_PIN // Used in Anycubic Kossel example config
#ifdef POWER_OUTAGE_TEST
#define OUTAGETEST_PIN 79
#define OUTAGECON_PIN 58
#endif
#include "pins_RAMPS_CHIRON.h"
//
// AnyCubic made the following changes to 1.1.0-RC8
// If these are appropriate for your LCD let us know.
//
#if 0 && HAS_SPI_LCD
// LCD Display output pins
#if BOTH(NEWPANEL, PANEL_ONE)
#undef LCD_PINS_D6
#define LCD_PINS_D6 57
#endif
// LCD Display input pins
#if ENABLED(NEWPANEL)
#if ANY(VIKI2, miniVIKI)
#undef DOGLCD_A0
#define DOGLCD_A0 23
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
#undef BEEPER_PIN
#define BEEPER_PIN 33
#undef LCD_BACKLIGHT_PIN
#define LCD_BACKLIGHT_PIN 67
#endif
#elif ENABLED(MINIPANEL)
#undef BEEPER_PIN
#define BEEPER_PIN 33
#undef DOGLCD_A0
#define DOGLCD_A0 42
#endif
#endif // HAS_SPI_LCD

View File

@@ -1101,7 +1101,7 @@ void CardReader::fileHasFinished() {
uint8_t CardReader::auto_report_sd_interval = 0;
millis_t CardReader::next_sd_report_ms;
#if NUM_SERIAL > 1
int8_t CardReader::auto_report_port;
serial_index_t CardReader::auto_report_port;
#endif
void CardReader::auto_report_sd_status() {

View File

@@ -255,7 +255,7 @@ private:
static uint8_t auto_report_sd_interval;
static millis_t next_sd_report_ms;
#if NUM_SERIAL > 1
static int8_t auto_report_port;
static serial_index_t auto_report_port;
#endif
#endif

144
README.md
View File

@@ -1,140 +1,28 @@
# Knutwurst's i3 MEGA (M/S/P/X) Firmware <br>(based on Marlin 2.0.x)
# Knutwurst's i3 MEGA M/S/P/X/Chiron Hybrid Firmware <br>(based on Marlin 2.0.x)
<span style="color: red;">(BITTE GENAU DURCHLESEN! / PLEASE READ CAREFULLY!)</span>
# Übersicht
- [Funktionen](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Features-(Deutsch))
- [Einsteiger-Leitfaden](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Beginner's-Guide-(Deutsch))
- [Häufig gestellte Fragen (FAQ)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/FAQ-(deutsch))
- [Wiki/Umbau-Anleitungen](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki)
- [Offiziell Facebook-Gruppe (deutsch)](https://www.facebook.com/groups/3094090037303577/)
- [Downloads](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases)
### Wenn dir gefällt, was ich mache, kannst du mir hier einen Kaffee spendieren*: [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/oliverkoester)
<sub>*Es muss jetzt keine großzügige Spende sein. Ein paar Cent reichen um mir zu zeigen, wer überhaupt Interesse daran hat und wem die Weiterentwicklung wichtig ist. So bleibt die Motivation da und ich weiß einfach, dass ich nicht für die Tonne programmiere ;)<sub>
Wenn Du Fragen hast, schaue gern in der offiziellen [Facebook-Gruppe](https://www.facebook.com/groups/3094090037303577/) vorbei.
# Overview
# Inhaltsverzeichnis (Deutsch)
<b>WARNUNG:</b> Der Mega Pro / Mega P Support befindet sich noch in der Entwicklung. Aktuell wird der Laser noch nicht unterstützt, ebensowenig wie das Piezo-Leveling!
- [Funktionen](#funktionen)
- [Häufig gestellte Fragen (FAQ)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/FAQ-(deutsch))
- [Fotos / Bilder](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Pictures)
- [Downloads](#downloads)
# Table of Contets (english)
<b>WARNING:</b> The Mega Pro / Mega P support is still under development. The laser is currently not supported, nor is piezo leveling!
- [Features](#features)
- [Features](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Features-(English))
- [Beginner's Guide](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Beginner's-Guide-(English))
- [Frequently asked questions (FAQ)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/FAQ-(english))
- [Photos / Pictures](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Pictures)
- [Download](#download)
- [Wiki/Tutotrials](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki)
- [Official Facebook-Group (german)](https://www.facebook.com/groups/3094090037303577/)
- [Downloads](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases)
# Readme - German
## Funktionen
* 4-Punkt Leveling-Hilfe "Easy Leveling"
* Mesh-Bed Kalibrierung / Autokalibrierung mit [BLTouch (Installations-Anleitung)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(deutsch))
* S-Kurven Beschleunigung
* "Linear Pressure Control v1.5" aktiviert (kann mit M900 konfiguriert werden)
* Babystepping während des Druckvorgangs
* Bilinear Bed Leveling (BBL)
* Manuelles Editieren der Messpunkte
* Volle Unterstützung aller [Anycubic Touchscreens](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Types-of-Anycubic-Touchscreens)
* Bauteilkühler läuft nun auf 100% statt maximal 70%
* Pause & Filamentwechselfunktion
* Automatische EEPROM Initialisierung
* Filament Runout Sensor kann im Menü temporär deaktiviert werden
* Wiederaufnahme des Drucks nach Stromausfall (WiP)
* [Druckbettgröße erweitert auf 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size)
* Automatischer 'Slowdown', falls Daten nicht schnell genug fließen
* Vollautomatisches Hotend und Ultrabase PID Tuning
* Optimierungen für [Trinamic TMC Schrittmotortreiber](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Schrittmotortreiber-gegen-TMC2xxx-tauschen)
---
# Downloads
Du kannst die fertigen Binärdateien hier herunterladen: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Natürlich kannst du die Firmware mit PlatformIO auch [selbst kompilieren](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Howto:-Compile-Firmware-with-PlatformIO).
Um es übersichtlich zu gestalten, beinhalten die Dateinamen die einzelnen Features.
`_1G` steht für die erste Generation des i3 Mega mit nur einem Z Endstop. Diese Firmware ist nicht für den normalen i3 Mega geeignet!
`_S` steht für den Mega S mit dem Titan Extruder.
`_P` steht für den Mega P mit dem BMG Extruder.
`_X` steht für den Mega X.
`_TMC` steht für Trinamic TMC Motortreiber. Hierbei wird auch die Drehrichtung der Motoren invertiert.
`_DGUS` steht für das "neue" blau/gelbe DGUS II Display, welches sonst kein Special-Menü anzeigen kann.
`_BLT` steht für die BL-Touch Version mit Autoleveling-Sensor. Das manuelle Mesh-Leveling ist hier deaktiviert.
`_10` steht für das Trigorilla_14 v1.0 Mainboard, welches normalerweise der Standard sein sollte.
`_11` steht für das Trigorilla_14 v1.1 Mainboard, bei welchem sich die Pinbelegung für den Server-Port geändert hat.
Für (fast) jede Kombination gibt es eine passende Firmware im Download-Bereich. ;)
---
### If you like what I do you can buy me a coffee: [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/oliverkoester)
### If you like what I do you can buy me a coffee*: [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/oliverkoester)
<sub>*It doesn't have to be a generous donation. A few cents are enough to show me who is interested in further development. So the motivation stays and I just know that I am not programming for the bin ;)<sub>
# Readme - English
## Features:
* 4-Point Leveling-Assistant "Easy Leveling"
* Mesh bed calibration / Auto calibration with [BLTouch (Installation Manual)](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/BLTouch-Installation-(english))
* S-curve acceleration
* "Linear Pressure Control v1.5" activated (can be configured with M900)
* Baby stepping during the printing process
* Bilinear Bed Leveling (BBL)
* Manual editing of the measuring points
* Full Support for all [Anycubic Touchscreens](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Types-of-Anycubic-Touchscreens)
* Part cooling fan now runs at 100% instead of 70%
* Pause & filament change function
* Automatic EEPROM initialization
* Filament runout sensor can be temporarily deactivated in the menu
* Resumption of printing after a power failure (WiP)
* [Print bed size enlarged to 225 x 220 x 210 mm](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Set-new-print-bed-size)
* Automatic 'slowdown' if data does not flow fast enough
* Fully automatic hotend and ultrabase PID tuning
* Optimizations for [Trinamic TMC Stepper drivers](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Swap-stepper-motor-driver-for-TMC2xxx)
---
# Download
You can download the precompiled binary files from here: https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/releases. Of course you can also [compile the firmware yourself](https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki/Howto:-Compile-Firmware-with-PlatformIO) with PlatformIO.
In order to make it clear, the file names contain the individual features.
`_1G` stands for the firt generation i3 Mega with only one Z endstop. Do NOT use this Firmware on the regular i3 Mega!
`_S` stands for the Mega S with the titan extruder.
`_P` stands for the Mega P with the BMG extruder.
`_X` stands for the Mega X.
`_TMC` stands for Trinamic TMC motor driver. The direction of rotation of the motors is also inverted.
`_DGUS` stands for the "new" blue / yellow DGUS II display, which otherwise cannot show a special menu.
`_BLT` stands for the BL-Touch version with auto-leveling sensor. Manual mesh leveling is deactivated here.
`_10` stands for the Trigorilla_14 v1.0 mainboard, which should normally be the standard.
`_11` stands for the Trigorilla_14 v1.1 mainboard, on which the pin assignment for the server port has changed.
For (almost) every combination there is a suitable firmware in the download area. ;)
### If you like what I do you can buy me a coffee: [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://paypal.me/oliverkoester)
<sub>*It doesn't have to be a generous donation. A few cents are enough to show me who is interested in further development. So the motivation stays and I just know that I am not programming for the bin ;)<sub>

View File

@@ -8,6 +8,7 @@ set -e
# Build examples
restore_configs
opt_enable MEATPACK
use_example_configs FYSETC/S6
exec_test $1 $2 "FYSETC S6 Example"

View File

@@ -10,7 +10,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_CHIRON
[env:MEGA_1G_TMC]
platform = atmelavr
@@ -20,7 +20,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH -DKNUTWURST_CHIRON
[env:MEGA_1G_BLT_10]
platform = atmelavr
@@ -30,7 +30,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_CHIRON
[env:MEGA_1G_BLT_11]
platform = atmelavr
@@ -40,7 +40,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_CHIRON
[env:MEGA_1G_TMC_BLT_10]
platform = atmelavr
@@ -50,7 +50,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_CHIRON
[env:MEGA_1G_TMC_BLT_11]
platform = atmelavr
@@ -60,7 +60,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_CHIRON
#
@@ -75,7 +75,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_TMC]
platform = atmelavr
@@ -85,7 +85,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_BLT_10]
platform = atmelavr
@@ -95,7 +95,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_BLT_11]
platform = atmelavr
@@ -105,7 +105,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_TMC_BLT_10]
platform = atmelavr
@@ -115,7 +115,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_TMC_BLT_11]
platform = atmelavr
@@ -125,7 +125,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
@@ -140,7 +140,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_TMC]
platform = atmelavr
@@ -150,7 +150,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_BLT_10]
platform = atmelavr
@@ -160,7 +160,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_BLT_11]
platform = atmelavr
@@ -170,7 +170,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_TMC_BLT_10]
platform = atmelavr
@@ -180,7 +180,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_TMC_BLT_11]
platform = atmelavr
@@ -190,7 +190,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
@@ -205,7 +205,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_DGUS_TMC]
platform = atmelavr
@@ -215,7 +215,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_DGUS_BLT_10]
platform = atmelavr
@@ -225,7 +225,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_DGUS_BLT_11]
platform = atmelavr
@@ -235,7 +235,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_DGUS_TMC_BLT_10]
platform = atmelavr
@@ -245,7 +245,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_S_DGUS_TMC_BLT_11]
platform = atmelavr
@@ -255,7 +255,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
@@ -270,7 +270,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_TMC]
platform = atmelavr
@@ -280,7 +280,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_BLT_10]
platform = atmelavr
@@ -290,7 +290,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_BLT_11]
platform = atmelavr
@@ -300,7 +300,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_TMC_BLT_10]
platform = atmelavr
@@ -310,7 +310,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_TMC_BLT_11]
platform = atmelavr
@@ -320,7 +320,72 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
#
# i3 Mega X (new TFT)
#
[env:MEGA_X_DGUS]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_DGUS_TMC]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_DGUS_BLT_10]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_DGUS_BLT_11]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_DGUS_TMC_BLT_10]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_X_DGUS_TMC_BLT_11]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
@@ -335,7 +400,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_P -DKNUTWURST_BMG -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_P_TMC]
platform = atmelavr
@@ -345,7 +410,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BMG -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_P_BLT_10]
platform = atmelavr
@@ -355,7 +420,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_P -DKNUTWURST_BMG -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_P_BLT_11]
platform = atmelavr
@@ -365,7 +430,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_P -DKNUTWURST_BMG -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_P_TMC_BLT_10]
platform = atmelavr
@@ -375,7 +440,7 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_P -DKNUTWURST_BMG -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
[env:MEGA_P_TMC_BLT_11]
platform = atmelavr
@@ -385,4 +450,56 @@ lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_P -DKNUTWURST_BMG -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_ONE_Z_ENDSTOP
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
#
# Chiron
#
[env:CHIRON]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_CHIRON -DKNUTWURST_CHIRON
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
[env:CHIRON_TMC]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_CHIRON -DKNUTWURST_CHIRON -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
#
# Chiron (new TFT)
#
[env:CHIRON_DGUS]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_CHIRON -DKNUTWURST_CHIRON -DKNUTWURST_DGUS2_TFT
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
[env:CHIRON_DGUS_TMC]
platform = atmelavr
board = megaatmega2560
board_build.f_cpu = 16000000L
lib_deps = ${common.lib_deps}
TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
src_filter = ${common.default_src_filter} +<src/HAL/AVR>
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_CHIRON -DKNUTWURST_CHIRON -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP

BIN
images/ESP01_Flash.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

BIN
images/ESP3D_00.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

BIN
images/ESP3D_01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 594 KiB

BIN
images/ESP3D_02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

BIN
images/ESP3D_03.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 KiB

BIN
images/ESP3D_04.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

BIN
images/ESP3D_Inst_01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

BIN
images/ESP3D_Inst_02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 KiB

BIN
images/ESP3D_Inst_03.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

BIN
images/ESP_01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 690 KiB

BIN
images/ESP_02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 473 KiB

BIN
images/ESP_03.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

BIN
images/ESP_04.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 KiB

BIN
images/ESP_05.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 KiB

BIN
images/ESP_06.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

BIN
images/install_cura_01.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
images/install_cura_02.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

BIN
images/install_cura_03.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
images/install_cura_04.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

BIN
images/manual_dgus_main.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
images/trigorilla_002.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
images/trigorilla_003.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

BIN
images/trigorilla_1_0.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

BIN
images/trigorilla_1_1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

View File

@@ -29,7 +29,6 @@
[platformio]
src_dir = Marlin
boards_dir = buildroot/share/PlatformIO/boards
#default_envs = mega2560
extra_configs = i3_mega_envs.ini
default_envs =
MEGA_1G
@@ -62,12 +61,22 @@ default_envs =
MEGA_X_BLT_11
MEGA_X_TMC_BLT_10
MEGA_X_TMC_BLT_11
MEGA_X_DGUS
MEGA_X_DGUS_TMC
MEGA_X_DGUS_BLT_10
MEGA_X_DGUS_BLT_11
MEGA_X_DGUS_TMC_BLT_10
MEGA_X_DGUS_TMC_BLT_11
MEGA_P
MEGA_P_TMC
MEGA_P_BLT_10
MEGA_P_BLT_11
MEGA_P_TMC_BLT_10
MEGA_P_TMC_BLT_11
CHIRON
CHIRON_TMC
CHIRON_DGUS
CHIRON_DGUS_TMC
# *******************************************************************************************
# ** **