Compare commits
416 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
21d062c285 | ||
|
04fcfa3b30 | ||
|
3eff63185d | ||
|
533d44bf94 | ||
|
ad974e176c | ||
|
f8208b7e5e | ||
|
f1dc45dcd3 | ||
|
978403d1c8 | ||
|
59ec01bdd1 | ||
|
8b3b4c47cf | ||
|
85bac6b396 | ||
|
2e1c2343cb | ||
|
8aa79ade6a | ||
|
0b48145044 | ||
|
28993ec8b6 | ||
|
cf29882768 | ||
|
b16342e759 | ||
|
6bc23bb27e | ||
|
d85ebb2506 | ||
|
4ad1429c5b | ||
|
1729115a07 | ||
|
01a8239da3 | ||
|
e2c1dd0b3c | ||
|
1a8d83556a | ||
|
923693fc14 | ||
|
39deaa0fc0 | ||
|
096caa47ed | ||
|
01272e0626 | ||
|
cd7cd794dc | ||
|
6b2ad60d47 | ||
|
1ecca13347 | ||
|
856f20dd26 | ||
|
8fc3d6eaa0 | ||
|
918820850e | ||
|
d464e036e0 | ||
|
92bfd1b495 | ||
|
b3f4dcb2d1 | ||
|
35656c7782 | ||
|
a0618b4a1e | ||
|
b740c9f747 | ||
|
4d953f30f8 | ||
|
a0b9947172 | ||
|
5cbf59285d | ||
|
6adfa4571e | ||
|
0cb10a5255 | ||
|
d5e526cc02 | ||
|
c06c1f37a4 | ||
|
6e74183381 | ||
|
79f44aa23c | ||
|
b98627d095 | ||
|
28f97829c2 | ||
|
973ee2e315 | ||
|
11f9862cb9 | ||
|
5b768b4295 | ||
|
56e283ea9a | ||
|
75e6aa1ac8 | ||
|
d78629db24 | ||
|
fc01d05bb6 | ||
|
035538dac7 | ||
|
00155509a3 | ||
|
955b3aa21b | ||
|
09801c54a0 | ||
|
df00fdd01e | ||
|
cb0f10f4b6 | ||
|
320ba839dd | ||
|
6437bbfe91 | ||
|
74bef229c1 | ||
|
aac24f36ce | ||
|
f20b0c3058 | ||
|
de2b3f5860 | ||
|
f358634e0a | ||
|
2bf9fc57cc | ||
|
4172c90f07 | ||
|
10536793fb | ||
|
18fa9767d4 | ||
|
1d499a99f8 | ||
|
6d82c139cf | ||
|
0fb9bcf66d | ||
|
57e0e8ca2b | ||
|
13e12f4777 | ||
|
138ae98b37 | ||
|
c8b9c649a5 | ||
|
99e5ab3c9d | ||
|
25f34ecc24 | ||
|
238fd8e077 | ||
|
0419bc5c0e | ||
|
751e3c0f25 | ||
|
589ad64a97 | ||
|
6c2e17d8a4 | ||
|
e17cb6e00b | ||
|
a97a83b4d0 | ||
|
5f196b1702 | ||
|
2024943390 | ||
|
c183f90466 | ||
|
3ac8166410 | ||
|
fd8c757cbd | ||
|
158472dbbf | ||
|
527fbf1699 | ||
|
f902d5e827 | ||
|
d73d9c8034 | ||
|
cb4eafedb6 | ||
|
5ffe3eed64 | ||
|
d7a11222a8 | ||
|
f2f1d6213a | ||
|
cd106eb777 | ||
|
589cd31743 | ||
|
5fcc39c8b2 | ||
|
9aa481ad4d | ||
|
be5567c421 | ||
|
f2840a72a3 | ||
|
a5c21b3f94 | ||
|
9c0bbe2bed | ||
|
7a6d94b06f | ||
|
a56aaa5bf7 | ||
|
a6fc1cb0c5 | ||
|
1eed2a03dd | ||
|
4e2e623790 | ||
|
af2f1ba456 | ||
|
6f4ee21cc9 | ||
|
e4a5191178 | ||
|
aa7b477b30 | ||
|
5b3c593f77 | ||
|
6457ce2d1c | ||
|
0bfd779bbe | ||
|
4ccffd3894 | ||
|
4b4f21369e | ||
|
fcdcff6384 | ||
|
7cdc56c8d1 | ||
|
85969087a8 | ||
|
8959bcd2e2 | ||
|
0033b9a289 | ||
|
090f82814a | ||
|
6ed85e90d0 | ||
|
ecff16c7dc | ||
|
e0aa7f7d96 | ||
|
bc46dcb336 | ||
|
8c0ffc5ddb | ||
|
827c7a81ff | ||
|
c14f93323c | ||
|
2483cd01e2 | ||
|
3f1500a3a8 | ||
|
424e770f00 | ||
|
56e81609d7 | ||
|
6845a5164a | ||
|
3e558a61b2 | ||
|
3b6d20d657 | ||
|
7f56178d13 | ||
|
72d48a5ef8 | ||
|
2edc36ca29 | ||
|
7949ab4f51 | ||
|
9b058efa41 | ||
|
a544698888 | ||
|
d735bccbb6 | ||
|
9734a61c2a | ||
|
fe5f2c6e16 | ||
|
5f1e91e04e | ||
|
c6b6c280fb | ||
|
5938775746 | ||
|
a52aa9f69f | ||
|
3f6663dca4 | ||
|
451526bf15 | ||
|
20c0e89d81 | ||
|
67f181f220 | ||
|
bbfec43d31 | ||
|
5d1444295b | ||
|
57fb9a40a0 | ||
|
bf6aab0a93 | ||
|
14e075c5fb | ||
|
62a2ccc849 | ||
|
53cdbaec58 | ||
|
6bfe25f72c | ||
|
08a1ceed8a | ||
|
eee52d4fd8 | ||
|
206ea2545c | ||
|
5770b99ff5 | ||
|
46f5a660c7 | ||
|
0581a57b79 | ||
|
ce1d1aa1b6 | ||
|
eb9e65ea99 | ||
|
0ff109178a | ||
|
d3407a8aee | ||
|
9a241ad557 | ||
|
b58056659b | ||
|
dda41db5d2 | ||
|
da995a3891 | ||
|
41294bb170 | ||
|
4e393a13f0 | ||
|
e71dae155b | ||
|
1bf184802b | ||
|
e038b72f24 | ||
|
66dd448953 | ||
|
a37c010f84 | ||
|
92520b3131 | ||
|
583d24963a | ||
|
28528ca920 | ||
|
392708963f | ||
|
e2575bdfbe | ||
|
632d0a2298 | ||
|
da2b3d1a6a | ||
|
fe25adc816 | ||
|
30ee66db9f | ||
|
1362fe027a | ||
|
fed42db5bd | ||
|
ef7ff09648 | ||
|
efc3b2fc1e | ||
|
a7f0c0154b | ||
|
04a14af7bf | ||
|
34b8b12812 | ||
|
5989b7de4c | ||
|
c65901e236 | ||
|
5f014adf66 | ||
|
cef153feb7 | ||
|
52e861eba0 | ||
|
15dcb2b0d1 | ||
|
0b6beb8c77 | ||
|
54c77c5669 | ||
|
ee0af7ef3a | ||
|
d6c596f67f | ||
|
a900c85945 | ||
|
79a5fd53c6 | ||
|
838dec5606 | ||
|
100d0a42c4 | ||
|
b0d76ec128 | ||
|
5e72896875 | ||
|
f490bb5483 | ||
|
9c7e052d82 | ||
|
6bda6ccde6 | ||
|
6c0815a755 | ||
|
e9d3a6fc01 | ||
|
a2fe110777 | ||
|
11bc8897d5 | ||
|
ebd173824b | ||
|
16a1a94ce9 | ||
|
c62bb2a7e5 | ||
|
234be5373f | ||
|
d93d3eb867 | ||
|
d104b0e5d3 | ||
|
a971b34b48 | ||
|
31ad28a32f | ||
|
1b146d8b80 | ||
|
d7512c18c1 | ||
|
8efb84762d | ||
|
5c10986c6b | ||
|
db0c96be7a | ||
|
f4ea913c7e | ||
|
9b7d7fd316 | ||
|
e482a52f69 | ||
|
650f94b7f5 | ||
|
af1153f5d3 | ||
|
784a865cde | ||
|
e6351e554d | ||
|
1e4fb8e9ba | ||
|
82e93fc7de | ||
|
3ff9dc0fa9 | ||
|
1d475eff4a | ||
|
272f36672d | ||
|
4c0079087a | ||
|
fc29d72b29 | ||
|
b8dc4c018c | ||
|
8316e3692f | ||
|
71a4d3144b | ||
|
04ad1dd641 | ||
|
c46ce1f7c5 | ||
|
32cb9116e4 | ||
|
bf33eb7a6d | ||
|
81129c7365 | ||
|
d7ae56c292 | ||
|
1577fff13c | ||
|
5ee1bbfd2a | ||
|
91a97aab4d | ||
|
4c5790360a | ||
|
c864789c22 | ||
|
d4b4d04aa8 | ||
|
c67951e199 | ||
|
b14cb46129 | ||
|
10d3b4cb7d | ||
|
b8e821a891 | ||
|
a0ea1d3e05 | ||
|
c4e0cfa2f4 | ||
|
08f19c0227 | ||
|
bc4bef1e2c | ||
|
812bbb14f2 | ||
|
a52840e4b6 | ||
|
7ccaa6fa53 | ||
|
0164a4942d | ||
|
8ad0363eff | ||
|
cc5d69800e | ||
|
b74d4601cc | ||
|
f467eab757 | ||
|
4a47954ca8 | ||
|
07f8381e57 | ||
|
05d2819a00 | ||
|
9ca6881daa | ||
|
34f90156fb | ||
|
51a8226932 | ||
|
2a0542ce83 | ||
|
353eee059f | ||
|
09a3de4acc | ||
|
d5a53e2d8d | ||
|
777f9fd9a7 | ||
|
d969459aa0 | ||
|
53b286c98d | ||
|
b04997f045 | ||
|
5122715138 | ||
|
d8aa88d274 | ||
|
b2d8a9d260 | ||
|
40ab3aad74 | ||
|
b3edf03e71 | ||
|
3c54fd8469 | ||
|
6a7ec5fc06 | ||
|
5ee4642956 | ||
|
927cd10e85 | ||
|
8f1bc49ed6 | ||
|
40d3d09d5b | ||
|
3a9fa4f8ef | ||
|
d7ab58ea88 | ||
|
552aa7767d | ||
|
636d465c3d | ||
|
116f623604 | ||
|
5a8b8ad60b | ||
|
83a8113fd8 | ||
|
5911e835b6 | ||
|
ada7a7d31a | ||
|
f5cb187d4a | ||
|
1855bb9925 | ||
|
39bd14f340 | ||
|
5ab14ccccd | ||
|
b06d97d294 | ||
|
ad9942763b | ||
|
05ae92def7 | ||
|
e9987ba2f2 | ||
|
9e464716a5 | ||
|
9ce186a3e5 | ||
|
5deefc6d10 | ||
|
2c753fcdfd | ||
|
9f078259b0 | ||
|
819e713412 | ||
|
7c54c7d282 | ||
|
a261a3ab55 | ||
|
b175d67e57 | ||
|
131d09ac56 | ||
|
fa712c5e02 | ||
|
ae0af415c4 | ||
|
e61cec29da | ||
|
b6bdcd393b | ||
|
982de8ddff | ||
|
fc5a29b43a | ||
|
0757a57122 | ||
|
dab8b979bf | ||
|
e7239ba96f | ||
|
9140808f2d | ||
|
0f53591818 | ||
|
f363260a49 | ||
|
bd2cb8080a | ||
|
697bc6f45c | ||
|
55521d3ab1 | ||
|
4801858c19 | ||
|
613d352308 | ||
|
c7373ccc8e | ||
|
e12fb83b78 | ||
|
5600a71514 | ||
|
52126609af | ||
|
aa57f4be9d | ||
|
f27545aee4 | ||
|
e4a828f32a | ||
|
5c0841a139 | ||
|
c65ec66cb1 | ||
|
fb65790f4d | ||
|
f627c62df2 | ||
|
0c841d8d18 | ||
|
e53792cbce | ||
|
d6a74a59dd | ||
|
10987b38ba | ||
|
3f4825db12 | ||
|
e9fbd33fbe | ||
|
25c776aec3 | ||
|
ef3a102902 | ||
|
3fce6790fc | ||
|
b8cbfd7569 | ||
|
2ef275c95b | ||
|
98852f7164 | ||
|
810526e377 | ||
|
f663765c7e | ||
|
1ef285fa1d | ||
|
a35eba79cc | ||
|
21d5e7ecf7 | ||
|
8a3eef85b1 | ||
|
1db797f7e3 | ||
|
7872416018 | ||
|
87ba51d21f | ||
|
27c074ba25 | ||
|
2c630117c1 | ||
|
4e22347e8c | ||
|
fb22e90d6d | ||
|
14c90915b0 | ||
|
f078706442 | ||
|
fe734e1152 | ||
|
4d5d068a99 | ||
|
919814c0d7 | ||
|
a4cd712b02 | ||
|
6ffd8dd31d | ||
|
c1b3d4afec | ||
|
083894f518 | ||
|
81ed8a1d9f | ||
|
f91882400b | ||
|
abf7f93bda | ||
|
bcc3964aed | ||
|
9c59d44e9f | ||
|
e08673ac8d | ||
|
c1f9a5edaf | ||
|
54caef61a4 | ||
|
574357b47a | ||
|
9f76b31a19 | ||
|
86ec69c1b0 | ||
|
8d8d46a2b8 | ||
|
b00040c25d |
1
.github/FUNDING.yml
vendored
Executable file
@@ -0,0 +1 @@
|
||||
custom: ["https://paypal.me/oliverkoester"]
|
40
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Report a bug in Knutwurst's Marlin Firmware
|
||||
title: "[BUG] (short description)"
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
------ PLEASE USE THIS TEMPLATE! --------
|
||||
|
||||
Have you read all Wiki articles in cluding the FAQ?
|
||||
https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki
|
||||
|
||||
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
|
||||
|
||||
-->
|
||||
|
||||
### Bug Description
|
||||
|
||||
<!-- Description of the bug -->
|
||||
|
||||
### Steps to Reproduce
|
||||
|
||||
<!-- Please describe the steps needed to reproduce the issue -->
|
||||
|
||||
1. [First Step]
|
||||
2. [Second Step]
|
||||
3. [and so on...]
|
||||
|
||||
**Expected behavior:** [What you expect to happen]
|
||||
|
||||
**Actual behavior:** [What actually happens]
|
||||
|
||||
#### Additional Information
|
||||
|
||||
* Provide pictures or links to videos that clearly demonstrate the issue.
|
||||
* See [How Can I Contribute](#how-can-i-contribute) for additional guidelines.
|
14
.github/ISSUE_TEMPLATE/config.yml
vendored
Executable file
@@ -0,0 +1,14 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- 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!
|
36
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Executable file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Request a Feature
|
||||
title: "[FR] (feature request title)"
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
|
||||
------ PLEASE USE THIS TEMPLATE! --------
|
||||
|
||||
Have you read all Wiki articles in cluding the FAQ?
|
||||
https://github.com/knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S/wiki
|
||||
|
||||
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 -->
|
||||
|
||||
### Feature Workflow
|
||||
|
||||
<!-- Please describe the feature's behavior, user interaction, etc. -->
|
||||
|
||||
1. [First Action]
|
||||
2. [Second Action]
|
||||
3. [and so on...]
|
||||
|
||||
#### Additional Information
|
||||
|
||||
* Provide pictures or links that demonstrate a similar feature or concept.
|
11
.github/issue_template.md
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
# NO SUPPORT REQUESTS PLEASE
|
||||
|
||||
Do you want to ask a question? Are you looking for support? Please don't post here. Support Requests posted here will be automatically closed!
|
||||
|
||||
Instead use one of the following options:
|
||||
|
||||
- The Marlin Firmware forum at https://reprap.org/forum/list.php?415
|
||||
- The MarlinFirmware Facebook Group at https://www.facebook.com/groups/1049718498464482/
|
||||
- The MarlinFirmware Discord Server at https://discord.gg/n5NJ59y.
|
||||
|
||||
Before filing an issue be sure to test the latest "bugfix" branch to see whether the issue is already addressed.
|
40
.github/lock.yml
vendored
Executable file
@@ -0,0 +1,40 @@
|
||||
#
|
||||
# Configuration for Lock Threads - https://github.com/dessant/lock-threads-app
|
||||
#
|
||||
|
||||
# Number of days of inactivity before a closed issue or pull request is locked
|
||||
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
|
||||
skipCreatedBefore: false
|
||||
|
||||
# Issues and pull requests with these labels will be ignored. Set to `[]` to disable
|
||||
exemptLabels: [ 'no-locking' ]
|
||||
|
||||
# Label to add before locking, such as `outdated`. Set to `false` to disable
|
||||
lockLabel: false
|
||||
|
||||
# Comment to post before locking. Set to `false` to disable
|
||||
lockComment: >
|
||||
This thread has been automatically locked since there has not been
|
||||
any recent activity after it was closed. Please open a new issue for
|
||||
related bugs.
|
||||
|
||||
# Assign `resolved` as the reason for locking. Set to `false` to disable
|
||||
setLockReason: true
|
||||
|
||||
# Limit to only `issues` or `pulls`
|
||||
# only: issues
|
||||
|
||||
# Optionally, specify configuration settings just for `issues` or `pulls`
|
||||
# issues:
|
||||
# exemptLabels:
|
||||
# - help-wanted
|
||||
# lockLabel: outdated
|
||||
|
||||
# pulls:
|
||||
# daysUntilLock: 30
|
||||
|
||||
# Repository to extend settings from
|
||||
# _extends: repo
|
23
.github/pull_request_template.md
vendored
Executable file
@@ -0,0 +1,23 @@
|
||||
### Requirements
|
||||
|
||||
* Filling out this template is required. Pull Requests without a clear description may be closed at the maintainers' discretion.
|
||||
|
||||
### Description
|
||||
|
||||
<!--
|
||||
|
||||
We must be able to understand your proposed change from this description. If we can't understand what the code will do from this description, the Pull Request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code recently, so please walk us through the concepts.
|
||||
|
||||
-->
|
||||
|
||||
### Benefits
|
||||
|
||||
<!-- What does this fix or improve? -->
|
||||
|
||||
### Configurations
|
||||
|
||||
<!-- Attach any Configuration.h, Configuration_adv.h, or platformio.ini files needed to compile/test your Pull Request. -->
|
||||
|
||||
### Related Issues
|
||||
|
||||
<!-- Whether this fixes a bug or fulfills a feature request, please list any related Issues here. -->
|
119
.github/workflows/build-all.yml
vendored
Executable file
@@ -0,0 +1,119 @@
|
||||
name: Build All Firmware Variants
|
||||
|
||||
on:
|
||||
#pull_request:
|
||||
# branches:
|
||||
# - master
|
||||
# paths-ignore:
|
||||
# - config/**
|
||||
# - data/**
|
||||
# - docs/**
|
||||
# - '**/*.md'
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths-ignore:
|
||||
- config/**
|
||||
- data/**
|
||||
- docs/**
|
||||
- '**/*.md'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
if: github.repository == 'knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
platform:
|
||||
# Knutwurst Base Environments
|
||||
- MEGA_1G
|
||||
- MEGA_1G_TMC
|
||||
- MEGA_1G_BLT_10
|
||||
- MEGA_1G_BLT_11
|
||||
- MEGA_1G_TMC_BLT_10
|
||||
- MEGA_1G_TMC_BLT_11
|
||||
- MEGA
|
||||
- MEGA_TMC
|
||||
- MEGA_BLT_10
|
||||
- MEGA_BLT_11
|
||||
- MEGA_TMC_BLT_10
|
||||
- MEGA_TMC_BLT_11
|
||||
- MEGA_S
|
||||
- MEGA_S_TMC
|
||||
- MEGA_S_BLT_10
|
||||
- MEGA_S_BLT_11
|
||||
- MEGA_S_TMC_BLT_10
|
||||
- MEGA_S_TMC_BLT_11
|
||||
- MEGA_S_DGUS
|
||||
- MEGA_S_DGUS_TMC
|
||||
- MEGA_S_DGUS_BLT_10
|
||||
- MEGA_S_DGUS_BLT_11
|
||||
- MEGA_S_DGUS_TMC_BLT_10
|
||||
- MEGA_S_DGUS_TMC_BLT_11
|
||||
- MEGA_X
|
||||
- MEGA_X_TMC
|
||||
- MEGA_X_BLT_10
|
||||
- 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:
|
||||
|
||||
- name: Setup Python 3.7
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: '3.7' # Version range or exact version of a Python version to use, using semvers version range syntax.
|
||||
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
|
||||
|
||||
- name: Install PlatformIO
|
||||
run: |
|
||||
pip install -U https://github.com/platformio/platformio-core/archive/develop.zip
|
||||
platformio update
|
||||
|
||||
- name: Install PlatformIO dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install platformio
|
||||
|
||||
- uses: actions/checkout@master
|
||||
|
||||
- name: Compile Firmware with PlatformIO
|
||||
run: platformio run --environment ${{ matrix.platform }}
|
||||
|
||||
- name: Rename Output Files
|
||||
run: |
|
||||
CUSTOM_BUILD_VERSION=$(egrep -o "([0-9]{1,}\.)+[a-zA-Z0-9_.-]{1,}" Marlin/src/inc/Version.h -m2 | tail -n1) && \
|
||||
mv .pio/build/${{ matrix.platform }}/firmware.hex .pio/build/${{ matrix.platform }}/${{ matrix.platform }}_v$CUSTOM_BUILD_VERSION.hex
|
||||
|
||||
#- name: Archive artifacts into single Files
|
||||
# uses: actions/upload-artifact@master
|
||||
# with:
|
||||
# name: Knutwurst_${{ matrix.platform }}
|
||||
# path: |
|
||||
# .pio/build/${{ matrix.platform }}/${{ matrix.platform }}_v*.hex
|
||||
|
||||
- name: Archive all artifacts into one ZIP file
|
||||
uses: actions/upload-artifact@master
|
||||
with:
|
||||
name: Knuwurst-all-in-one-${{github.sha}}
|
||||
path: |
|
||||
.pio/build/${{ matrix.platform }}/${{ matrix.platform }}_v*.hex
|
27
.github/workflows/close-stale.yml
vendored
Executable file
@@ -0,0 +1,27 @@
|
||||
#
|
||||
# close-stale.yml
|
||||
# Close open issues after a period of inactivity
|
||||
#
|
||||
|
||||
name: Close Stale Issues
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "22 1 * * *"
|
||||
|
||||
jobs:
|
||||
stale:
|
||||
name: Close Stale Issues
|
||||
if: github.repository == 'knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@v3
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label / comment or this will be closed in 5 days.'
|
||||
days-before-stale: 30
|
||||
days-before-close: 5
|
||||
stale-issue-label: 'stale-closing-soon'
|
||||
exempt-issue-labels: 'T: Feature Request'
|
32
.github/workflows/lock-closed.yml
vendored
Executable file
@@ -0,0 +1,32 @@
|
||||
#
|
||||
# lock-closed.yml
|
||||
# Lock closed issues after a period of inactivity
|
||||
#
|
||||
|
||||
name: Lock Closed Issues
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 1/13 * * *'
|
||||
|
||||
jobs:
|
||||
lock:
|
||||
name: Lock Closed Issues
|
||||
if: github.repository == 'knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: dessant/lock-threads@v2
|
||||
with:
|
||||
github-token: ${{ github.token }}
|
||||
process-only: 'issues'
|
||||
issue-lock-inactive-days: '60'
|
||||
issue-exclude-created-before: ''
|
||||
issue-exclude-labels: 'no-locking'
|
||||
issue-lock-labels: ''
|
||||
issue-lock-comment: >
|
||||
This issue has been automatically locked since there
|
||||
has not been any recent activity after it was closed.
|
||||
Please open a new issue for related bugs.
|
||||
issue-lock-reason: ''
|
13
.github/workflows/nightly_cleanup.yml
vendored
Normal 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
|
22
.github/workflows/unlock-reopened.yml
vendored
Executable file
@@ -0,0 +1,22 @@
|
||||
#
|
||||
# unlock-reopened.yml
|
||||
# Unlock an issue whenever it is re-opened
|
||||
#
|
||||
|
||||
name: "Unlock reopened issue"
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [reopened]
|
||||
|
||||
jobs:
|
||||
unlock:
|
||||
name: Unlock Reopened
|
||||
if: github.repository == 'knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S'
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: OSDKDev/unlock-issues@v1.1
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
@@ -152,42 +152,61 @@
|
||||
* THERMAL_PROTECTION_HYSTERESIS and/or THERMAL_PROTECTION_PERIOD
|
||||
*/
|
||||
#if ENABLED(THERMAL_PROTECTION_HOTENDS)
|
||||
#define THERMAL_PROTECTION_PERIOD 3 // 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 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
|
||||
|
||||
//#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 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 35 // Seconds
|
||||
#define WATCH_TEMP_INCREASE 5 // 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
|
||||
#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
|
||||
@@ -537,19 +550,28 @@
|
||||
#define NUM_Z_STEPPER_DRIVERS 2 // (1-4) Z options change based on how many
|
||||
|
||||
#if NUM_Z_STEPPER_DRIVERS > 1
|
||||
#define Z_MULTI_ENDSTOPS
|
||||
#if ENABLED(Z_MULTI_ENDSTOPS)
|
||||
#define Z2_USE_ENDSTOP _XMAX_
|
||||
#define Z2_ENDSTOP_ADJUSTMENT 0
|
||||
#if NUM_Z_STEPPER_DRIVERS >= 3
|
||||
#define Z3_USE_ENDSTOP _YMAX_
|
||||
#define Z3_ENDSTOP_ADJUSTMENT 0
|
||||
#endif
|
||||
#if NUM_Z_STEPPER_DRIVERS >= 4
|
||||
#define Z4_USE_ENDSTOP _ZMAX_
|
||||
#define Z4_ENDSTOP_ADJUSTMENT 0
|
||||
#endif
|
||||
#if DISABLED(KNUTWURST_ONE_Z_ENDSTOP)
|
||||
#define Z_MULTI_ENDSTOPS
|
||||
#endif
|
||||
#if ENABLED(Z_MULTI_ENDSTOPS)
|
||||
#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_
|
||||
#define Z3_ENDSTOP_ADJUSTMENT 0
|
||||
#endif
|
||||
#if NUM_Z_STEPPER_DRIVERS >= 4
|
||||
#define Z4_USE_ENDSTOP _ZMAX_
|
||||
#define Z4_ENDSTOP_ADJUSTMENT 0
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -613,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
|
||||
|
||||
@@ -681,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
|
||||
@@ -763,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.
|
||||
@@ -1485,9 +1508,7 @@
|
||||
*
|
||||
* Warning: Does not respect endstops!
|
||||
*/
|
||||
#if ENABLED(KNUTWURST_BLTOUCH)
|
||||
#define BABYSTEPPING
|
||||
#endif
|
||||
#if ENABLED(BABYSTEPPING)
|
||||
//#define INTEGRATED_BABYSTEPPING // EXPERIMENTAL integration of babystepping into the Stepper ISR
|
||||
//#define BABYSTEP_WITHOUT_HOMING
|
||||
@@ -1537,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
|
||||
|
||||
@@ -1574,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
|
||||
|
||||
/**
|
||||
@@ -1659,15 +1671,15 @@
|
||||
//
|
||||
// G2/G3 Arc Support
|
||||
//
|
||||
//#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#define ARC_SUPPORT // Disable this feature to save ~3226 bytes
|
||||
#if ENABLED(ARC_SUPPORT)
|
||||
#define MM_PER_ARC_SEGMENT 1 // (mm) Length (or minimum length) of each arc segment
|
||||
#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 24 // Minimum number of segments in a complete circle
|
||||
#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 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
|
||||
#define ARC_P_CIRCLES // Enable the 'P' parameter to specify complete circles
|
||||
#define CNC_WORKSPACE_PLANES // Allow G2/G3 to operate in XY, ZX, or YZ planes
|
||||
#endif
|
||||
|
||||
// Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
|
||||
@@ -1702,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)
|
||||
@@ -1716,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)
|
||||
@@ -1743,39 +1758,54 @@
|
||||
|
||||
// @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
|
||||
// the host to signal the RX buffer is becoming full.
|
||||
//#define SERIAL_XON_XOFF
|
||||
#define SERIAL_XON_XOFF
|
||||
#endif
|
||||
|
||||
// Add M575 G-code to change the baud rate
|
||||
@@ -3176,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)
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -126,7 +126,7 @@
|
||||
#define STR_INVALID_E_STEPPER "Invalid E stepper"
|
||||
#define STR_E_STEPPER_NOT_SPECIFIED "E stepper not specified"
|
||||
#define STR_INVALID_SOLENOID "Invalid solenoid"
|
||||
#define STR_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " MARLIN-AI3M_VERSION:" CUSTOM_BUILD_VERSION " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID
|
||||
#define STR_M115_REPORT "FIRMWARE_NAME:Marlin " DETAILED_BUILD_VERSION " KNUTWURST_AI3M_VERSION:" CUSTOM_BUILD_VERSION " DISTRIBUTION_DATE:" STRING_DISTRIBUTION_DATE " SOURCE_CODE_URL:" SOURCE_CODE_URL " PROTOCOL_VERSION:" PROTOCOL_VERSION " MACHINE_TYPE:" MACHINE_NAME " EXTRUDER_COUNT:" STRINGIFY(EXTRUDERS) " UUID:" MACHINE_UUID
|
||||
#define STR_MARLIN_AI3M "Marlin-AI3M"
|
||||
#define STR_COUNT_X " Count X:"
|
||||
#define STR_COUNT_A " Count A:"
|
||||
|
@@ -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) {
|
||||
|
@@ -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{ \
|
||||
|
228
Marlin/src/feature/meatpack.cpp
Normal 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
|
123
Marlin/src/feature/meatpack.h
Normal 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;
|
@@ -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;
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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);
|
||||
|
||||
};
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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.1"
|
||||
#define CUSTOM_BUILD_VERSION "1.3.1"
|
||||
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2020-07-09"
|
||||
#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
|
||||
|
||||
/**
|
||||
|
@@ -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,6 +48,12 @@ char *ftostr32(const float &);
|
||||
#define MSG_MY_VERSION CUSTOM_BUILD_VERSION
|
||||
#define MAX_PRINTABLE_FILENAME_LEN 30
|
||||
|
||||
#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
|
||||
#define ANYCUBIC_TFT_STATE_SDPAUSE 2
|
||||
@@ -59,6 +77,8 @@ char *ftostr32(const float &);
|
||||
#define SM_LOAD_DEFAULTS_S "<LDDEF>"
|
||||
#define SM_PREHEAT_BED_L "<Preheat Ultrabase>"
|
||||
#define SM_PREHEAT_BED_S "<PREHE>"
|
||||
#define SM_MESH_MENU_L "<Mesh Leveling>"
|
||||
#define SM_MESH_MENU_S "<MESHL>"
|
||||
#define SM_MESH_START_L "<Start Mesh Leveling>"
|
||||
#define SM_MESH_START_S "<SMESH>"
|
||||
#define SM_MESH_NEXT_L "<Next Mesh Point>"
|
||||
@@ -75,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>"
|
||||
@@ -86,54 +108,143 @@ 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>"
|
||||
|
||||
#define SM_FLOWMENU_L "<Set Flowrate>"
|
||||
#define SM_FLOWMENU_S "<SETFLO>"
|
||||
#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 "<FLUP>"
|
||||
#define SM_FLOW_DN_L "<Down>"
|
||||
#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>"
|
||||
#define SM_EZLVL_MENU_S "<EZLVLM>"
|
||||
#define SM_EZLVL_P1_L "<Point A>"
|
||||
#define SM_EZLVL_P1_S "<EZLPA>"
|
||||
#define SM_EZLVL_P2_L "<Point B>"
|
||||
#define SM_EZLVL_P2_S "<EZLPB>"
|
||||
#define SM_EZLVL_P3_L "<Point C>"
|
||||
#define SM_EZLVL_P3_S "<EZLPC>"
|
||||
#define SM_EZLVL_P4_L "<Point D>"
|
||||
#define SM_EZLVL_P4_S "<EZLPD>"
|
||||
#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)
|
||||
#define SM_DIR_UP_L "<<<<<<.gcode"
|
||||
#define SM_DIR_UP_L "<<< BACK <<< .gcode"
|
||||
#define SM_DIR_UP_S "DIR_UP~1.GCO"
|
||||
#define SM_SPECIAL_MENU_L "<Special Menu>.gcode"
|
||||
#define SM_SPECIAL_MENU_L "<Special Menu> .gcode"
|
||||
#define SM_SPECIAL_MENU_S "<SPECI~1.GCO"
|
||||
#define SM_PID_HOTEND_L "<PID Tune Hotend>.gcode"
|
||||
#define SM_PID_HOTEND_L "<PID Tune Hotend> .gcode"
|
||||
#define SM_PID_HOTEND_S "<PIDTU~1.GCO"
|
||||
#define SM_PID_BED_L "<PID Tune Ultrabase>.gcode"
|
||||
#define SM_PID_BED_S "<PIDTU~2.GCO"
|
||||
#define SM_SAVE_EEPROM_L "<Save EEPROM>.gcode"
|
||||
#define SM_SAVE_EEPROM_L "<Save EEPROM> .gcode"
|
||||
#define SM_SAVE_EEPROM_S "<SAVEE~1.GCO"
|
||||
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults>.gcode"
|
||||
#define SM_LOAD_DEFAULTS_L "<Load FW Defaults> .gcode"
|
||||
#define SM_LOAD_DEFAULTS_S "<LOADF~1.GCO"
|
||||
#define SM_PREHEAT_BED_L "<Preheat Ultrabase>.gcode"
|
||||
#define SM_PREHEAT_BED_L "<Preheat Ultrabase> .gcode"
|
||||
#define SM_PREHEAT_BED_S "<PREHE~1.GCO"
|
||||
#define SM_MESH_START_L "<Start Mesh Leveling>.gcode"
|
||||
#define SM_MESH_MENU_L "<Mesh Leveling> .gcode"
|
||||
#define SM_MESH_MENU_S "<MESHL~1.GCO"
|
||||
#define SM_MESH_START_L "<Start MeshLeveling>.gcode"
|
||||
#define SM_MESH_START_S "<START~1.GCO"
|
||||
#define SM_MESH_NEXT_L "<Next Mesh Point>.gcode"
|
||||
#define SM_MESH_NEXT_L "<Next Mesh Point> .gcode"
|
||||
#define SM_MESH_NEXT_S "<NEXTM~1.GCO"
|
||||
#define SM_Z_UP_01_L "<Z Up 0.1>.gcode"
|
||||
#define SM_Z_UP_01_L "<Z Up 0.1> .gcode"
|
||||
#define SM_Z_UP_01_S "<ZUP01~1.GCO"
|
||||
#define SM_Z_DN_01_L "<Z Down 0.1>.gcode"
|
||||
#define SM_Z_DN_01_L "<Z Down 0.1> .gcode"
|
||||
#define SM_Z_DN_01_S "<ZDOWN~1.GCO"
|
||||
#define SM_Z_UP_002_L "<Z Up 0.02>.gcode"
|
||||
#define SM_Z_UP_002_L "<Z Up 0.02> .gcode"
|
||||
#define SM_Z_UP_002_S "<ZUP00~1.GCO"
|
||||
#define SM_Z_DN_002_L "<Z Down 0.02>.gcode"
|
||||
#define SM_Z_DN_002_L "<Z Down 0.02> .gcode"
|
||||
#define SM_Z_DN_002_S "<ZDOWN~2.GCO"
|
||||
#define SM_Z_UP_001_L "<Z Up 0.01>.gcode"
|
||||
#define SM_Z_UP_001_L "<Z Up 0.01> .gcode"
|
||||
#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_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_PAUSE_L "<Fil. Change Pause>.gcode"
|
||||
#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"
|
||||
#define SM_RESUME_S "<FILCH~1.GCO"
|
||||
#define SM_DIS_FILSENS_L "<Disable Fil. Sensor>.gcode"
|
||||
#define SM_DIS_FILSENS_L "<Disable Fil.Sensor>.gcode"
|
||||
#define SM_DIS_FILSENS_S "<DISAB~1.GCO"
|
||||
#define SM_EN_FILSENS_L "<Enable Fil. Sensor>.gcode"
|
||||
#define SM_EN_FILSENS_S "<ENABL~1.GCO"
|
||||
#define SM_EXIT_L "<Exit>.gcode"
|
||||
#define SM_EXIT_L "<Exit> .gcode"
|
||||
#define SM_EXIT_S "<EXIT_~1.GCO"
|
||||
|
||||
#define SM_BACK_L "<End Mesh Leveling> .gcode"
|
||||
#define SM_BACK_S "<BACK_~1.GCO"
|
||||
|
||||
#define SM_FLOWMENU_L "<Set Flowrate> .gcode"
|
||||
#define SM_FLOWMENU_S "<SETFLO1.GCO"
|
||||
#define SM_FLOW_DISP_L "<Flow is XXX%> .gcode"
|
||||
#define SM_FLOW_DISP_S "<FLDISPL.GCO"
|
||||
#define SM_FLOW_UP_L "<Up> .gcode"
|
||||
#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 "<Exit Flow Settings>.gcode"
|
||||
#define SM_FLOW_EXIT_S "<EXTFLW1.GCO"
|
||||
|
||||
#define SM_EZLVL_MENU_L "<Easy 4 Point Level>.gcode"
|
||||
#define SM_EZLVL_MENU_S "<EZLVLM1.GCO"
|
||||
#define SM_EZLVL_P1_L "<Point A> .gcode"
|
||||
#define SM_EZLVL_P1_S "<EZLPA01.GCO"
|
||||
#define SM_EZLVL_P2_L "<Point B> .gcode"
|
||||
#define SM_EZLVL_P2_S "<EZLPB01.GCO"
|
||||
#define SM_EZLVL_P3_L "<Point C> .gcode"
|
||||
#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 "<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
|
||||
{
|
||||
@@ -170,13 +281,14 @@ 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;
|
||||
char LastSDstatus = 0;
|
||||
uint16_t HeaterCheckCount = 0;
|
||||
bool IsParked = false;
|
||||
int currentFlowRate = 0;
|
||||
|
||||
#if defined(POWER_OUTAGE_TEST)
|
||||
struct OutageDataStruct
|
||||
@@ -190,7 +302,7 @@ private:
|
||||
} OutageData;
|
||||
#endif
|
||||
|
||||
|
||||
int CodeValueInt();
|
||||
float CodeValue();
|
||||
bool CodeSeen(char);
|
||||
void PrintList();
|
||||
@@ -209,16 +321,81 @@ private:
|
||||
|
||||
char currentTouchscreenSelection[64];
|
||||
char currentFileOrDirectory[64];
|
||||
String flowRateBuffer;
|
||||
String zOffsetBuffer;
|
||||
uint16_t MyFileNrCnt = 0;
|
||||
uint8_t SpecialMenu = false;
|
||||
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;
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
723
Marlin/src/pins/ramps/pins_RAMPS_CHIRON.h
Executable 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
|
132
Marlin/src/pins/ramps/pins_TRIGORILLA_CHIRON.h
Executable 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
|
@@ -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() {
|
||||
|
@@ -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
|
||||
|
||||
|
339
README.md
@@ -1,333 +1,28 @@
|
||||
# Knutwurst's i3 MEGA (M/S/X) Firmware (based on Marlin 2.0.5.4)
|
||||
# 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*: [](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
|
||||
|
||||
- [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))
|
||||
- [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)
|
||||
|
||||
# Inhaltsverzeichnis (Deutsch)
|
||||
- [Funktionen](#funktionen)
|
||||
- [Was ist besser?](#besser-im-vergleich-zu-anderen-firmwares-bugfixes)
|
||||
- [Bekannte Bugs](#bekannte-bugs)
|
||||
- [Häufig gestellte Fragen (FAQ)](#häufig-gesellte-fragen-faq)
|
||||
- [Fotos / Bilder](#bilder)
|
||||
- [Spezial Menü](#spezial-menü)
|
||||
- [Manual Mesh Beld Leveling](#manuelles-leveln)
|
||||
- [BLTouch Beld Leveling](#automatisches-bltouch-leveln)
|
||||
- [Downloads](#downloads)
|
||||
|
||||
|
||||
# Table of Contets (english)
|
||||
- [Features](#faq)
|
||||
- [What's better?](#faq)
|
||||
- [Known Bugs](#faq)
|
||||
- [Frequently asked questions (FAQ)](#faq)
|
||||
- [Photos / Pictures](#bilder)
|
||||
- [Special Menü](#special-menu)
|
||||
- [Manual Mesh Beld Leveling](#manual-mesh-beld-leveling)
|
||||
- [BLTouch Beld Leveling](#bltouch-beld-leveling)
|
||||
- [Download](#download)
|
||||
|
||||
|
||||
# Readme - German
|
||||
|
||||
## Funktionen
|
||||
|
||||
* Mesh-Bed Kalibrierung / Autokalibrierung mit BLTouch
|
||||
* S-Kurven Beschleunigung
|
||||
* "Juction Deviation" statt des klassischen "Jerk"
|
||||
* "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 Anycubic Touchscreen Unterstützung
|
||||
* Unterstützung des neuen Anycubic Touchscreens (DGUS II)
|
||||
* 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 220 x 225 x 210 mm
|
||||
* Automatischer 'Slowdown', falls Daten nicht schnell genug fließen
|
||||
|
||||
|
||||
## Besser im Vergleich zu anderen Firmwares (Bugfixes):
|
||||
* Aufgeräumtes Special-Menü
|
||||
* Drucker hängt sich nicht auf, wenn man Dateien mit Sonderzeichen (Umlaute, Chinesisch etc.) auf der SD Karte hat
|
||||
* Kein dummes "wackeln" der Düse nach Stoppen eines Druckvorgangs
|
||||
* Kein Abstürzen bei zu vielen Dateien auf der SD Karte
|
||||
* Kein Abstürzen bei SD-Karten über 16 GB
|
||||
* Fehler "Melodie" bei Thermal Runaway Protection
|
||||
* Kein Aufhängen, wenn SD Karte + USB gleichzeitig genutzt wird
|
||||
* Kein Aufhängen wenn man Pause drückt
|
||||
* Kein Aufhängen, wenn das Filament leer ist
|
||||
* Keine "spezielle" BLTouch Firmware nötig. Hier ist alles drin
|
||||
* Konfiguration ganz einfach über Feature-Toggles
|
||||
|
||||
---
|
||||
|
||||
# Häufig gesellte Fragen (FAQ):
|
||||
|
||||
>Knutwurst, wieso machst du auch noch so eine Firmware? Es gibt doch schon so viele?
|
||||
|
||||
Weil ich bisher keine gesehen habe, die nicht die blöden Bugs enthält, wie z.B. dass sie abstürzt, wenn man Dateien mit Sonderzeichen auf der SD Karte hat.
|
||||
|
||||
>Ist es richtig, dass du mehr Wert auf den Druck von SD-Karte legst und andere eher auf USB?
|
||||
|
||||
ich lege nicht "mehr Wert auf SD", sondern habe einfach die zahlreichen Bugs dahingehend gefixed. Die kleinen Anpassungen mit dem USB Puffer etc sind sowieso drin. Die sind aber in meinen Augen so uninteressant, dass ich es nicht erwähne, denn das wirklich komplizierte ist es, das proprietäre Display und den Cardreader korrekt anzusteuern. Alles andere ist Pillepalle.
|
||||
|
||||
>Was ist dieser "Slowdown"?
|
||||
|
||||
Der automatische Slowdown wird aktiv, falls der Drucker nicht schnell genug Daten bekommt. Dann fährt er automatisch mit der Geschwindigkeit auf 50% runter, satt unbehelligt weiterzumachen und dann zu ruckeln und Blobs zu verursachen.
|
||||
|
||||
>Wieso ist mein Drucker plötzlich lauter als vorher?
|
||||
|
||||
Dein Bauteillüfter läuft jetzt mit voller Drehzahl, was er vorher nicht tat. Stelle im Slicer (z.B. Cura) die Geschwindigkeit einfach auf 70% und schon hast du die alte Lautstärke wieder. Diese Modifikation ist notwendig, falls man den Lüfter tauschen möchte und viele Lüfter mit den originalen 8V nicht oder nur unzureichend laufen.
|
||||
|
||||
>Ist deine Firmware besser als andere?
|
||||
|
||||
Nein. Aber sicher auch nicht schlechter.
|
||||
|
||||
>Wo sind die Downloads?
|
||||
|
||||
Weiter unten.
|
||||
|
||||
>Muss ich bei TMC Treibern die Stecker drehen?
|
||||
|
||||
Nö. Lade dir einfach die korrekte Version herunter.
|
||||
|
||||
>Welche TMC2208 Motortreiber sollte ich kaufen? Lieber die V2 oder die Bigtreetech V3?
|
||||
|
||||
Weder noch! Es gibt keine "V2" oder "V3". Die offizielle letzte Version von Trinamic ist v1.2 und die beiden großen primären Hersteller für die echten SilentStepSticks sind FYSETC und WATTERROTT. Lass bloß die Finger von Bigtreetech.
|
||||
|
||||
>Ich habe die Stecker bei meinen Motoren schon gedreht, als ich die TMC Treiber eingebaut habe. Muss ich jetzt trotzdem die TMC Version flashen?
|
||||
|
||||
Nein. Benutze einfach die Nicht-TMC Version, da sonst die Motoren wieder in die falsche Richtung laufen.
|
||||
|
||||
>Als ich die Treiber eingebaut habe, qualmte mein Mainboard in der Mitte rechts. Ist das normal?
|
||||
|
||||
Nein. Du hast die Treiber falsch herum eingebaut. Jetzt ist die Z-Diode (733A) verbrannt. Tausche sie aus und alles funktioniert wieder. Deine falsch gesteckten Treiber kannst du aber vermutlich wegschmeißen.
|
||||
|
||||
>Muss ich wie bei anderen Firmwares noch die E-Steps einstellen, wenn ich einen Mega S besitze?
|
||||
|
||||
Nein, lade dir einfach die korrekte Version herunter. Trotzdem solltest du die Steps noch kalibrieren.
|
||||
|
||||
>Wieso zeigt das Display keine Fehlermeldungen an und wieso sieht es noch genau so aus wie vorher?
|
||||
|
||||
Dein Mainboard (Trigorilla) kann nur Grafikdisplays wie das 2004 oder 12864 ansteuern. Auf denen würdest du auch exakt das sehen, was in der Firmware wirklich passiert - eben weil diese das anzeigen, was die Firmware sagt. Texte, Fehlermeldungen etc...
|
||||
|
||||
Bei deinem (und auch allen anderen) Touchdisplay sieht das anders aus. Das Touch-Display ist nur eine hübsche Aufmachung und übersetzt intern die eigentlichen Befehle in etwas, was das Mainboard versteht. Es ist bloß eine "Maske" für die eigentliche Firmware.
|
||||
|
||||
Es besteht ein 1-zu-1 Mapping zwischen den Befehlen, die das Mainboard umsetzen kann (Setze Temperatur auf Wert x, Bewege Motor um 10 mm nach rechts etc). Stellst du die Temperatur im Display auf 200°C ein, schickst du eigentlich nur einen Gcode wie z.B. "M104 T1 S200", was schon im Display vorhanden sein muss.
|
||||
|
||||
Bei diesem Mapping ist man eben darauf angewiesen, dass die Funktionen, die man nutzen will, auch im Display vorhanden sind. Und leider ist nicht viel drin. Die Dateiliste ist das einzige(!) über das man einigermaßen die Kontrolle hat, da sie dynamisch angezeigt wird. Leider muss man deswegen leider auch diese dämlichen Eigenarten in Kauf nehmen, wie die Tatsache, dass nach einem Bestätigen/Aktualisieren die Liste neu aufgebaut wird und somit oben beginnt.
|
||||
|
||||
---
|
||||
|
||||
# Bilder
|
||||
## Spezial Menü
|
||||
|
||||

|
||||

|
||||
|
||||
## Manuelles Leveln
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## Automatisches BLTouch Leveln
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
# 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 oder der Arduino IDE auch selbst kompilieren.
|
||||
|
||||
Um es übersichtlich zu gestalten, beinhalten die Dateinamen die einzelnen Features.
|
||||
|
||||
`_S` steht für den Mega S mit dem Titan 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.
|
||||
|
||||
`_BLTOUCH` 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: [](https://paypal.me/oliverkoester)
|
||||
### If you like what I do you can buy me a coffee*: [](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:
|
||||
|
||||
* Mesh bed calibration / Auto calibration with BLTouch
|
||||
* S-curve acceleration
|
||||
* "Juction Deviation" instead of the classic "Jerk"
|
||||
* "Linear Pressure Control v1.5" enabled (can be configured with M900)
|
||||
* Baby stepping during printing
|
||||
* Bilinear Bed Leveling (BBL)
|
||||
* Manual editing of the measuring points
|
||||
* Full Anycubic touchscreen support
|
||||
* Support for the new Anycubic Touchscreen (DGUS II)
|
||||
* 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
|
||||
* Power outage support
|
||||
* Print bed size enlarged to 220 x 225 x 210 mm
|
||||
* Automatic slowdown in if the data is not received fast enough
|
||||
|
||||
### What's better in coparison to other firmwares (bug fixes):
|
||||
* Tidy special menu
|
||||
* Printer does not freeze if you have files with special characters (umlauts, Chinese..) on your SD card
|
||||
* No stupid "wobble" of the nozzle after stopping printing
|
||||
* No firmware crash when there are too many files on the SD card
|
||||
* No crash with SD cards over 16 GB
|
||||
* Acoustic alarm in case of a thermal runaway
|
||||
* No freezing when SD card + USB is used at the same time
|
||||
* No freezing when you press pause and try to resume
|
||||
* No freezing when the filament is empty
|
||||
* No need for a "special" BLTouch firmware. In this firmware is everything included
|
||||
* Configuration made easy via feature toggles
|
||||
|
||||
---
|
||||
|
||||
# FAQ:
|
||||
|
||||
> Knutwurst, why are you still doing such a firmware? Aren't there already so many?
|
||||
|
||||
Because I've never seen one that doesn't contain the stupid bugs like the crashes when you have files with special characters on the SD card.
|
||||
|
||||
> Is it correct that you put more emphasis on printing from SD card and others more on USB?
|
||||
|
||||
I don't put "more emphasis on SD", but just fixed the numerous bugs. The small adjustments with the USB buffer etc are included anyway. But they are so uninteresting in my eyes that I don't mention it, because the really complicated thing is to control the proprietary display and the card reader correctly. Everything else is easy-peasy.
|
||||
|
||||
> What is this "slowdown"?
|
||||
|
||||
The automatic slowdown is activated if the printer does not receive data quickly enough (e.g. via USB). Then it automatically goes down to 50%. This prevents stuttering and eliminated blobs.
|
||||
|
||||
>Why is my printer so much louder than before?
|
||||
|
||||
Your component fan is now running at full speed, which it did no before. Simply set the speed to 70% in the slicer (e.g. Cura) and you will have the old speed again. This modification is necessary if you want to replace the fan. Many aftermarket fans do not run properly or at all with the original 8V.
|
||||
|
||||
> Is your firmware better than others?
|
||||
|
||||
No. But certainly not worse either.
|
||||
|
||||
> Where are the downloads?
|
||||
|
||||
Further down.
|
||||
|
||||
> Do I have to turn the plugs for TMC drivers?
|
||||
|
||||
Nope, just download the correct version.
|
||||
|
||||
> Which TMC2208 motor drivers should I buy? The V2 or the Bigtreetech V3?
|
||||
|
||||
Neither! There is no "V2" or "V3". The official last version of Trinamic is v1.2 and the two major primary manufacturers for the real SilentStepSticks are FYSETC and WATTERROTT. Just stay away from Bigtreetech.
|
||||
|
||||
> I already turned the plugs on my motors when I installed the TMC drivers. Do I still have to flash the TMC version?
|
||||
|
||||
No. Just use the non-TMC version, otherwise the motors will turn in the wrong direction again.
|
||||
|
||||
> When I installed the drivers, my mainboard gave me the "magic smoke". Is that normal?
|
||||
|
||||
No. You installed the drivers the wrong way round. Now the Zener diode (733A) is burned. Exchange it and everything works again. You can probably throw away your wrongly inserted drivers.
|
||||
|
||||
> As with other firmwares, do I still have to set the E-Steps if I have a Mega S?
|
||||
|
||||
No, just download the correct version. Nevertheless, you should still calibrate the e-steps.
|
||||
|
||||
> Why doesn't the display show any error messages and why does it still look exactly as before?
|
||||
|
||||
Your mainboard (Trigorilla) can only control graphic displays like the 2004 or 12864. On them you would also see exactly what really happens in the firmware - to be precise, they show what the firmware says. Texts, error messages etc.
|
||||
|
||||
With your (and all other) touch displays, things look different. The touch display is just a pretty presentation and internally translates the actual commands into something that the motherboard understands. It is just a "mask" for the actual firmware.
|
||||
|
||||
There is a 1-to-1 mapping between the commands that the mainboard has implemented (set temperature to value x, move motor by 10 mm to the right, etc.). If you set the temperature in the display to 200°C, you actually only send a Gcode such as "M104 T1 S200", which must already be on the display firmware.
|
||||
|
||||
With this mapping, you have to rely on the fact that the functions you want to use are also available on the display. And unfortunately there is not much in it. The file list is the only thing(!) over which you have some control because it is displayed dynamically. Unfortunately, you have to accept these stupid idiosyncrasies, such as the fact that after confirming/updating the list is rebuilt and thus starts at the top.
|
||||
|
||||
---
|
||||
|
||||
# Pictures
|
||||
## Special Menu
|
||||
|
||||

|
||||

|
||||
|
||||
## Manual Mesh Beld Leveling
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
## BLTouch Beld Leveling
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
|
||||
---
|
||||
|
||||
# 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 with PlatformIO or the Arduino IDE.
|
||||
|
||||
In order to make it clear, the file names contain the individual features.
|
||||
|
||||
`_S` stands for the Mega S with the titan 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.
|
||||
|
||||
`_BLTOUCH` 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. ;)
|
||||
|
||||
|
||||
|
@@ -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"
|
||||
|
||||
|
@@ -1,15 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
CURRENT_VERSION="1.1.1"
|
||||
FIRMWARE_FOLDER="/Users/OKoester/Documents/Arduino/Marlin-2-0-x-Anycubic-i3-MEGA-S-Master/.pio/build/"
|
||||
OUTPUT_FOLDER="/Users/OKoester/Desktop/i3_FIRMWARE"
|
||||
BASE_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
CURRENT_USER="$(whoami)"
|
||||
|
||||
mkdir $OUTPUT_FOLDER
|
||||
VERSION_FILE="$BASE_PATH/Marlin/src/inc/Version.h"
|
||||
FIRMWARE_FOLDER="$BASE_PATH/.pio/build/"
|
||||
OUTPUT_FOLDER="/Users/$CURRENT_USER/Desktop/i3_FIRMWARE"
|
||||
|
||||
cd $FIRMWARE_FOLDER
|
||||
for dir in $FIRMWARE_FOLDER/*/ # list directories in the form "/tmp/dirname/"
|
||||
do
|
||||
dir=${dir%*/} # remove the trailing "/"
|
||||
echo ${dir##*/} # print everything after the final "<--/"
|
||||
cp ${dir##*/}/firmware.hex /$OUTPUT_FOLDER/${dir##*/}_v$CURRENT_VERSION.hex
|
||||
done
|
||||
CUSTOM_BUILD_VERSION=$(egrep -o "([0-9]{1,}\.)+[a-zA-Z0-9_.-]{1,}" $VERSION_FILE -m2 | tail -n1)
|
||||
|
||||
if [ -d "$$OUTPUT_FOLDER/v$CUSTOM_BUILD_VERSION" ]; then
|
||||
echo "$$OUTPUT_FOLDER/$CUSTOM_BUILD_VERSION already exists."
|
||||
else
|
||||
mkdir -p $OUTPUT_FOLDER/$CUSTOM_BUILD_VERSION
|
||||
fi
|
||||
|
||||
echo "Knutwurst's Mega Firmware Version: $CUSTOM_BUILD_VERSION"
|
||||
|
||||
pushd $FIRMWARE_FOLDER
|
||||
for dir in $FIRMWARE_FOLDER/*/
|
||||
do
|
||||
dir=${dir%*/}
|
||||
echo ${dir##*/}
|
||||
cp ${dir##*/}/firmware.hex /$OUTPUT_FOLDER/$CUSTOM_BUILD_VERSION/${dir##*/}_v$CUSTOM_BUILD_VERSION.hex
|
||||
done
|
||||
popd
|
||||
|
666
i3_mega_envs.ini
@@ -1,327 +1,505 @@
|
||||
###########################################################
|
||||
# #
|
||||
# Manual Leveling Configurations #
|
||||
# #
|
||||
###########################################################
|
||||
#
|
||||
# i3 Mega (First generation with only one endstop)
|
||||
#
|
||||
|
||||
[env:MEGA_1G]
|
||||
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 -DKNUTWURST_ONE_Z_ENDSTOP
|
||||
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
|
||||
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 -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP
|
||||
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
|
||||
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 -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
|
||||
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
|
||||
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 -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
|
||||
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
|
||||
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 -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_CHIRON
|
||||
|
||||
[env:MEGA_1G_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 -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega (normal Version)
|
||||
#
|
||||
[env:i3_MEGA]
|
||||
|
||||
[env:MEGA]
|
||||
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>
|
||||
#extra_scripts = pre:build_i3_mega.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -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_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_TMC]
|
||||
[env:MEGA_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>
|
||||
#extra_scripts = pre:build_i3_mega_tmc.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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 -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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 -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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 -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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 -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega S
|
||||
#
|
||||
[env:i3_MEGA_S]
|
||||
[env:MEGA_S]
|
||||
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>
|
||||
#extra_scripts = pre:build_i3_mega_s.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS]
|
||||
[env:MEGA_S_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_dgus.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_DGUS2_TFT
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_dgus_tmc.py
|
||||
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_BLTOUCH
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_S -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_S -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_DGUS2_TFT -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega S (new TFT)
|
||||
#
|
||||
[env:MEGA_S_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_S -DKNUTWURST_DGUS2_TFT
|
||||
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
|
||||
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_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
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
|
||||
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_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_S -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega X
|
||||
#
|
||||
[env:i3_MEGA_X]
|
||||
[env:MEGA_X]
|
||||
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
|
||||
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
|
||||
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_TMC
|
||||
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
|
||||
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_BLTOUCH
|
||||
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
|
||||
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_BLTOUCH
|
||||
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
|
||||
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_TMC -DKNUTWURST_BLTOUCH
|
||||
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
|
||||
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_TMC -DKNUTWURST_BLTOUCH
|
||||
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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_X_TMC]
|
||||
[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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
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_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_BLTOUCH -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
###########################################################
|
||||
# #
|
||||
# BL Touch Configurations ( TRIGORILLA_14 ) #
|
||||
# #
|
||||
###########################################################
|
||||
[env:i3_MEGA_BLTOUCH_10]
|
||||
[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>
|
||||
#extra_scripts = pre:build_i3_mega.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
[env:i3_MEGA_TMC_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_tmc.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
[env:i3_MEGA_S_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_dgus.py
|
||||
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_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_TMC_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_dgus_tmc.py
|
||||
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
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_TMC_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14 -DKNUTWURST_MEGA_S -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT
|
||||
|
||||
|
||||
[env:i3_MEGA_X_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
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_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_X_TMC_BLTOUCH_10]
|
||||
[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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
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
|
||||
|
||||
|
||||
###########################################################
|
||||
# #
|
||||
# BL Touch Configurations ( TRIGORILLA_14_11 ) #
|
||||
# #
|
||||
###########################################################
|
||||
[env:i3_MEGA_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
[env:i3_MEGA_TMC_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_tmc.py
|
||||
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_DGUS2_TFT
|
||||
|
||||
|
||||
[env:i3_MEGA_S_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s.py
|
||||
build_flags = ${common.build_flags} -DMOTHERBOARD=BOARD_TRIGORILLA_14_11 -DKNUTWURST_MEGA_S -DKNUTWURST_BLTOUCH
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_X -DKNUTWURST_DGUS2_TFT -DKNUTWURST_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_dgus.py
|
||||
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_TMC
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_DGUS_TMC_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_dgus_tmc.py
|
||||
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
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_S_TMC_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
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_DGUS2_TFT
|
||||
|
||||
|
||||
[env:i3_MEGA_X_BLTOUCH_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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
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_TMC
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_TMC -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
[env:i3_MEGA_X_TMC_BLTOUCH_11]
|
||||
[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>
|
||||
#extra_scripts = pre:build_i3_mega_s_tmc.py
|
||||
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
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_P -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# i3 Mega P
|
||||
#
|
||||
[env:MEGA_P]
|
||||
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_P -DKNUTWURST_BMG -DKNUTWURST_DGUS2_TFT
|
||||
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
|
||||
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_P -DKNUTWURST_TMC -DKNUTWURST_BMG -DKNUTWURST_DGUS2_TFT
|
||||
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
|
||||
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_P -DKNUTWURST_BMG -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
|
||||
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
|
||||
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_P -DKNUTWURST_BMG -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
|
||||
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
|
||||
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_P -DKNUTWURST_BMG -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
|
||||
build_unflags = -DKNUTWURST_MEGA -DKNUTWURST_MEGA_S -DKNUTWURST_MEGA_X -DKNUTWURST_ONE_Z_ENDSTOP -DKNUTWURST_CHIRON
|
||||
|
||||
[env:MEGA_P_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_P -DKNUTWURST_BMG -DKNUTWURST_TMC -DKNUTWURST_BLTOUCH -DKNUTWURST_DGUS2_TFT
|
||||
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/1N4733.jpg
Normal file
After Width: | Height: | Size: 549 KiB |
BIN
images/ESP01_Flash.jpg
Normal file
After Width: | Height: | Size: 374 KiB |
BIN
images/ESP3D_00.jpg
Normal file
After Width: | Height: | Size: 154 KiB |
BIN
images/ESP3D_01.jpg
Normal file
After Width: | Height: | Size: 594 KiB |
BIN
images/ESP3D_02.jpg
Normal file
After Width: | Height: | Size: 274 KiB |
BIN
images/ESP3D_03.jpg
Normal file
After Width: | Height: | Size: 303 KiB |
BIN
images/ESP3D_04.jpg
Normal file
After Width: | Height: | Size: 147 KiB |
BIN
images/ESP3D_Inst_01.jpg
Normal file
After Width: | Height: | Size: 55 KiB |
BIN
images/ESP3D_Inst_02.jpg
Normal file
After Width: | Height: | Size: 270 KiB |
BIN
images/ESP3D_Inst_03.jpg
Normal file
After Width: | Height: | Size: 234 KiB |
BIN
images/ESP_01.jpg
Normal file
After Width: | Height: | Size: 690 KiB |
BIN
images/ESP_02.jpg
Normal file
After Width: | Height: | Size: 473 KiB |
BIN
images/ESP_03.jpg
Normal file
After Width: | Height: | Size: 718 KiB |
BIN
images/ESP_04.jpg
Normal file
After Width: | Height: | Size: 570 KiB |
BIN
images/ESP_05.jpg
Normal file
After Width: | Height: | Size: 592 KiB |
BIN
images/ESP_06.jpg
Normal file
After Width: | Height: | Size: 382 KiB |
BIN
images/anycubic_touchscreen_back.jpg
Normal file
After Width: | Height: | Size: 1.1 MiB |
BIN
images/anycubic_touchscreen_front.jpg
Normal file
After Width: | Height: | Size: 857 KiB |
BIN
images/bed_size_cura.jpg
Normal file
After Width: | Height: | Size: 234 KiB |
BIN
images/bltouch_01.jpg
Normal file
After Width: | Height: | Size: 269 KiB |
BIN
images/bltouch_02.jpg
Normal file
After Width: | Height: | Size: 568 KiB |
BIN
images/bltouch_03.jpg
Normal file
After Width: | Height: | Size: 340 KiB |
BIN
images/bltouch_04.jpg
Normal file
After Width: | Height: | Size: 362 KiB |
BIN
images/bltouch_05.jpg
Normal file
After Width: | Height: | Size: 442 KiB |
BIN
images/bltouch_06.jpg
Normal file
After Width: | Height: | Size: 265 KiB |
BIN
images/bltouch_07.jpg
Normal file
After Width: | Height: | Size: 420 KiB |
BIN
images/bltouch_08.jpg
Normal file
After Width: | Height: | Size: 367 KiB |
BIN
images/bltouch_09.jpg
Normal file
After Width: | Height: | Size: 627 KiB |
BIN
images/bltouch_10.jpg
Normal file
After Width: | Height: | Size: 405 KiB |
BIN
images/bltouch_switch_cable.jpg
Normal file
After Width: | Height: | Size: 72 KiB |
BIN
images/bltouch_wiring.jpg
Normal file
After Width: | Height: | Size: 376 KiB |
BIN
images/bltouch_wiring_alt.jpg
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
images/burnt_diode_closeup.jpg
Normal file
After Width: | Height: | Size: 591 KiB |
BIN
images/burnt_stepper.jpg
Normal file
After Width: | Height: | Size: 374 KiB |
BIN
images/diode_closeup.jpg
Normal file
After Width: | Height: | Size: 752 KiB |
BIN
images/howto_build.jpg
Normal file
After Width: | Height: | Size: 834 KiB |
BIN
images/install_cura_01.jpg
Normal file
After Width: | Height: | Size: 80 KiB |
BIN
images/install_cura_02.jpg
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
images/install_cura_03.jpg
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
images/install_cura_04.jpg
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
images/manual_anycubic_main.jpg
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
images/manual_anycubic_setup.jpg
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
images/manual_anycubic_specialmenu.jpg
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
images/manual_dgus2_main.jpg
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
images/manual_dgus2_setup.jpg
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
images/manual_dgus2_specialmenu.jpg
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
images/manual_dgus_main.jpg
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
images/manual_dgus_setup.jpg
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
images/manual_dgus_specialmenu.jpg
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
images/manual_specialmenu_open.jpg
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
images/manual_specialmenu_pid.jpg
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
images/manual_specialmenu_saveeeprom.jpg
Normal file
After Width: | Height: | Size: 94 KiB |
BIN
images/max_fanspeed_cura.jpg
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
images/max_resolution_cura.jpg
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
images/mobo_with_stepperdrivers.jpg
Normal file
After Width: | Height: | Size: 888 KiB |
BIN
images/mobo_without_stepperdrivers.jpg
Normal file
After Width: | Height: | Size: 776 KiB |