Merge remote-tracking branch 'upstream/master' into dgus-reloaded

This commit is contained in:
Desuuuu 2022-08-28 15:07:34 +02:00
commit d1a778ee1d
No known key found for this signature in database
GPG Key ID: 85943F4B2C2CE0DC
427 changed files with 94252 additions and 3616 deletions

3
.github/FUNDING.yml vendored
View File

@ -1 +1,2 @@
patreon: koconnor ko_fi: koconnor
custom: https://www.klipper3d.org/Sponsors.html#klipper-developers

View File

@ -8,9 +8,8 @@ jobs:
if: github.repository == 'Klipper3d/klipper' if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v3 - uses: actions/github-script@v6
with: with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: | script: |
if (context.payload.label.name != "not on github") if (context.payload.label.name != "not on github")
return; return;
@ -36,7 +35,7 @@ jobs:
+ "~ Your friendly GitIssueBot" + "~ Your friendly GitIssueBot"
+ "\n\n" + "\n\n"
+ "PS: I'm just an automated script, not a human being."; + "PS: I'm just an automated script, not a human being.";
github.issues.createComment({ github.rest.issues.createComment({
issue_number: context.issue.number, issue_number: context.issue.number,
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,

View File

@ -1,11 +1,12 @@
name: klipper3d deploy name: klipper3d deploy
on: on:
schedule:
- cron: "0 0 * * *"
push: push:
branches: branches:
- master - master
paths: paths:
- docs/** - docs/**
- mkdocs.yml
- .github/workflows/klipper3d-deploy.yaml - .github/workflows/klipper3d-deploy.yaml
jobs: jobs:
deploy: deploy:
@ -24,6 +25,10 @@ jobs:
${{ runner.os }}-pip- ${{ runner.os }}-pip-
- name: Install dependencies - name: Install dependencies
run: pip install -r docs/_klipper3d/mkdocs-requirements.txt run: pip install -r docs/_klipper3d/mkdocs-requirements.txt
- name: Build and deploy klipper3d - name: Build MkDocs Pages
run: | run: docs/_klipper3d/build-translations.sh
mkdocs gh-deploy --config-file docs/_klipper3d/mkdocs.yml --remote-branch gh-pages --force --verbose - name: Deploy
uses: JamesIves/github-pages-deploy-action@v4.2.5
with:
branch: gh-pages # The branch the action should deploy to.
folder: site # The folder the action should deploy.

View File

@ -0,0 +1,66 @@
# Add a comment to github PRs marked with the "reviewer needed" label
name: "Add comment to PRs marked 'reviewer needed'"
on:
pull_request_target:
types: [labeled]
jobs:
add_comment:
if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
with:
script: |
if (context.payload.label.name != "reviewer needed")
return;
if (context.payload.pull_request.assignees.length > 0)
return;
msg = "Thank you for your contribution to Klipper."
+ " Unfortunately, a reviewer has not assigned themselves to"
+ " this GitHub Pull Request. All Pull Requests are reviewed"
+ " before merging, and a reviewer will need to volunteer."
+ " Further information is available at:"
+ " https://www.klipper3d.org/CONTRIBUTING.html"
+ "\n\n"
+ "There are some steps that you can take now:"
+ "\n"
+ "1. Perform a self-review of your Pull Request by following"
+ " the steps at:"
+ " https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review"
+ "\n"
+ " If you have completed a self-review, be sure to state the"
+ " results of that self-review explicitly in the Pull Request"
+ " comments. A reviewer is more likely to participate if the"
+ " bulk of a review has already been completed."
+ "\n"
+ "2. Consider opening a topic on the [Klipper Discourse]"
+ "(https://www.klipper3d.org/Contact.html#community-forum)"
+ " server to discuss this work. The Discourse server is a good"
+ " place to discuss development ideas and to engage users"
+ " interested in testing. Reviewers are more likely to"
+ " prioritize Pull Requests with an active community of users."
+ "\n"
+ "3. Consider helping out reviewers by reviewing other Klipper"
+ " Pull Requests. Taking the time to perform a careful and"
+ " detailed review of others work is appreciated. Regular"
+ " contributors are more likely to prioritize the"
+ " contributions of other regular contributors."
+ "\n\n"
+ "Unfortunately, if a reviewer does not assign themselves to"
+ " this GitHub Pull Request then it will be automatically"
+ " closed. If this happens, then it is a good idea to move"
+ " further discussion to the [Klipper Discourse]"
+ "(https://www.klipper3d.org/Contact.html#community-forum)"
+ " server. Reviewers can reach out on that forum to let you"
+ " know if they are interested and when they are available."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: msg
})

View File

@ -36,10 +36,12 @@ jobs:
if: github.repository == 'Klipper3d/klipper' if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v3 - uses: actions/github-script@v6
with: with:
script: | script: |
const issues = await github.issues.listForRepo({ const expireMillis = 1000 * 60 * 60 * 36;
const curtime = new Date().getTime();
const issues = await github.rest.issues.listForRepo({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
state: 'open', state: 'open',
@ -47,28 +49,167 @@ jobs:
per_page: 100, per_page: 100,
page: 1 page: 1
}); });
const expireMillis = 1000 * 60 * 60 * 36; for (const issue of issues.data.values()) {
const curtime = new Date().getTime();
for (var issue of issues.data.values()) {
const updatetime = new Date(issue.updated_at).getTime(); const updatetime = new Date(issue.updated_at).getTime();
if (curtime < updatetime + expireMillis) if (curtime < updatetime + expireMillis)
continue; continue;
await github.issues.update({ await github.rest.issues.update({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,
state: 'closed' state: 'closed'
}); });
} }
# Close tickets marked with "reviewer needed" label for 2+ weeks
close_reviewer_needed:
if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
with:
script: |
const issues = await github.rest.issues.listForRepo({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'open',
labels: 'reviewer needed',
assignee: 'none',
per_page: 100,
page: 1
});
msg = "Unfortunately a reviewer has not assigned themselves to"
+ " this GitHub Pull Request and it is therefore being"
+ " closed. It is a good idea to move"
+ " further discussion to the [Klipper Discourse]"
+ "(https://www.klipper3d.org/Contact.html#community-forum)"
+ " server. Reviewers can reach out on that forum to let you"
+ " know if they are interested and when they are available."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
const expireMillis = 1000 * 60 * 60 * 24 * 14;
const curtime = new Date().getTime();
for (const issue of issues.data.values()) {
const updatetime = new Date(issue.updated_at).getTime();
if (curtime < updatetime + expireMillis)
continue;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
body: msg
});
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue.number,
state: 'closed'
});
}
# Mark unassigned PRs that are idle for 2 weeks
mark_reviewer_needed:
if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
with:
script: |
msg = "Thank you for your contribution to Klipper."
+ " Unfortunately, a reviewer has not assigned themselves to"
+ " this GitHub Pull Request. All Pull Requests are reviewed"
+ " before merging, and a reviewer will need to volunteer."
+ " Further information is available at:"
+ " https://www.klipper3d.org/CONTRIBUTING.html"
+ "\n\n"
+ "There are some steps that you can take now:"
+ "\n"
+ "1. Perform a self-review of your Pull Request by following"
+ " the steps at:"
+ " https://www.klipper3d.org/CONTRIBUTING.html#what-to-expect-in-a-review"
+ "\n"
+ " If you have completed a self-review, be sure to state the"
+ " results of that self-review explicitly in the Pull Request"
+ " comments. A reviewer is more likely to participate if the"
+ " bulk of a review has already been completed."
+ "\n"
+ "2. Consider opening a topic on the [Klipper Discourse]"
+ "(https://www.klipper3d.org/Contact.html#community-forum)"
+ " server to discuss this work. The Discourse server is a good"
+ " place to discuss development ideas and to engage users"
+ " interested in testing. Reviewers are more likely to"
+ " prioritize Pull Requests with an active community of users."
+ "\n"
+ "3. Consider helping out reviewers by reviewing other Klipper"
+ " Pull Requests. Taking the time to perform a careful and"
+ " detailed review of others work is appreciated. Regular"
+ " contributors are more likely to prioritize the"
+ " contributions of other regular contributors."
+ "\n\n"
+ "Unfortunately, if a reviewer does not assign themselves to"
+ " this GitHub Pull Request then it will be automatically"
+ " closed. If this happens, then it is a good idea to move"
+ " further discussion to the [Klipper Discourse]"
+ "(https://www.klipper3d.org/Contact.html#community-forum)"
+ " server. Reviewers can reach out on that forum to let you"
+ " know if they are interested and when they are available."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
const create_check = new Date("2022-03-01T00:00:00Z").getTime();
const expireMillis = 1000 * 60 * 60 * 24 * 14;
const curtime = new Date().getTime();
const pulls_req = await github.rest.pulls.list({
owner: context.repo.owner,
repo: context.repo.repo,
per_page: 100,
page: 1
});
for (const pr of pulls_req.data.values()) {
const createtime = new Date(pr.created_at).getTime();
if (createtime < create_check)
continue;
const updatetime = new Date(pr.updated_at).getTime();
if (curtime < updatetime + expireMillis)
continue;
if (pr.labels.length > 0)
continue;
if (pr.assignees.length > 0)
continue;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
body: msg
});
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pr.number,
labels: ['reviewer needed']
});
}
# Close tickets marked with "resolved" label # Close tickets marked with "resolved" label
close_resolved: close_resolved:
if: github.repository == 'Klipper3d/klipper' if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v3 - uses: actions/github-script@v6
with: with:
script: | script: |
const issues = await github.issues.listForRepo({ msg = "This ticket is being closed because the underlying issue"
+ " is now thought to be resolved."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
const expireMillis = 1000 * 60 * 60 * 24 * 7;
const curtime = new Date().getTime();
const issues = await github.rest.issues.listForRepo({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
state: 'open', state: 'open',
@ -76,26 +217,17 @@ jobs:
per_page: 100, per_page: 100,
page: 1 page: 1
}); });
const expireMillis = 1000 * 60 * 60 * 24 * 7; for (const issue of issues.data.values()) {
const curtime = new Date().getTime();
for (var issue of issues.data.values()) {
const updatetime = new Date(issue.updated_at).getTime(); const updatetime = new Date(issue.updated_at).getTime();
if (curtime < updatetime + expireMillis) if (curtime < updatetime + expireMillis)
continue; continue;
msg = "This ticket is being closed because the underlying issue" await github.rest.issues.createComment({
+ " is now thought to be resolved."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
await github.issues.createComment({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,
body: msg body: msg
}); });
await github.issues.update({ await github.rest.issues.update({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,
@ -107,10 +239,20 @@ jobs:
if: github.repository == 'Klipper3d/klipper' if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v3 - uses: actions/github-script@v6
with: with:
script: | script: |
const issues = await github.issues.listForRepo({ msg = "This PR is being closed because it is currently not"
+ " considered a good match for the master Klipper"
+ " repository."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
const expireMillis = 1000 * 60 * 60 * 24 * 7;
const curtime = new Date().getTime();
const issues = await github.rest.issues.listForRepo({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
state: 'open', state: 'open',
@ -118,27 +260,17 @@ jobs:
per_page: 100, per_page: 100,
page: 1 page: 1
}); });
const expireMillis = 1000 * 60 * 60 * 24 * 7; for (const issue of issues.data.values()) {
const curtime = new Date().getTime();
for (var issue of issues.data.values()) {
const updatetime = new Date(issue.updated_at).getTime(); const updatetime = new Date(issue.updated_at).getTime();
if (curtime < updatetime + expireMillis) if (curtime < updatetime + expireMillis)
continue; continue;
msg = "This PR is being closed because it is currently not" await github.rest.issues.createComment({
+ " considered a good match for the master Klipper"
+ " repository."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
await github.issues.createComment({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,
body: msg body: msg
}); });
await github.issues.update({ await github.rest.issues.update({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,
@ -150,10 +282,20 @@ jobs:
if: github.repository == 'Klipper3d/klipper' if: github.repository == 'Klipper3d/klipper'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/github-script@v3 - uses: actions/github-script@v6
with: with:
script: | script: |
const issues = await github.issues.listForRepo({ msg = "It looks like this GitHub Pull Request has become"
+ " inactive. If there are any further updates, you can"
+ " add a comment here or open a new ticket."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
const expireMillis = 1000 * 60 * 60 * 24 * 21;
const curtime = new Date().getTime();
const issues = await github.rest.issues.listForRepo({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
state: 'open', state: 'open',
@ -161,33 +303,23 @@ jobs:
per_page: 100, per_page: 100,
page: 1 page: 1
}); });
const expireMillis = 1000 * 60 * 60 * 24 * 21; for (const issue of issues.data.values()) {
const curtime = new Date().getTime();
for (var issue of issues.data.values()) {
const updatetime = new Date(issue.updated_at).getTime(); const updatetime = new Date(issue.updated_at).getTime();
if (curtime < updatetime + expireMillis) if (curtime < updatetime + expireMillis)
continue; continue;
msg = "It looks like this GitHub Pull Request has become" await github.rest.issues.addLabels({
+ " inactive. If there are any further updates, you can"
+ " add a comment here or open a new ticket."
+ "\n\n"
+ "Best regards,\n"
+ "~ Your friendly GitIssueBot"
+ "\n\n"
+ "PS: I'm just an automated script, not a human being.";
await github.issues.addLabels({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,
labels: ['inactive'] labels: ['inactive']
}); });
await github.issues.createComment({ await github.rest.issues.createComment({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,
body: msg body: msg
}); });
await github.issues.update({ await github.rest.issues.update({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: issue.number, issue_number: issue.number,

View File

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007 Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail. Also add information on how to contact you by electronic and paper mail.
@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school, You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary. if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>. <https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>. <https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@ -19,7 +19,7 @@ OBJCOPY=$(CROSS_PREFIX)objcopy
OBJDUMP=$(CROSS_PREFIX)objdump OBJDUMP=$(CROSS_PREFIX)objdump
STRIP=$(CROSS_PREFIX)strip STRIP=$(CROSS_PREFIX)strip
CPP=cpp CPP=cpp
PYTHON=python2 PYTHON=python3
# Source files # Source files
src-y = src-y =
@ -31,7 +31,7 @@ cc-option=$(shell if test -z "`$(1) $(2) -S -o /dev/null -xc /dev/null 2>&1`" \
CFLAGS := -I$(OUT) -Isrc -I$(OUT)board-generic/ -std=gnu11 -O2 -MD \ CFLAGS := -I$(OUT) -Isrc -I$(OUT)board-generic/ -std=gnu11 -O2 -MD \
-Wall -Wold-style-definition $(call cc-option,$(CC),-Wtype-limits,) \ -Wall -Wold-style-definition $(call cc-option,$(CC),-Wtype-limits,) \
-ffunction-sections -fdata-sections -ffunction-sections -fdata-sections -fno-delete-null-pointer-checks
CFLAGS += -flto -fwhole-program -fno-use-linker-plugin -ggdb3 CFLAGS += -flto -fwhole-program -fno-use-linker-plugin -ggdb3
OBJS_klipper.elf = $(patsubst %.c, $(OUT)src/%.o,$(src-y)) OBJS_klipper.elf = $(patsubst %.c, $(OUT)src/%.o,$(src-y))
@ -85,17 +85,21 @@ $(OUT)compile_time_request.o: $(patsubst %.c, $(OUT)src/%.o.ctr,$(src-y)) ./scri
################ Auto generation of "board/" include file link ################ Auto generation of "board/" include file link
$(OUT)board-link: $(KCONFIG_CONFIG) create-board-link:
@echo " Creating symbolic link $(OUT)board" @echo " Creating symbolic link $(OUT)board"
$(Q)mkdir -p $(addprefix $(OUT), $(dirs-y)) $(Q)mkdir -p $(addprefix $(OUT), $(dirs-y))
$(Q)echo "#$(CONFIG_BOARD_DIRECTORY)" > $@.temp $(Q)rm -f $(OUT)*.d $(patsubst %,$(OUT)%/*.d,$(dirs-y))
$(Q)if ! cmp -s $@.temp $@; then rm -f $(OUT)*.d $(patsubst %,$(OUT)%/*.d,$(dirs-y)) ; mv $@.temp $@ ; fi
$(Q)rm -f $(OUT)board $(Q)rm -f $(OUT)board
$(Q)ln -sf $(CURDIR)/src/$(CONFIG_BOARD_DIRECTORY) $(OUT)board $(Q)ln -sf $(CURDIR)/src/$(CONFIG_BOARD_DIRECTORY) $(OUT)board
$(Q)mkdir -p $(OUT)board-generic $(Q)mkdir -p $(OUT)board-generic
$(Q)rm -f $(OUT)board-generic/board $(Q)rm -f $(OUT)board-generic/board
$(Q)ln -sf $(CURDIR)/src/generic $(OUT)board-generic/board $(Q)ln -sf $(CURDIR)/src/generic $(OUT)board-generic/board
# Hack to rebuild OUT directory and reload make dependencies on Kconfig change
$(OUT)board-link: $(KCONFIG_CONFIG)
$(Q)mkdir -p $(OUT)
$(Q)echo "# Makefile board-link rule" > $@
$(Q)$(MAKE) create-board-link
include $(OUT)board-link include $(OUT)board-link
################ Kconfig rules ################ Kconfig rules
@ -114,7 +118,7 @@ menuconfig:
################ Generic rules ################ Generic rules
# Make definitions # Make definitions
.PHONY : all clean distclean olddefconfig menuconfig FORCE .PHONY : all clean distclean olddefconfig menuconfig create-board-link FORCE
.DELETE_ON_ERROR: .DELETE_ON_ERROR:
all: $(target-y) all: $(target-y)

View File

@ -15,7 +15,9 @@ To begin using Klipper start by
[installing](https://www.klipper3d.org/Installation.html) it. [installing](https://www.klipper3d.org/Installation.html) it.
Klipper is Free Software. See the [license](COPYING) or read the Klipper is Free Software. See the [license](COPYING) or read the
[documentation](https://www.klipper3d.org/Overview.html). [documentation](https://www.klipper3d.org/Overview.html). We depend on
the generous support from our
[sponsors](https://www.klipper3d.org/Sponsors.html).
## Modifications ## Modifications

View File

@ -1,7 +1,7 @@
# This file is an example config file for polar style printers. One # This file is an example config file for polar style printers. One
# may copy and edit this file to configure a new polar printer. # may copy and edit this file to configure a new polar printer.
# POLAR KINEMATICS ARE A WORK IN PROGRESS. Moves around the 0,0 # POLAR KINEMATICS ARE A WORK IN PROGRESS. Moves around the 0, 0
# position are known to not work properly. # position are known to not work properly.
# See docs/Config_Reference.md for a description of parameters. # See docs/Config_Reference.md for a description of parameters.

View File

@ -6,7 +6,7 @@
# Homing is not implemented on cable winch kinematics. In order to # Homing is not implemented on cable winch kinematics. In order to
# home the printer, manually send movement commands until the toolhead # home the printer, manually send movement commands until the toolhead
# is at 0,0,0 and then issue a G28 command. # is at 0, 0, 0 and then issue a G28 command.
# See docs/Config_Reference.md for a description of parameters. # See docs/Config_Reference.md for a description of parameters.

View File

@ -0,0 +1,147 @@
# This file contains common pin mappings for Alligator (Rev.2) board.
# To use this config, the firmware should be compiled for the Arduino
# Due.
# Remember flash procedure:
# sudo /etc/init.d/alligator-manager --erase
# sudo bossac -e -w -v -b -R -i -p ttyAMA0 klipper.bin
# See alligator github for alligator manager:
# https://github.com/3Dartists/alligator-manager
# See docs/Config_Reference.md for a description of parameters.
[static_digital_output DRV8825_microstepping]
pins:PC10
pins:PC29
pins:PC19
pins:PC18
[dac084S085 stepper_digipot]
enable_pin: PB14
spi_bus: spi0
# Scale the config so that the channel value can be specified in amps.
# (For Alligator v2.0 boards, use 2.50)
scale: 2.50
# Channel A in this example is X, B is Y, C is Z, D is E0,1,2,3.
channel_A: 1.5
channel_B: 1.5
channel_C: 1.5
channel_D: 1.0
# channel D will be the current used by all extruders if> 1
[stepper_x]
step_pin: PB24
dir_pin: !PB25
enable_pin: !PA15
microsteps: 32 # number of microstep 16, 32
rotation_distance: 16
endstop_pin: ^!PC5
position_endstop: -30
position_max: 220
position_min: -30
homing_speed: 50
[stepper_y]
step_pin: PB22
dir_pin: !PB23
enable_pin: !PA15
microsteps: 32
rotation_distance: 16
endstop_pin: ^!PC3
position_endstop: -8
position_min: -8
position_max: 220
homing_speed: 50
[stepper_z]
step_pin: PC27
dir_pin: PC28
enable_pin: !PA15
microsteps: 32
rotation_distance: 4
endstop_pin: ^!PC2
position_endstop: 0
position_max: 240
position_min: -1
[extruder]
step_pin: PC25
dir_pin: PC26
enable_pin: !PA15
microsteps: 32
rotation_distance: 7
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_pin: PA16 # PA16(near mcu) or PA24(near ethernet)
sensor_type: ATC Semitec 104NT-4-R025H42G
control: pid
pid_kp: 15.572
pid_ki: 0.446
pid_kd: 136.064
min_temp: 0
max_temp: 270
#[extruder1]
#step_pin: PD3
#dir_pin: !PD2
#enable_pin: !PA15
#microsteps: 32
#heater_pin: PC22
#sensor_pin: PB25
#[extruder2]
#step_pin: PD7
#dir_pin: !PD6
#enable_pin: !PA15
#microsteps: 32
#heater_pin: PC21
#sensor_pin: PC28
#[extruder3]
#step_pin: PD9
#dir_pin: !PD8
#enable_pin: !PA15
#microsteps: 32
#heater_pin: PA29
#sensor_pin: PC5
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA24 # PA16(near mcu) or PA24(near ethernet)
control: pid
pid_kp: 73.517
pid_ki: 1.132
pid_kd: 1193.728
min_temp: 0
max_temp: 130
[fan]
pin: PA7
#[heater_fan fan1]
#pin: PA5
#heater: extruder
[output_pin BEEPER_pin]
pin: PB19
pwm: True
value: 0
shutdown_value: 0
cycle_time: 0.1
scale: 1000
[mcu]
serial: /dev/ttyAMA0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 100
#[bltouch]
#sensor_pin: ^PC6
#control_pin: PC4

View File

@ -0,0 +1,135 @@
# This file contains common pin mappings for Alligator (Rev.3) board.
# To use this config, the firmware should be compiled for the Arduino
# Due.
# Remember flash procedure:
# sudo /etc/init.d/alligator-manager --erase
# sudo bossac -e -w -v -b -R -i -p ttyAMA0 klipper.bin
# See alligator github for alligator manager:
# https://github.com/3Dartists/alligator-manager
# See docs/Config_Reference.md for a description of parameters.
[static_digital_output DRV8825_microstepping]
pins:PC10
pins:PC29
pins:PC19
pins:PC18
[dac084S085 stepper_digipot]
enable_pin: PD2
spi_bus: spi0
# Scale the config so that the channel value can be specified in amps.
# (For Alligator v3.0 boards, use 2.50)
scale: 2.50
# Channel A in this example is X, B is Y, C is Z, D is E0,1,2,3.
channel_A: 1.5
channel_B: 1.5
channel_C: 1.5
channel_D: 1.0
# channel D will be the current used by all extruders if> 1
[stepper_x]
step_pin: PB24
dir_pin: !PB25
enable_pin: !PA15
microsteps: 32 # number of microstep 16, 32
rotation_distance: 16
endstop_pin: ^!PC5
position_endstop: -30
position_max: 220
position_min: -30
homing_speed: 50
[stepper_y]
step_pin: PB22
dir_pin: !PB23
enable_pin: !PC28
microsteps: 32
rotation_distance: 16
endstop_pin: ^!PC3
position_endstop: -8
position_min: -8
position_max: 220
homing_speed: 50
[stepper_z]
step_pin: PB20
dir_pin: PB21
enable_pin: !PA29
microsteps: 32
rotation_distance: 4
endstop_pin: ^!PC2
position_endstop: 0
position_max: 240
position_min: -1
[extruder]
step_pin: PB18
dir_pin: PB19
enable_pin: !PC27
microsteps: 32
rotation_distance: 7
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA19
sensor_pin: PC25
sensor_type: ATC Semitec 104NT-4-R025H42G
control: pid
pid_kp: 15.572
pid_ki: 0.446
pid_kd: 136.064
min_temp: 0
max_temp: 270
#[extruder1]
#step_pin: PB17
#dir_pin: !PB14
#enable_pin: !PD6
#microsteps: 32
#heater_pin: PC22
#sensor_pin: PA29
#[extruder2]
#step_pin: PB12
#dir_pin: !PB13
#enable_pin: !PD8
#microsteps: 32
#heater_pin: PC21
#sensor_pin: PC28
#[extruder3]
#step_pin: PB15
#dir_pin: !PB16
#enable_pin: !PD9
#microsteps: 32
#heater_pin: PA29
#sensor_pin: PB25
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA8
control: pid
pid_kp: 73.517
pid_ki: 1.132
pid_kd: 1193.728
min_temp: 0
max_temp: 130
[fan]
pin: PA7
#[heater_fan fan1]
#pin: PA5
#heater: extruder
[mcu]
serial: /dev/ttyAMA0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 1000
max_z_velocity: 20
max_z_accel: 100

View File

@ -129,7 +129,7 @@ max_temp: 130
[fan] [fan]
pin: PC26 pin: PC26
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PC25 pin: PC25
[mcu] [mcu]

View File

@ -90,7 +90,7 @@ pid_Kd: 948.182
min_temp: 0 min_temp: 0
max_temp: 130 max_temp: 130
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PB6 pin: PB6
[fan] [fan]

View File

@ -0,0 +1,183 @@
# This file contains common pin mappings for the BigTreeTech SKR 3.
# To use this config, during "make menuconfig" enable "low-level
# options", "STM32H743", "128KiB bootloader", and "25MHz clock".
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PD4
dir_pin: PD3
enable_pin: !PD6
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC1
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PA15
dir_pin: !PA8
enable_pin: !PD1
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PE2
dir_pin: PE3
enable_pin: !PE0
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC0
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PD15
dir_pin: PD14
enable_pin: !PC7
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB3
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA2
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: PD11
#dir_pin: PD10
#enable_pin: !PD13
#heater_pin: PB4
#sensor_pin: PA3
#...
[heater_bed]
heater_pin: PD7
sensor_type: Generic 3950
sensor_pin: PA1
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PB7
#[heater_fan fan1]
#pin: PB6
#[heater_fan fan2]
#pin: PB5
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC5, EXP1_3=PB1, EXP1_5=PE9, EXP1_7=PE11, EXP1_9=<GND>,
EXP1_2=PB0, EXP1_4=PE8, EXP1_6=PE10, EXP1_8=PE12, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_3=PE7, EXP2_5=PB2, EXP2_7=PC4, EXP2_9=<GND>,
EXP2_2=PA5, EXP2_4=PA4, EXP2_6=PA7, EXP2_8=<RST>, EXP2_10=<NC>
# See the sample-lcd.cfg file for definitions of common LCD displays.
########################################
# TMC2209 configuration
########################################
#[tmc2209 stepper_x]
#uart_pin: PD5
#run_current: 0.800
#diag_pin:
#[tmc2209 stepper_y]
#uart_pin: PD0
#run_current: 0.800
#diag_pin:
#[tmc2209 stepper_z]
#uart_pin: PE1
#run_current: 0.800
#diag_pin:
#[tmc2209 extruder]
#uart_pin: PC6
#run_current: 0.600
#diag_pin:
#[tmc2209 extruder1]
#uart_pin: PD12
#run_current: 0.600
#diag_pin:
########################################
# TMC2130 configuration
########################################
#[tmc2130 stepper_x]
#cs_pin: PD5
#spi_software_miso_pin: PE15
#spi_software_mosi_pin: PE13
#spi_software_sclk_pin: PE14
#run_current: 0.800
#stealthchop_threshold: 999999
#diag1_pin: PC1
#[tmc2130 stepper_y]
#cs_pin: PD0
#spi_software_miso_pin: PE15
#spi_software_mosi_pin: PE13
#spi_software_sclk_pin: PE14
#run_current: 0.800
#stealthchop_threshold: 999999
#diag1_pin: PC3
#[tmc2130 stepper_z]
#cs_pin: PE1
#spi_software_miso_pin: PE15
#spi_software_mosi_pin: PE13
#spi_software_sclk_pin: PE14
#run_current: 0.650
#stealthchop_threshold: 999999
#diag1_pin: PC0
#[tmc2130 extruder]
#cs_pin: PC6
#spi_software_miso_pin: PE15
#spi_software_mosi_pin: PE13
#spi_software_sclk_pin: PE14
#run_current: 0.800
#stealthchop_threshold: 999999
#diag1_pin: PC2
#[tmc2130 extruder1]
#cs_pin: PD12
#spi_software_miso_pin: PE15
#spi_software_mosi_pin: PE13
#spi_software_sclk_pin: PE14
#run_current: 0.800
#stealthchop_threshold: 999999
#diag1_pin: PA0

View File

@ -105,7 +105,7 @@ max_temp: 130
[fan] [fan]
pin: P2.1 pin: P2.1
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: P2.2 pin: P2.2
[mcu] [mcu]

View File

@ -100,7 +100,7 @@ pid_Kd: 948.182
min_temp: 0 min_temp: 0
max_temp: 130 max_temp: 130
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PC7 pin: PC7
[fan] [fan]

View File

@ -98,7 +98,7 @@ pid_Kd: 948.182
min_temp: 0 min_temp: 0
max_temp: 130 max_temp: 130
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PC7 pin: PC7
[heater_fan controller_fan] [heater_fan controller_fan]

View File

@ -103,7 +103,7 @@ pid_Kd: 948.182
min_temp: 0 min_temp: 0
max_temp: 130 max_temp: 130
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PC7 pin: PC7
[fan] [fan]

View File

@ -0,0 +1,132 @@
# This file contains common pin mappings for the BIGTREETECH SKR Pico V1.0
# To use this config, the firmware should be compiled for the RP2040 with
# USB communication.
# The "make flash" command does not work on the SKR Pico V1.0. Instead,
# after running "make", copy the generated "out/klipper.uf2" file
# to the mass storage device in RP2040 boot mode
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: gpio11
dir_pin: !gpio10
enable_pin: !gpio12
microsteps: 16
rotation_distance: 40
endstop_pin: ^gpio4
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_x]
uart_pin: gpio9
tx_pin: gpio8
uart_address: 0
run_current: 0.580
stealthchop_threshold: 999999
[stepper_y]
step_pin: gpio6
dir_pin: !gpio5
enable_pin: !gpio7
microsteps: 16
rotation_distance: 40
endstop_pin: ^gpio3
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_y]
uart_pin: gpio9
tx_pin: gpio8
uart_address: 2
run_current: 0.580
stealthchop_threshold: 999999
[stepper_z]
step_pin: gpio19
dir_pin: gpio28
enable_pin: !gpio2
microsteps: 16
rotation_distance: 8
endstop_pin: ^gpio25
position_endstop: 0.0
position_max: 250
[tmc2209 stepper_z]
uart_pin: gpio9
tx_pin: gpio8
uart_address: 1
run_current: 0.580
stealthchop_threshold: 999999
[extruder]
step_pin: gpio14
dir_pin: !gpio13
enable_pin: !gpio15
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: gpio23
sensor_type: EPCOS 100K B57560G104F
sensor_pin: gpio27
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
[tmc2209 extruder]
uart_pin: gpio9
tx_pin: gpio8
uart_address: 3
run_current: 0.650
stealthchop_threshold: 999999
[heater_bed]
heater_pin: gpio21
sensor_type: ATC Semitec 104GT-2
sensor_pin: gpio26
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: gpio17
[heater_fan heatbreak_cooling_fan]
pin: gpio18
[heater_fan controller_fan]
pin: gpio20
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[neopixel board_neopixel]
pin: gpio24
chain_count: 1
color_order: GRB
initial_RED: 0.3
initial_GREEN: 0.3
initial_BLUE: 0.3
#[bltouch]
#sensor_pin: gpio22
#control_pin: gpio29
#[filament_switch_sensor runout_sensor]
#switch_pin: ^gpio16

View File

@ -288,7 +288,7 @@ max_temp: 130
pin: PC23 pin: PC23
# Fan1 controlled by extruder # Fan1 controlled by extruder
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PC26 pin: PC26
heater: extruder heater: extruder
heater_temp: 45 heater_temp: 45

View File

@ -123,7 +123,7 @@ max_temp: 130
[fan] [fan]
pin: PC23 # FAN0 pin: PC23 # FAN0
#[heater_fan nozzle_cooling_fan] #[heater_fan heatbreak_cooling_fan]
#pin: PC22 # FAN1 #pin: PC22 # FAN1
#[heater_fan board_cooling_fan] #[heater_fan board_cooling_fan]

View File

@ -101,7 +101,7 @@ max_temp: 130
[fan] [fan]
pin: PC23 # FAN0 pin: PC23 # FAN0
#[heater_fan nozzle_cooling_fan] #[heater_fan heatbreak_cooling_fan]
#pin: PC26 # FAN1 #pin: PC26 # FAN1
#[heater_fan board_cooling_fan] #[heater_fan board_cooling_fan]

View File

@ -26,6 +26,7 @@
# SBC SPISS pin:PA6, SBCTfrReady:PA3, SerComPins:{PA4, PA5, PA6, PA7} # SBC SPISS pin:PA6, SBCTfrReady:PA3, SerComPins:{PA4, PA5, PA6, PA7}
# CAN Pins - TX:PB14 RX:PB15 # CAN Pins - TX:PB14 RX:PB15
# Heaters, Fan outputs - {Out0:PB17 Out1:PC10 Out2:PB13 Out3:PB11 Out4:PA11, Out5:PB2, Out6:PB1} | Out6 is shared with VFD_Out # Heaters, Fan outputs - {Out0:PB17 Out1:PC10 Out2:PB13 Out3:PB11 Out4:PA11, Out5:PB2, Out6:PB1} | Out6 is shared with VFD_Out
# Tach Pins for Fans - {Out3.Tach:PB27 Out4.Tach:PB26}
# GPIO_out - {IO1:PB31 IO2:PD9 IO3:PB12 IO4:PD10} IO4 is shared with PSON # GPIO_out - {IO1:PB31 IO2:PD9 IO3:PB12 IO4:PD10} IO4 is shared with PSON
# GPIO_in - {IO1:PB30 IO2:PD8 IO3:PB7 IO4:PC5 IO5:PC4 IO6:PC31} # GPIO_in - {IO1:PB30 IO2:PD8 IO3:PB7 IO4:PC5 IO5:PC4 IO6:PC31}
# Driver Diag - {D0:PA10, D1:PB8, D2:PA22, D3:PA23, D4:PC21, D5:PB10, D6:PA27} # Driver Diag - {D0:PA10, D1:PB8, D2:PA22, D3:PA23, D4:PC21, D5:PB10, D6:PA27}

View File

@ -95,7 +95,7 @@ max_temp: 130
[fan] [fan]
pin: PH5 pin: PH5
#[heater_fan nozzle_cooling_fan] #[heater_fan heatbreak_cooling_fan]
#pin: PH3 #pin: PH3
[temperature_sensor board_sensor] [temperature_sensor board_sensor]

View File

@ -97,7 +97,7 @@ max_temp: 130
[fan] [fan]
pin: PC8 pin: PC8
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PB0 pin: PB0
[mcu] [mcu]

View File

@ -11,7 +11,7 @@ dir_pin: PE10
enable_pin: !PE9 enable_pin: !PE9
microsteps: 16 microsteps: 16
rotation_distance: 40 rotation_distance: 40
endstop_pin: PB14 # PA1 for X-max endstop_pin: ^PB14 # PA1 for X-max
position_endstop: 0 position_endstop: 0
position_max: 200 position_max: 200
@ -21,7 +21,7 @@ dir_pin: PB12
enable_pin: !PD9 enable_pin: !PD9
microsteps: 16 microsteps: 16
rotation_distance: 40 rotation_distance: 40
endstop_pin: PB13 # PA2 for Y-max endstop_pin: ^PB13 # PA2 for Y-max
position_endstop: 0 position_endstop: 0
position_max: 200 position_max: 200
@ -31,7 +31,7 @@ dir_pin: PD13
enable_pin: !PD15 enable_pin: !PD15
microsteps: 16 microsteps: 16
rotation_distance: 8 rotation_distance: 8
endstop_pin: PA0 # PA3 for Z-max endstop_pin: ^PA0 # PA3 for Z-max
position_endstop: 0 position_endstop: 0
position_max: 400 position_max: 400

View File

@ -11,7 +11,7 @@ dir_pin: PE10
enable_pin: !PE12 enable_pin: !PE12
microsteps: 16 microsteps: 16
rotation_distance: 40 rotation_distance: 40
endstop_pin: PB14 # PA1 for X-max endstop_pin: ^PB14 # PA1 for X-max
position_endstop: 0 position_endstop: 0
position_max: 200 position_max: 200
@ -21,7 +21,7 @@ dir_pin: PB12
enable_pin: !PD9 enable_pin: !PD9
microsteps: 16 microsteps: 16
rotation_distance: 40 rotation_distance: 40
endstop_pin: PB13 # PA2 for Y-max endstop_pin: ^PB13 # PA2 for Y-max
position_endstop: 0 position_endstop: 0
position_max: 200 position_max: 200
@ -31,7 +31,7 @@ dir_pin: PD13
enable_pin: !PD15 enable_pin: !PD15
microsteps: 16 microsteps: 16
rotation_distance: 8 rotation_distance: 8
endstop_pin: PA0 # PA3 for Z-max (and servo) endstop_pin: ^PA0 # PA3 for Z-max (and servo)
position_endstop: 0 position_endstop: 0
position_max: 400 position_max: 400

View File

@ -12,7 +12,7 @@ dir_pin: PE10
enable_pin: !PE9 enable_pin: !PE9
microsteps: 16 microsteps: 16
rotation_distance: 40 rotation_distance: 40
endstop_pin: PB14 # PA1 for X-max endstop_pin: ^PB14 # PA1 for X-max
position_endstop: 0 position_endstop: 0
position_max: 200 position_max: 200
@ -32,7 +32,7 @@ dir_pin: PD13
enable_pin: !PD15 enable_pin: !PD15
microsteps: 16 microsteps: 16
rotation_distance: 8 rotation_distance: 8
endstop_pin: PA0 # PA3 for Z-max endstop_pin: ^PA0 # PA3 for Z-max
position_endstop: 0 position_endstop: 0
position_max: 400 position_max: 400

View File

@ -0,0 +1,216 @@
# This file contains common pin mappings for the Mellow Fly-CDY-v3.
# To use this config, the firmware should be compiled for the
# STM32F407 with a "32KiB bootloader".
# The "make flash" command does not work on the Fly-CDY-v3. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the Fly-CDY-v3
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PE5
dir_pin: PC0
enable_pin: !PC1
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC7 # X-MAX PC6
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PE4
dir_pin: !PC13
enable_pin: !PC14
microsteps: 16
rotation_distance: 40
endstop_pin: ^PD11 # Y-MAX PD10
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PE3
dir_pin: PB7
enable_pin: !PB8
microsteps: 16
rotation_distance: 40
endstop_pin: ^PB10 # Z-MAX PB11
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PE2
dir_pin: PD6
enable_pin: !PD7
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PD12
sensor_pin: PA3
sensor_type: EPCOS 100K B57560G104F
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
#[extruder1]
#step_pin: PE1
#dir_pin: !PD3
#enable_pin: !PD4
#heater_pin: PD13
#sensor_pin: PC4
#[extruder2]
#step_pin: PE0
#dir_pin: !PA15
#enable_pin: !PD0
#heater_pin: PD14
#sensor_pin: PC5
[heater_bed]
heater_pin: PB0
sensor_type: Generic 3950
sensor_pin: PB1
control: watermark
min_temp: 0
max_temp: 130
#FAN0
[fan]
pin: PA0
#FAN1
#[heater_fan fan1]
#pin: PA1
#FAN2
#[heater_fan fan2]
#pin: PA2
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# TMC2209 configuration
########################################
#[tmc2209 stepper_x]
#uart_pin: PC15
#run_current: 0.800
#diag_pin: PC7
#stealthchop_threshold: 999999
#[tmc2209 stepper_y]
#uart_pin: PA8
#run_current: 0.800
#diag_pin: PC6
#stealthchop_threshold: 999999
#[tmc2209 stepper_z]
#uart_pin: PB6
#run_current: 0.800
#diag_pin: PD11
#stealthchop_threshold: 999999
#[tmc2209 extruder]
#uart_pin: PD5
#run_current: 0.600
#diag_pin: PD10
#stealthchop_threshold: 999999
#[tmc2209 extruder1]
#uart_pin: PD1
#run_current: 0.600
#diag_pin: PB10
#stealthchop_threshold: 999999
#[tmc2209 extruder2]
#uart_pin: PE9
#run_current: 0.600
#diag_pin: PB11
#stealthchop_threshold: 999999
########################################
# TMC5160 configuration
########################################
#[tmc5160 stepper_x]
#cs_pin: PC15
#spi_bus: spi3
#run_current: 0.800
#diag1_pin: PC7
#stealthchop_threshold: 999999
#[tmc5160 stepper_y]
#cs_pin: PA8
#spi_bus: spi3
#run_current: 0.800
#diag1_pin: PC6
#stealthchop_threshold: 999999
#[tmc5160 stepper_z]
#cs_pin: PB6
#spi_bus: spi3
#run_current: 0.800
#diag1_pin: PD11
#stealthchop_threshold: 999999
#[tmc5160 extruder]
#cs_pin: PD5
#spi_bus: spi3
#run_current: 0.800
#diag1_pin: PD10
#stealthchop_threshold: 999999
#[tmc5160 extruder1]
#cs_pin: PD1
#spi_bus: spi3
#run_current: 0.800
#diag1_pin: PB10
#stealthchop_threshold: 999999
#[tmc5160 extruder2]
#cs_pin: PE9
#spi_bus: spi3
#run_current: 0.800
#diag1_pin: PB11
#stealthchop_threshold: 999999
########################################
# Accelerometer (ADXL345) pins
########################################
## SCK=PA5, MISO=PA6, MOSI=PA7
#[adxl345]
#cs_pin: PE7
#spi_bus: spi1
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=<NC>, EXP1_3=PB2, EXP1_5=PE15, EXP1_7=PA13, EXP1_9=<GND>,
EXP1_2=PA9, EXP1_4=PA10, EXP1_6=PE14, EXP1_8=PA14, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_3=PD8, EXP2_5=PD9, EXP2_7=PE13, EXP2_9=<GND>,
EXP2_2=PA5, EXP2_4=PA4, EXP2_6=PA7, EXP2_8=<RST>, EXP2_10=<NC>,
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@ -0,0 +1,157 @@
# This file contains common pin mappings for the Mellow Fly-Gemini-v1.
# To use this config, the firmware should be compiled for the
# STM32F405 with a "32KiB bootloader".
# The "make flash" command does not work on the Fly-Gemini-v1. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" or "klipper.bin" on an SD card and then restart the Fly-Gemini-v1
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PC13
dir_pin: PC1
enable_pin: !PB2
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PC14
dir_pin: !PC4
enable_pin: !PB6
microsteps: 16
rotation_distance: 40
endstop_pin: ^PB1
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PC15
dir_pin: PC5
enable_pin: !PB5
microsteps: 16
rotation_distance: 40
endstop_pin: ^PB10
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PC3
dir_pin: PC7
enable_pin: !PB4
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA2
sensor_type: Generic 3950
sensor_pin: PC2
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PC6
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# TMC2209 configuration
########################################
#[tmc2209 stepper_x]
#uart_pin: PB11
#run_current: 0.800
#diag_pin: PA3
#stealthchop_threshold: 999999
#[tmc2209 stepper_y]
#uart_pin: PB9
#run_current: 0.800
#diag_pin: PB1
#stealthchop_threshold: 999999
#[tmc2209 stepper_z]
#uart_pin: PB8
#run_current: 0.800
#diag_pin: PB10
#stealthchop_threshold: 999999
#[tmc2209 extruder]
#uart_pin: PB7
#run_current: 0.600
#diag_pin:
#stealthchop_threshold: 999999
########################################
# TMC5160 configuration
########################################
#[tmc5160 stepper_x]
#cs_pin: PB11
#spi_bus: spi1
#run_current: 0.800
#diag1_pin: PA3
#stealthchop_threshold: 999999
#[tmc5160 stepper_y]
#cs_pin: PB9
#spi_bus: spi1
#run_current: 0.800
#diag1_pin: PB1
#stealthchop_threshold: 999999
#[tmc5160 stepper_z]
#cs_pin: PB8
#spi_bus: spi1
#run_current: 0.800
#diag1_pin: PB10
#stealthchop_threshold: 999999
#[tmc5160 extruder]
#cs_pin: PB7
#spi_bus: spi1
#run_current: 0.800
#diag1_pin:
#stealthchop_threshold: 999999
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=<NC>, EXP1_3=PA13, EXP1_5=PA9, EXP1_7=<NC>, EXP1_9=<GND>,
EXP1_2=PA4, EXP1_4=PA10, EXP1_6=PA8, EXP1_8=<NC>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_3=PA15, EXP2_5=PA14, EXP2_7=PB3, EXP2_9=<GND>,
EXP2_2=PB13, EXP2_4=PB12, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<NC>,
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@ -0,0 +1,161 @@
# This file contains common pin mappings for the Mellow Fly-Gemini-v2.
# To use this config, the firmware should be compiled for the
# STM32F405 with a "32KiB bootloader".
# The "make flash" command does not work on the Fly-Gemini-v2. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" or "klipper.bin" on an SD card and then restart the Fly-Gemini-v2
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PC13
dir_pin: PC1
enable_pin: !PB2
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA3
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_y]
step_pin: PC14
dir_pin: !PC4
enable_pin: !PD2
microsteps: 16
rotation_distance: 40
endstop_pin: ^PB1
position_endstop: 0
position_max: 200
homing_speed: 50
[stepper_z]
step_pin: PC15
dir_pin: PC5
enable_pin: !PC12
microsteps: 16
rotation_distance: 40
endstop_pin: ^PB10
position_endstop: 0.5
position_max: 200
[extruder]
step_pin: PC3
dir_pin: PC8
enable_pin: !PC11
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA2
sensor_type: Generic 3950
sensor_pin: PC2
control: watermark
min_temp: 0
max_temp: 130
[fan]
pin: PC6
#FAN1
#[heater_fan fan1]
#pin: PC7
[mcu]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
########################################
# TMC2209 configuration
########################################
#[tmc2209 stepper_x]
#uart_pin: PB11
#run_current: 0.800
#diag_pin: PA3
#stealthchop_threshold: 999999
#[tmc2209 stepper_y]
#uart_pin: PB9
#run_current: 0.800
#diag_pin: PB1
#stealthchop_threshold: 999999
#[tmc2209 stepper_z]
#uart_pin: PB8
#run_current: 0.800
#diag_pin: PB10
#stealthchop_threshold: 999999
#[tmc2209 extruder]
#uart_pin: PB7
#run_current: 0.600
#diag_pin:
#stealthchop_threshold: 999999
########################################
# TMC5160 configuration
########################################
#[tmc5160 stepper_x]
#cs_pin: PB11
#spi_bus: spi1
#run_current: 0.800
#diag1_pin: PA3
#stealthchop_threshold: 999999
#[tmc5160 stepper_y]
#cs_pin: PB9
#spi_bus: spi1
#run_current: 0.800
#diag1_pin: PB1
#stealthchop_threshold: 999999
#[tmc5160 stepper_z]
#cs_pin: PB8
#spi_bus: spi1
#run_current: 0.800
#diag1_pin: PB10
#stealthchop_threshold: 999999
#[tmc5160 extruder]
#cs_pin: PB7
#spi_bus: spi1
#run_current: 0.800
#diag1_pin:
#stealthchop_threshold: 999999
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PC9, EXP1_3=PA13, EXP1_5=PA9, EXP1_7=<NC>, EXP1_9=<GND>,
EXP1_2=PB6, EXP1_4=PA10, EXP1_6=PA8, EXP1_8=<NC>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_3=PA15, EXP2_5=PA14, EXP2_7=PC10, EXP2_9=<GND>,
EXP2_2=PB13, EXP2_4=PB12, EXP2_6=PB15, EXP2_8=<RST>, EXP2_10=<NC>,
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@ -53,7 +53,7 @@ microsteps: 16
rotation_distance: 33.500 rotation_distance: 33.500
nozzle_diameter: 0.400 nozzle_diameter: 0.400
filament_diameter: 1.750 filament_diameter: 1.750
heater_pin: PC7 # Heat0 heater_pin: PB0 # Heat0
sensor_pin: PF4 # ADC_0 sensor_pin: PF4 # ADC_0
sensor_type: EPCOS 100K B57560G104F sensor_type: EPCOS 100K B57560G104F
control: pid control: pid
@ -240,72 +240,56 @@ max_z_accel: 100
#[tmc5160 stepper_x] #[tmc5160 stepper_x]
#cs_pin: PC4 #cs_pin: PC4
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PG12 ##diag1_pin: PG12
#run_current: 0.800 #run_current: 0.800
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999
#[tmc5160 stepper_y] #[tmc5160 stepper_y]
#cs_pin: PF12 #cs_pin: PF12
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PG11 ##diag1_pin: PG11
#run_current: 0.800 #run_current: 0.800
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999
#[tmc5160 stepper_z] #[tmc5160 stepper_z]
#cs_pin: PF15 #cs_pin: PF15
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PG10 ##diag1_pin: PG10
#run_current: 0.650 #run_current: 0.650
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999
#[tmc5160 extruder] #[tmc5160 extruder]
#cs_pin: PE7 #cs_pin: PE7
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PG9 ##diag1_pin: PG9
#run_current: 0.800 #run_current: 0.800
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999
#[tmc5160 extruder1] #[tmc5160 extruder1]
#cs_pin: PE10 #cs_pin: PE10
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PD7 ##diag1_pin: PD7
#run_current: 0.800 #run_current: 0.800
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999
#[tmc5160 extruder2] #[tmc5160 extruder2]
#cs_pin: PF1 #cs_pin: PF1
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PD6 ##diag1_pin: PD6
#run_current: 0.800 #run_current: 0.800
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999
#[tmc5160 extruder3] #[tmc5160 extruder3]
#cs_pin: PG2 #cs_pin: PG2
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PA8 ##diag1_pin: PA8
#run_current: 0.800 #run_current: 0.800
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999
#[tmc5160 extruder4] #[tmc5160 extruder4]
#cs_pin: PG5 #cs_pin: PG5
#spi_software_miso_pin: PB5 #spi_bus: spi3
#spi_software_mosi_pin: PB4
#spi_software_sclk_pin: PB3
##diag1_pin: PF3 ##diag1_pin: PF3
#run_current: 0.800 #run_current: 0.800
#stealthchop_threshold: 999999 #stealthchop_threshold: 999999

View File

@ -65,7 +65,7 @@ max_temp: 130
[fan] [fan]
pin: PH5 pin: PH5
#[heater_fan nozzle_cooling_fan] #[heater_fan heatbreak_cooling_fan]
#pin: PH3 #pin: PH3
[mcu] [mcu]

View File

@ -104,7 +104,7 @@ max_temp: 290
[fan] [fan]
pin: PB27 pin: PB27
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PA6 pin: PA6
[mcu] [mcu]

View File

@ -81,7 +81,7 @@ max_temp: 130
[fan] [fan]
pin: PC21 pin: PC21
#[heater_fan nozzle_cooling_fan] #[heater_fan heatbreak_cooling_fan]
#pin: PC22 #pin: PC22
[mcu] [mcu]

View File

@ -75,7 +75,7 @@ max_temp: 130
[fan] [fan]
pin: PH5 pin: PH5
#[heater_fan nozzle_cooling_fan] #[heater_fan heatbreak_cooling_fan]
#pin: PH3 #pin: PH3
[mcu] [mcu]

View File

@ -0,0 +1,128 @@
# This file contains common pin mappings for the TH3D EZBoard Lite v2.
# To use this config, the firmware should be compiled for the
# STM32F405 with 12mhz Crystal, 48KiB Bootloader, and USB communication.
# The "make flash" command does not work on this board. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the board
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_0000000000000000-if00
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[stepper_x]
step_pin: PB3
dir_pin: PD2
enable_pin: !PB5
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PC1
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
run_current: 0.600
uart_address: 0
[stepper_y]
step_pin: PB8
dir_pin: PC13
enable_pin: !PC12
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PC2
position_endstop: 0
position_max: 235
homing_speed: 50
[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
run_current: 0.600
uart_address: 1
[stepper_z]
step_pin: PA3
dir_pin: PB1
enable_pin: !PC14
microsteps: 16
rotation_distance: 8
endstop_pin: ^!PC3
position_endstop: 0.5
position_max: 250
[tmc2209 stepper_z]
uart_pin: PC11
tx_pin: PC10
run_current: 0.700
uart_address: 2
[extruder]
step_pin: PA15
dir_pin: PB11
enable_pin: !PB2
microsteps: 16
rotation_distance: 34.406
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC8
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA1
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2209 extruder]
uart_pin: PC11
tx_pin: PC10
run_current: 0.800
stealthchop_threshold: 999999
uart_address: 3
[heater_bed]
heater_pin: PC9
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PC6
#[bltouch]
#sensor_pin: ^PC3
#control_pin: PA2
#[filament_switch_sensor my_sensor]
#switch_pin: PC0
########################################
# EXP1 / EXP2 (display) pins
########################################
[board_pins]
aliases:
# EXP1 header
EXP1_1=PA14, EXP1_3=PC4, EXP1_5=PC5, EXP1_7=PB12, EXP1_9=<GND>,
EXP1_2=PB0, EXP1_4=<RST>, EXP1_6=PB13, EXP1_8=PB15, EXP1_10=<5V>
# See the sample-lcd.cfg file for definitions of common LCD displays.

View File

@ -227,14 +227,14 @@ gcode:
[quad_gantry_level] [quad_gantry_level]
# Use QUAD_GANTRY_LEVEL to level a gantry. # Use QUAD_GANTRY_LEVEL to level a gantry.
gantry_corners: gantry_corners:
-55,-7 -55, -7
305, 320 305, 320
# Min & Max gantry corners - measure from nozzle at MIN (0,0) and MAX (250,250) to respective belt positions # Min & Max gantry corners - measure from nozzle at MIN (0,0) and MAX (250,250) to respective belt positions
points: points:
25,0 25, 0
25,200 25, 200
225,200 225, 200
225,0 225, 0
# Probe points # Probe points
speed: 200 speed: 200
horizontal_move_z: 6 horizontal_move_z: 6

View File

@ -134,9 +134,9 @@ sample_retract_dist: 3.0
[bed_mesh] [bed_mesh]
speed: 100 speed: 100
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 69,41 mesh_min: 69, 41
mesh_max: 189,161 mesh_max: 189, 161
probe_count: 3,3 probe_count: 3, 3
[homing_override] [homing_override]
set_position_z: 6 set_position_z: 6

View File

@ -11,7 +11,7 @@
# For Anycubic 4Max Pro (not 2.0) owners: # For Anycubic 4Max Pro (not 2.0) owners:
# Be careful when using this config! This config tested only on Anycubic # Be careful when using this config! This config tested only on Anycubic
# 4Max Pro 2.0 with klipper v0.9.1-667-g31761500! At first, you should # 4Max Pro 2.0! At first, you should
# set homing_speed on 5, and run homing and click on the endstops with # set homing_speed on 5, and run homing and click on the endstops with
# your fingers. It is necessary to make sure that all the motors are # your fingers. It is necessary to make sure that all the motors are
# spinning in the right direction, all the temperature sensors show the # spinning in the right direction, all the temperature sensors show the
@ -132,10 +132,57 @@ max_z_accel: 50
square_corner_velocity: 5 square_corner_velocity: 5
[bed_screws] [bed_screws]
screw1: 5,5 screw1: 5, 5
screw2: 265,210 screw2: 265, 210
screw3: 5,210 screw3: 5, 210
screw4: 265,5 screw4: 265, 5
[filament_switch_sensor filament_sensor] [filament_switch_sensor filament_sensor]
switch_pin: ^!PC4 switch_pin: ^!PC4
[output_pin buzz]
pin: PC6
pwm: True
[output_pin AUTO_POWEROFF]
pin: PD0
pwm: True
cycle_time: 0.02
value: 1
# This macro (M300) uses internal integrated beeper
# Just use it in your G-code for making sounds. Example: M300 S1000 P500
[gcode_macro M300]
gcode:
{% set S = params.S|default(800)|float %}
{% set P = params.P|default(100)|int %}
SET_PIN PIN=buzz VALUE=0.5 CYCLE_TIME={ 1.0 / S | float }
G4 P{P}
SET_PIN PIN=buzz VALUE=0
# This macro (M81) uses internal integrated PSU control-relay.
# Just use M81 in your end_gcode if you want to poweroff your printer after print.
# Note: as in original Marlin firmware, before powerdown, printer will be cool hotend
# until temperature will be below 45°С / 113°F.
[gcode_macro M81]
gcode:
{% set required_extruder_temp = params.T|default(45)|int %}
{% if printer.extruder.temperature > required_extruder_temp|default(45)|int %}
M300
M300
M300
M117 COOLING DOWN BEFORE POWER OFF
M109 S{required_extruder_temp}
SET_PIN PIN=AUTO_POWEROFF VALUE=0.5
G4 P60
SET_PIN PIN=AUTO_POWEROFF VALUE=1
{% else %}
M300
M117 POWER OFF SOON
G4 P10000
SET_PIN PIN=AUTO_POWEROFF VALUE=0.5
G4 P60
SET_PIN PIN=AUTO_POWEROFF VALUE=1
{% endif %}

View File

@ -0,0 +1,194 @@
# This file contains common pin mappings for the Biqu B1 SE Plus.
# To use this config, the firmware should be compiled for the
# STM32F407 with a "32KiB bootloader".
# In newer versions of this board shipped in late 2021 the STM32F429
# is used, if this is the case compile for this with a "32KiB bootloader"
# You will need to check the chip on your board to identify which you have.
#
# The "make flash" command does not work on the SKR 2. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR 2
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_1D0039000F47393438343535-if00
########################################
# Stepper X Pins and TMC2208 configuration
########################################
[stepper_x]
step_pin: PE2
dir_pin: !PE1
enable_pin: !PE3
microsteps: 16
rotation_distance: 40
endstop_pin: !PC1
position_endstop: 0
position_max: 310
homing_speed: 50
[tmc2208 stepper_x]
uart_pin: PE0
run_current: 0.800
stealthchop_threshold: 999999
########################################
# Stepper Y Pins and TMC2208 configuration
########################################
[stepper_y]
step_pin: PD5
dir_pin: PD4
enable_pin: !PD6
microsteps: 16
rotation_distance: 40
endstop_pin: !PC3
position_endstop: 0
position_max: 310
homing_speed: 50
[tmc2208 stepper_y]
uart_pin: PD3
run_current: 0.800
stealthchop_threshold: 999999
########################################
# Stepper Z Pins and TMC2208 configuration
########################################
[stepper_z]
step_pin: PA15
dir_pin: PA8
enable_pin: !PD1
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
homing_speed: 10
second_homing_speed: 1
position_min: -2
position_max: 340
[tmc2208 stepper_z]
uart_pin: PD0
run_current: 0.800
stealthchop_threshold: 999999
########################################
# Extruder Pins and TMC2208 configuration
########################################
[extruder]
step_pin: PD15
dir_pin: !PD14
enable_pin: !PC7
microsteps: 16
rotation_distance: 34.2152 # Calibrar - ver https://www.klipper3d.org/Rotation_Distance.html
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB3
sensor_type: Generic 3950
sensor_pin: PA2 #thermistor pin
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 250
[tmc2208 extruder]
uart_pin: PC6
run_current: 0.800
stealthchop_threshold: 999999
########################################
# Heater Bed Pins
########################################
[heater_bed]
heater_pin: PD7
sensor_type: Generic 3950
sensor_pin: PA1
control: pid
pid_Kp: 54
pid_Ki: 0.77
pid_Kd: 900
min_temp: 0
max_temp: 110
########################################
# Printer Configuration
########################################
[printer]
kinematics: cartesian
max_velocity: 200
max_accel: 1000
max_z_velocity: 5
max_z_accel: 100
########################################
# Probe configuration
########################################
[probe]
pin: ^!PE4
z_offset: 0.0
x_offset: 0.0
y_offset: 0.0
speed: 10.0
samples: 2
samples_result: average
sample_retract_dist: 2.0
samples_tolerance: 0.2
[safe_z_home]
home_xy_position: 155,155
speed: 100
z_hop: 5
z_hop_speed: 5
[output_pin probe_enable]
pin: PE5
value: 1
########################################
# Bed Mesh configuration
########################################
[bed_mesh]
speed: 2000
horizontal_move_z: 3
mesh_min: 20, 20
mesh_max: 290, 290
probe_count: 7, 7
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
########################################
# Fan Nozzle configuration
########################################
[fan]
pin: PB7
[heater_fan Cooling_fan]
pin: PB6
max_power: 1.0
kick_start_time: 0.100
heater: heater_bed
[heater_fan Board_fan]
pin: PB5
max_power: 1.0
kick_start_time: 0.100
heater: extruder
########################################
# Filament Sensor configuration
########################################
[filament_switch_sensor Sensor_Filamento]
switch_pin: !PC2
pause_on_runout: true #pause handled by macro
########################################
# Motor Power Pin
########################################
[output_pin motor_power]
pin: PC13
value: 1

View File

@ -0,0 +1,317 @@
# This file contains common pin mappings for the BigTreeTech SKR SE BX.
# To use this config, the firmware should be compiled for the
# STM32H743 with a "128KiB bootloader". Additionally, GPIO pins PB5
# and PE5 need to be set at microcontroller startup.
######################################################################
# NOTE: In order enable the TFT70-BX display when the printer first
# starts, add PB5 and PE5 to the `GPIO pins to set at micro-controller
# startup` section when running "make menuconfig"
######################################################################
# The "make flash" command does not work on the SKR SE BX. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR SE BX
# with that SD card. After klipper has been flashed once to the board,
# you can update klipper by leaving a microSD inserted and running the
# scripts/flash-sd.sh script.
# See docs/Config_Reference.md for a description of parameters.
########################################
# Steppers
########################################
[stepper_x]
step_pin: PG13
dir_pin: !PG12
enable_pin: !PG14
microsteps: 16
rotation_distance: 40
full_steps_per_rotation: 400
endstop_pin: tmc2209_stepper_x:virtual_endstop
position_endstop: -13
position_min: -13
position_max: 250
homing_speed: 30
homing_retract_dist: 0
[stepper_y]
step_pin: PB3
dir_pin: !PD3
enable_pin: !PB4
microsteps: 16
rotation_distance: 40
full_steps_per_rotation: 400
endstop_pin: tmc2209_stepper_y:virtual_endstop
position_endstop: -7
position_min: -7
position_max: 250
homing_speed: 30
homing_retract_dist: 0
[stepper_z]
step_pin: PD7
dir_pin: PD6
enable_pin: !PG9
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 400
endstop_pin: probe:z_virtual_endstop
position_min: -2
position_max: 250
[stepper_z1]
step_pin: PA8
dir_pin: PC9
enable_pin: !PD2
microsteps: 16
rotation_distance: 8
full_steps_per_rotation: 400
[extruder]
step_pin: PC14
dir_pin: !PC13
enable_pin: !PC15
microsteps: 16
rotation_distance: 24.031
gear_ratio: 7:1
full_steps_per_rotation: 200
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PH4
control: pid
pid_Kp: 22.2
pid_Ki: 1.08
pid_Kd: 114
min_temp: 0
max_temp: 350
[safe_z_home]
home_xy_position: 125,125
speed: 200
z_hop: 10
z_hop_speed: 25
########################################
# TMC2209 configuration
########################################
[tmc2209 stepper_x]
uart_pin: PG10
diag_pin: ^PB11
run_current: 0.800
sense_resistor: 0.150
driver_SGTHRS: 127
stealthchop_threshold: 999999
[tmc2209 stepper_y]
uart_pin: PD4
diag_pin: ^PB12
run_current: 0.800
sense_resistor: 0.150
driver_SGTHRS: 137
stealthchop_threshold: 999999
[tmc2209 stepper_z]
uart_pin: PD5
run_current: 1.000
sense_resistor: 0.150
stealthchop_threshold: 999999
[tmc2209 stepper_z1]
uart_pin: PC8
run_current: 1.000
sense_resistor: 0.150
stealthchop_threshold: 999999
[tmc2209 extruder]
uart_pin: PI8
run_current: 0.800
sense_resistor: 0.150
stealthchop_threshold: 0
########################################
# PRINTER
########################################
[mcu]
serial: /dev/ttyAMA0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 200
max_accel: 1000
max_z_velocity: 10
max_z_accel: 1000
[fan]
pin: PA5
[heater_fan extruder_fan]
pin: PA6
heater: extruder
[controller_fan controller_fan]
pin: PA7
idle_timeout: 300 # 5 minute timeout
[output_pin motor_power]
pin: PI11
value: 1
[idle_timeout]
gcode:
TURN_OFF_HEATERS
M84
SET_PIN PIN=screen VALUE=0
SET_LED LED=led BLUE=0.0 RED=0.0 GREEN=0.0
[pause_resume]
########################################
# DISPLAY
########################################
[output_pin screen]
pin: PB5
value: 1
[display_status]
[gcode_button lcd_button]
pin: PH8
press_gcode:
SET_PIN PIN=screen VALUE=1
SET_LED LED=led BLUE=1.0 RED=1.0 GREEN=1.0
[output_pin beeper]
pin: PA14
pwm: True
cycle_time: 0.001
########################################
# LEDS
########################################
[neopixel led]
pin: PH3
chain_count: 15
[neopixel knob]
pin: PB1
chain_count: 2
[delayed_gcode welcome]
initial_duration: 0.1
gcode:
SET_LED LED=knob RED=0.0 BLUE=1.0 GREEN=0.0
SET_LED LED=led RED=0.0 BLUE=1.0 GREEN=0.0
G4 P1000
SET_LED LED=led RED=1.0 BLUE=0.0 GREEN=0.0
G4 P1000
SET_LED LED=led RED=0.0 BLUE=0.0 GREEN=1.0
G4 P1000
SET_LED LED=led RED=1.0 BLUE=1.0 GREEN=1.0
########################################
# BED
########################################
[heater_bed]
heater_pin: PA4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PH5
control: watermark
min_temp: 0
max_temp: 250
[probe]
pin: PH2
x_offset: -30.1
y_offset: 26.78
z_offset: 0
speed: 5
samples: 3
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.006
samples_tolerance_retries: 5
[bed_mesh]
speed: 120
mesh_min: 10,19.78
mesh_max: 219.9,230
probe_count: 4,4
[screws_tilt_adjust]
screw1: 58,-7
screw1_name: front left
screw2: 245,-7
screw2_name: front right
screw3: 245,179
screw3_name: rear right
screw4: 58,179
screw4_name: rear left
speed: 100
screw_thread: CCW-M3
########################################
## MACROS
########################################
# Slicer setup: "print_start NOZZLE=<temp> BED=<temp>
# This macro does a preheat on the probe for better accuracy and needs
# the temps passed in. examples:
# Cura: PRINT_START BED={material_bed_temperature_layer_0} NOZZLE={material_print_temperature_layer_0}
# PrusaSlicer: PRINT_START NOZZLE=[first_layer_temperature] BED=[bed_temperature]
# Use PRINT_END for the slicer ending script
[gcode_macro PRINT_START]
gcode:
# Turn on screen if it's not on
SET_PIN PIN=screen VALUE=1
G28
G0 Z1
# Warm up nozzle, not to full temps yet
M104 S150
# Set LED to Purple for bed heating
SET_LED LED=led BLUE=0.94 RED=0.63 GREEN=0.13
M117 Heating Bed
# Allow probe to warm up, then re-home Z
M190 S60
M105
G4 P90000
G28 Z
M190 S{params.BED}
M105
G90 # Ensure we are in absolute mode
G21
M83 # Set the extruder to relative mode
G92 E0
# Set LED to Red for nozzle heating
SET_LED LED=led BLUE=0.0 RED=1.0 GREEN=0.0
M117 Heating Nozzle
G0 X2 Y0 F6000
G0 Z0.4
M109 S{params.NOZZLE}
M105
# Set LED to white for printing
SET_LED LED=led BLUE=1.0 RED=1.0 GREEN=1.0
M117 Printing
# Purge Line
G1 X120 E30 F1200
G1 Y1
G1 X2 E30 F1200
G92 E0
G1 Z1.0 F600
G92 E0
G0 F9000
G90 # Set back to Absolute mode

View File

@ -0,0 +1,107 @@
# This file contains pin mappings for the BQ Prusa i3 Hephestos from 2014
# (https://www.reprap.org/wiki/Prusa_i3_Hephestos)
# It was sold in kit form, and uses a RAMPS board with HD44780 display without
# heated bed or any modern amenities.
# To use this config, the firmware should be compiled for the AVR atmega2560.
# See docs/Config_Reference.md for a description of parameters.
[display]
lcd_type: hd44780
rs_pin: PH1
e_pin: PH0
d4_pin: PA1
d5_pin: PA3
d6_pin: PA5
d7_pin: PA7
encoder_pins: ^PC4, ^PC6
click_pin: ^!PC2
kill_pin: ^!PG0
[stepper_x]
step_pin: PF0
dir_pin: !PF1
enable_pin: !PD7
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PE5
position_endstop: 0
position_max: 215
homing_speed: 50
[stepper_y]
step_pin: PF6
dir_pin: PF7
enable_pin: !PF2
microsteps: 16
rotation_distance: 40
endstop_pin: ^!PJ1
position_endstop: 0
position_max: 210
homing_speed: 50
[stepper_z]
step_pin: PL3
dir_pin: !PL1
enable_pin: !PK0
microsteps: 16
rotation_distance: 0.8
endstop_pin: ^!PD3
position_endstop: 0
position_max: 200
homing_speed: 3
[extruder]
step_pin: PA4
dir_pin: PA6
enable_pin: !PA2
microsteps: 16
# measured extruding 100mm of filament with stock Hephestos extruder
rotation_distance: 31.825
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK5
min_temp: 0
max_temp: 250
control: pid
pid_kp: 19.462
pid_ki: 0.713
pid_kd: 132.830
# 5 points for manual bed leveling that still leave room for accessing the stock screws
[bed_screws]
screw1: 40, 40
screw2: 180, 40
screw3: 180, 160
screw4: 40, 160
screw5: 110, 100
[fan]
pin: PH6
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
# Must limit Z velocity, since RAMPS does not have enough timer resolution
max_z_velocity: 3
max_z_accel: 100
[mcu]
serial: /dev/ttyUSB0
# Common EXP1 / EXP2 (display) pins
[board_pins]
aliases:
# Common EXP1 header found on many "all-in-one" ramps clones
EXP1_1=PC0, EXP1_3=PH0, EXP1_5=PA1, EXP1_7=PA5, EXP1_9=<GND>,
EXP1_2=PC2, EXP1_4=PH1, EXP1_6=PA3, EXP1_8=PA7, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB3, EXP2_3=PC6, EXP2_5=PC4, EXP2_7=PL0, EXP2_9=<GND>,
EXP2_2=PB1, EXP2_4=PB0, EXP2_6=PB2, EXP2_8=PG0, EXP2_10=<RST>
# Pins EXP2_1, EXP2_6, EXP2_2 are also MISO, MOSI, SCK of bus "spi"
# Note, some boards wire: EXP2_8=<RST>, EXP2_10=PG0

View File

@ -0,0 +1,161 @@
# This file contains pin mappings for the Creality CR-10 Smart Pro
# with a CR-FDM-v2.5.S1 board.
#
# To use this config, during "make menuconfig" select the STM32F103
# with a "64KiB bootloader" and serial (on USART1 PA10/PA9)
# communication. Enable PA0 GPIO pin on startup.
#
# Flash this firmware on the MCU by copying "out/klipper.bin" to an SD
# card and turning the printer on with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
#
# The machine itself includes a small router that can run a Klipper
# frontend. You don't need to buy a single-board computer.
#
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PB8
dir_pin: !PB7
enable_pin: !PC3
rotation_distance: 40
microsteps: 16
endstop_pin: PC4
position_min: -5
position_endstop: -5
position_max: 305
homing_speed: 50
[stepper_y]
step_pin: PB6
dir_pin: PB5
enable_pin: !PC3
rotation_distance: 40
microsteps: 16
endstop_pin: PC5
position_min: -2
position_endstop: -2
position_max: 302
homing_speed: 50
[stepper_z]
step_pin: PB4
dir_pin: !PB3
enable_pin: !PC3
rotation_distance: 8
microsteps: 16
endstop_pin: probe:z_virtual_endstop
position_min: -1.5
position_max: 400
homing_speed: 4
second_homing_speed: 1
homing_retract_dist: 2.0
[extruder]
step_pin: PC2
dir_pin: !PB9
enable_pin: !PC3
rotation_distance: 7.640
microsteps: 16
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB14
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PB1
control: pid
pid_Kp: 22.865
pid_Ki: 1.292
pid_Kd: 101.178
min_temp: 0
max_temp: 250
[filament_switch_sensor runout_sensor]
pause_on_runout: false
runout_gcode: PAUSE
insert_gcode: RESUME
switch_pin: !PA15
[heater_bed]
heater_pin: PB13
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PB0
control: pid
pid_Kp: 72.49
pid_Ki: 0.844
pid_Kd: 1542.189
min_temp: 0
max_temp: 120
[heater_fan hotend_fan]
pin: PC13
heater: extruder
heater_temp: 50.0
[fan]
pin: PB15
kick_start_time: 0.5
[mcu]
serial: /dev/ttyPrinter
restart_method: command
[temperature_sensor Board_MCU]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
[bltouch]
sensor_pin: ^PC15
control_pin: PC14
x_offset: -32.5
y_offset: -40.6
z_offset: 2.60 # initial safe value, get correct value by PROBE_CALIBRATE
[safe_z_home]
home_xy_position: 150,150
speed: 50
z_hop: 3
z_hop_speed: 5
[screws_tilt_adjust]
screw1: 60, 80
screw1_name: front left screw
screw2: 300, 80
screw2_name: front right screw
# The rear screws are actually mechanically not reachable for the
# probe, but that is ok, adjustments will still converge.
screw3: 300, 300
screw3_name: rear right screw
screw4: 60, 300
screw4_name: rear left screw
horizontal_move_z: 10.
speed: 50.
screw_thread: CW-M3
# Main light bar
[output_pin lights]
pin: PA7
value: 1
# Do not use PB12. PB12 resets the Wifi board.
#[output_pin factory_reset]
#pin: PB12
#value: 0
# Turns off the printer
[output_pin power]
pin: PA0
value: 1
shutdown_value: 1
# Conservative default values that mimic the behaviour of the
# stock firmware for easy results. It can go faster.
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 2000
square_corner_velocity: 5.0
max_z_velocity: 10
max_z_accel: 100

View File

@ -0,0 +1,162 @@
# This file contains common pin mappings for the 2020 Creality CR-10
# V3. The mainboard is a Creality 3D v2.5.2 (8-bit mainboard with
# ATMega2560). To use this config, the firmware should be compiled for
# the AVR atmega2560.
# See docs/Config_Reference.md for a description of parameters.
# For better compatibility with GCodes generated for Marlin, you
# may wish to add the following section, if you have BLTouch:
#[gcode_macro G29]
#gcode:
# BED_MESH_CALIBRATE
[stepper_x]
step_pin: PF0 #ar54
dir_pin: PF1 #ar55
enable_pin: !PD7 #!ar38
microsteps: 16
rotation_distance: 40
endstop_pin: ^PE5 #^ar3
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_y]
step_pin: PF6 #ar60
dir_pin: PF7 #ar61
enable_pin: !PF2 #!ar56
microsteps: 16
rotation_distance: 40
endstop_pin: ^PJ1 #^ar14
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_z]
step_pin: PL3 #ar46
dir_pin: !PL1 #!ar48
enable_pin: !PK0 #!ar62
microsteps: 16
rotation_distance: 8
position_max: 400
#Uncomment if you have a BL-Touch:
#position_min: -4
#endstop_pin: probe:z_virtual_endstop
#and comment the follwing lines:
position_endstop: 0.0
endstop_pin: ^PD3 #ar18
[safe_z_home]
home_xy_position: 104.25,147.6
speed: 80
z_hop: 10
z_hop_speed: 10
[extruder]
step_pin: PA4 # ar26
dir_pin: !PA6 # !ar28
enable_pin: !PA2 # !ar24
microsteps: 16
rotation_distance: 7.7201944 # 16 microsteps * 200 steps/rotation / steps/mm
#Correction formula is new_rotation_distance = old_rotation_distance * mmsExtracted / 100.0
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PB4 #ar10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PK5 #analog13
control: pid
pid_kp: 22.107
pid_ki: 1.170
pid_kd: 104.458
min_temp: 0
max_temp: 255
[heater_bed]
heater_pin: PH5 #ar8
sensor_type: ATC Semitec 104GT-2
sensor_pin: PK6 #analog14
control: pid
#Stock PID configuration taken from Marlin
pid_Kp: 201.86
pid_Ki: 10.67
pid_Kd: 954.96
min_temp: 0
max_temp: 130
[fan]
pin: PH6 #ar9
[mcu]
serial: /dev/ttyUSB0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PH1 #ar16
sclk_pin: PA1 #ar23
sid_pin: PH0 #ar17
encoder_pins: ^PC4, ^PC6 #^ar33, ^ar31
click_pin: ^!PC2 #^!ar35
#Uncomment the following lines if you have a BL-Touch
#[bltouch]
#sensor_pin: ^PD2 #^ar19
#control_pin: PB5 #ar11
#set_output_mode: 5V
#pin_move_time: 0.4
#stow_on_each_sample: False
#probe_with_touch_mode: False
#x_offset: 45.75
#y_offset: -3.40
#z_offset: 3.28
#samples: 2
#sample_retract_dist: 2
#samples_result: average
#Uncomment the following lines if you have a BL-Touch
#[bed_mesh]
#speed: 50
#horizontal_move_z: 6
#mesh_min: 46.50,0.75
#mesh_max: 253.5,295.85
#probe_count: 7,7
#algorithm: bicubic
[pause_resume]
recover_velocity: 50
[filament_switch_sensor fil_runout_sensor]
pause_on_runout: True
switch_pin: PE4 #ar2
[bed_screws]
screw1: 33,29
screw1_name: front left screw
screw2: 273,29
screw2_name: front right screw
screw3: 273,269
screw3_name: rear right screw
screw4: 33,269
screw4_name: rear left screw
#Uncomment the following lines if you have a BL-Touch
#[screws_tilt_adjust]
#screw1: 0,29
#screw1_name: front left screw
#screw2: 228,29
#screw2_name: front right screw
#screw3: 228,269
#screw3_name: rear right screw
#screw4: 0,269
#screw4_name: rear left screw
#speed: 50
#horizontal_move_z: 10
#screw_thread: CW-M3

View File

@ -64,7 +64,7 @@ speed: 3.0
samples: 1 samples: 1
[safe_z_home] [safe_z_home]
home_xy_position: 117,117 home_xy_position: 117, 117
speed: 50.0 speed: 50.0
z_hop: 10.0 z_hop: 10.0
z_hop_speed: 100 z_hop_speed: 100
@ -72,9 +72,9 @@ z_hop_speed: 100
[bed_mesh] [bed_mesh]
speed: 100 speed: 100
horizontal_move_z: 8 horizontal_move_z: 8
mesh_min: 106,39 mesh_min: 106, 39
mesh_max: 281,229 mesh_max: 281, 229
probe_count: 3,3 probe_count: 3, 3
[heater_bed] [heater_bed]
heater_pin: PH5 heater_pin: PH5

View File

@ -80,7 +80,7 @@ min_temp: 0
max_temp: 120 max_temp: 120
[fan] [fan]
pin: PA0 pin: PB15
kick_start_time: 0.5 kick_start_time: 0.5
[mcu] [mcu]

View File

@ -0,0 +1,106 @@
# This file contains pin mappings for the stock 2021 Creality
# Ender2 Pro. To use this config, during "make menuconfig" select
# the STM32F103 with a "28KiB bootloader" and serial
# (on USART1 PA10/PA9) communication.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_min: -20
position_endstop: -20
position_max: 165
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA6
position_min: -5
position_endstop: -5
position_max: 165
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
endstop_pin: ^PA7
position_endstop: 0.0
position_max: 180
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 27.53480577
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_pin: PC5
sensor_type: EPCOS 100K B57560G104F
control: pid
pid_Kp: 29.634
pid_Ki: 2.102
pid_Kd: 104.459
min_temp: 0
max_temp: 260
[heater_bed]
heater_pin: PB10
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 72.921
pid_Ki: 1.594
pid_Kd: 834.031
min_temp: 0
max_temp: 80
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PA2
click_pin: ^!PB2
[output_pin beeper]
pin: PC6

View File

@ -88,6 +88,12 @@ max_accel: 3000
max_z_velocity: 5 max_z_velocity: 5
max_z_accel: 100 max_z_accel: 100
[bed_screws]
screw1: 30.5, 37
screw2: 30.5, 207
screw3: 204.5, 207
screw4: 204.5, 37
[display] [display]
lcd_type: st7920 lcd_type: st7920
cs_pin: PA3 cs_pin: PA3

View File

@ -0,0 +1,131 @@
# This file contains pin mappings for the stock 2021 Creality Ender 3
# S1 (and S1 pro). To use this config, check the STM32 Chip on the
# V2.4S1 Board then during "make menuconfig" select either the
# STM32F103 with a "28KiB bootloader" or select the STM32F401 with a
# "64KiB bootloader" and serial (on USART1 PA10/PA9) communication for
# both depending on the STM32 chip installed on your printer's
# motherboard.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# Serial (on USART2 PA3/PA2), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must changed to "firmware.bin"
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: !PA5
position_endstop: -10
position_max: 235
position_min: -15
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: !PA6
position_endstop: -10
position_max: 241
position_min: -15
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 270
position_min: -4
[extruder]
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
gear_ratio: 42:12
rotation_distance: 26.359
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_Kp: 23.561
pid_Ki: 1.208
pid_Kd: 114.859
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 71.867
pid_Ki: 1.536
pid_Kd: 840.843
min_temp: 0
max_temp: 110
[heater_fan hotend_fan]
pin: PC0
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 2000
max_z_velocity: 5
max_z_accel: 100
[bltouch]
sensor_pin: ^PC14
control_pin: PC13
x_offset: -31.8
y_offset: -40.5
z_offset: 0
probe_with_touch_mode: true
stow_on_each_sample: false
[bed_mesh]
speed: 120
mesh_min: 20, 20
mesh_max: 200, 200
probe_count: 4,4
algorithm: bicubic
[safe_z_home]
home_xy_position: 147, 154
speed: 75
z_hop: 5
z_hop_speed: 5
move_to_previous: true
[filament_switch_sensor e0_sensor]
switch_pin: !PC15
pause_on_runout: true
runout_gcode: PAUSE
[pause_resume]
recover_velocity: 25

View File

@ -3,6 +3,12 @@
# "make menuconfig" select the STM32F103 with a "28KiB bootloader" and # "make menuconfig" select the STM32F103 with a "28KiB bootloader" and
# serial (on USART1 PA10/PA9) communication. # serial (on USART1 PA10/PA9) communication.
# It should be noted that newer variations of this printer shipping in
# 2022 may have GD32F103 chips installed and not STM32F103. You may
# have to inspect the mainboard to ascertain which one you have. If it
# is the GD32F103 then please select Disable SWD at startup in the
# "make menuconfig" along with the same settings for STM32F103.
# If you prefer a direct serial connection, in "make menuconfig" # If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select # select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC # serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC

View File

@ -75,8 +75,8 @@ pin_up_touch_mode_reports_triggered: False
speed: 100 speed: 100
horizontal_move_z: 8 horizontal_move_z: 8
mesh_min: 50, 50 mesh_min: 50, 50
mesh_max: 300,300 mesh_max: 300, 300
probe_count: 3,3 probe_count: 3, 3
[heater_bed] [heater_bed]
heater_pin: PH5 heater_pin: PH5

View File

@ -0,0 +1,101 @@
# This file contains pin mappings for the stock 2020 Creality Ender 5
# Pro with the 32-bit Creality 4.2.2 board. To use this config, during
# "make menuconfig" select the STM32F103 with a "28KiB bootloader" and
# with "Use USB for communication" disabled.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select the
# USART3 serial port, which is broken out on the 10 pin IDC cable used
# for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_endstop: 220
position_max: 220
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA6
position_endstop: 220
position_max: 220
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 4
endstop_pin: ^PA7
position_max: 300
position_endstop: 0.0
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 32.342
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
pid_kp: 24.831
pid_ki: 1.346
pid_kd: 114.532
min_temp: 0
max_temp: 260
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_kp: 66.429
pid_ki: 1.197
pid_kd: 921.707
min_temp: 0
max_temp: 135
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PB14, ^PB10
click_pin: ^!PB2

View File

@ -75,7 +75,7 @@ position_max: 400
# mesh_min: 10, 10 # mesh_min: 10, 10
# mesh_max: 239, 239 # mesh_max: 239, 239
# algorithm: bicubic # algorithm: bicubic
# probe_count: 5,5 # probe_count: 5, 5
[extruder] [extruder]
max_extrude_only_distance: 1000.0 max_extrude_only_distance: 1000.0

View File

@ -113,7 +113,7 @@ restart_method: command
# mesh_min: 20, 15 # mesh_min: 20, 15
# mesh_max: 250, 240 # mesh_max: 250, 240
# algorithm: bicubic # algorithm: bicubic
# probe_count: 5,5 # probe_count: 5, 5
[filament_switch_sensor filament_sensor] [filament_switch_sensor filament_sensor]
pause_on_runout: true pause_on_runout: true

View File

@ -0,0 +1,109 @@
# This file contains pin mappings for the Creality Sermoon V1
# with CR-FDM-v2.4.S1.200 motherboard.
# To use this config, during "make menuconfig" select the STM32F401
# with a "64KiB bootloader" and serial (on USART1 PA10/PA9)
# communication.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# Serial (on USART2 PA3/PA2), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must changed to "firmware.bin"
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PA7
dir_pin: !PA4
enable_pin: !PB8
microsteps: 16
rotation_distance: 40
endstop_pin: PC4
position_endstop: 175
position_max: 175
position_min: 0
homing_speed: 50
[stepper_y]
step_pin: PB0
dir_pin: PB10
enable_pin: !PB8
microsteps: 16
rotation_distance: 40
endstop_pin: PB13
position_endstop: 0
position_max: 175
position_min: 0
homing_speed: 50
[stepper_z]
step_pin: PB7
dir_pin: PB6
enable_pin: !PB8
microsteps: 16
rotation_distance: 8
endstop_pin: PB3
position_endstop: 165
position_max: 168
position_min: -3
[extruder]
step_pin: PB1
dir_pin: PB12
enable_pin: !PB8
microsteps: 16
gear_ratio: 42:12
rotation_distance: 26.359
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC1
control: pid
pid_Kp: 30.090
pid_Ki: 1.875
pid_Kd: 120.735
min_temp: 0
max_temp: 290
[heater_bed]
heater_pin: PB9
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 75.694
pid_Ki: 1.160
pid_Kd: 1234.759
min_temp: 0
max_temp: 90
[fan]
pin: PA5
[fan_generic side_fan]
pin: PC15
# [controller_fan controller_fan]
# In order to access the controller fan, the controller fan needs to be plugged
# in another location. See https://github.com/Klipper3d/klipper/pull/5621
# for more information.
# pin: PB4
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 2000
max_z_velocity: 5
max_z_accel: 100
[pause_resume]
recover_velocity: 25

View File

@ -1,16 +1,25 @@
# This file contains common pin mappings for the stock Elegoo # This file contains standard pin mappings for the stock Elegoo Neptune 2 with a
# Neptune 2 with a MKS Robin Nano (v1.2.004) board. To use this # ZNP Robin Nano (v 1.2 and v1.3) board.
# config, the firmware should be compiled for the STM32F103. When # For the 1.2 board:
# running "make menuconfig", enable "extra low-level configuration # - Compile with the processor model STM32F103.
# setup", select the 28KiB bootloader, and serial (on # USART3 # - Enable "extra low-level configuration options"
# PB11/PB10) communication. # - Select the 28KiB bootloader,
# - Select (Serial (on # USART3 PB11/PB10) for the communication interface.
# Note that the "make flash" command does not work with MKS Robin # Note that the "make flash" command does not work with ZNP Robin boards. After
# boards. After running "make", run the following command: # running "make", run the following command:
# ./scripts/update_mks_robin.py out/klipper.bin out/elegoo.bin # ./scripts/update_mks_robin.py out/klipper.bin out/elegoo.bin
# Copy the file out/elegoo.bin to an SD card and then restart the #
# printer with that SD card. # For the 1.3 board:
# - Compile with the processor model STM32F407.
# - Enable "extra low-level configuration options"
# - Select the 32KiB bootloader,
# - Select (Serial (on # USART3 PB11/PB10) for the communication interface.
# Note that the "make flash" command does not work with ZNP Robin boards. After
# running "make", run the following command:
# cp out/klipper.bin out/elegoo.bin
#
# Copy the file out/elegoo.bin to an SD card and then restart the printer with
# that SD card.
# See docs/Config_Reference.md for a description of parameters. # See docs/Config_Reference.md for a description of parameters.
[stepper_x] [stepper_x]
@ -51,7 +60,7 @@ step_pin: PD6
dir_pin: PD3 dir_pin: PD3
enable_pin: !PB3 enable_pin: !PB3
microsteps: 16 microsteps: 16
rotation_distance: 34.406 rotation_distance: 34.406 # use 23.809 as a base before calibration for a 2s
nozzle_diameter: 0.400 nozzle_diameter: 0.400
filament_diameter: 1.750 filament_diameter: 1.750
heater_pin: PC3 heater_pin: PC3
@ -79,7 +88,7 @@ pid_Kp: 70.857
pid_Ki: 1.221 pid_Ki: 1.221
pid_Kd: 1028.316 pid_Kd: 1028.316
min_temp: 0 min_temp: 0
max_temp: 130 max_temp: 110
[heater_fan hotend_fan] [heater_fan hotend_fan]
pin: PB0 pin: PB0
@ -93,6 +102,12 @@ pin: PB1
serial: /dev/ttyUSB0 serial: /dev/ttyUSB0
restart_method: command restart_method: command
[bed_screws]
screw1: 32.5, 32.5
screw2: 32.5, 202.5
screw3: 202.5, 32.5
screw4: 202.5, 202.5
[printer] [printer]
kinematics: cartesian kinematics: cartesian
max_velocity: 300 max_velocity: 300

View File

@ -112,7 +112,7 @@ max_temp: 100
[fan] [fan]
pin: PB5 pin: PB5
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PB4 pin: PB4
[mcu] [mcu]
@ -141,15 +141,15 @@ z_offset: 2.6
pin_up_touch_mode_reports_triggered: False pin_up_touch_mode_reports_triggered: False
[safe_z_home] [safe_z_home]
home_xy_position: 5,5 home_xy_position: 5, 5
z_hop: 5.0 z_hop: 5.0
z_hop_speed: 5.0 z_hop_speed: 5.0
[bed_mesh] [bed_mesh]
speed: 80 speed: 80
mesh_min: 40,20 mesh_min: 40, 20
mesh_max: 210,205 mesh_max: 210, 205
probe_count: 5,5 probe_count: 5, 5
###################################################################### ######################################################################
# "RepRapDiscount 128x64 Full Graphic Smart Controller" type display # "RepRapDiscount 128x64 Full Graphic Smart Controller" type display

View File

@ -67,7 +67,7 @@ max_extrude_only_distance: 300
[fan] [fan]
pin: PH5 pin: PH5
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PH3 pin: PH3
[heater_bed] [heater_bed]

View File

@ -42,10 +42,10 @@ max_z_velocity: 25
max_z_accel: 100 max_z_accel: 100
[bed_screws] [bed_screws]
screw1: 33,33 screw1: 33, 33
screw2: 203,33 screw2: 203, 33
screw3: 203,201 screw3: 203, 201
screw4: 33,201 screw4: 33, 201
[stepper_x] [stepper_x]
step_pin: PE3 step_pin: PE3
@ -158,7 +158,7 @@ switch_pin: !PA4
# Optional bed mesh configuration you can use if you have a BLtouch installed. # Optional bed mesh configuration you can use if you have a BLtouch installed.
#[bed_mesh] #[bed_mesh]
#mesh_min: 70,15 #mesh_min: 70, 15
#mesh_max: 220,210 #mesh_max: 220, 210
#horizontal_move_z: 5 #horizontal_move_z: 5
#speed: 150 #speed: 150

View File

@ -93,9 +93,9 @@ speed: 5
######################################## ########################################
[bed_mesh] [bed_mesh]
mesh_min: 40,40 mesh_min: 40, 40
mesh_max: 185,230 mesh_max: 185, 230
probe_count: 4,4 probe_count: 4, 4
speed: 100 speed: 100
fade_end: 0.0 fade_end: 0.0
algorithm: bicubic algorithm: bicubic

View File

@ -65,9 +65,9 @@ position_max: 250
# z_offset: 1.56 # z_offset: 1.56
# [bed_mesh] # [bed_mesh]
# mesh_min: 16,16 # mesh_min: 16, 16
# mesh_max: 201,200 # mesh_max: 201, 200
# probe_count: 4,3 # probe_count: 4, 3
[extruder] [extruder]
step_pin: PA4 step_pin: PA4

View File

@ -114,7 +114,7 @@ max_temp: 130
#define FAN_PIN 8 #define FAN_PIN 8
pin: PH5 pin: PH5
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
#define FAN1_PIN 6 #define FAN1_PIN 6
pin: PH3 pin: PH3
@ -197,10 +197,10 @@ samples_tolerance_retries: 2
[bed_tilt] [bed_tilt]
# Enable bed tilt measurments using the probe we defined above # Enable bed tilt measurments using the probe we defined above
# Probe points using X0 Y0 offsets @ 0.01mm/step # Probe points using X0 Y0 offsets @ 0.01mm/step
points: -2,-6 points: -2, -6
156,-6 156, -6
156,158 156, 158
-2,158 -2, 158
speed: 75 speed: 75
horizontal_move_z: 2 horizontal_move_z: 2

View File

@ -97,7 +97,7 @@ max_temp: 130
[fan] [fan]
pin: PH5 pin: PH5
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PH3 pin: PH3
[mcu] [mcu]
@ -151,15 +151,15 @@ sample_retract_dist: 1.0
samples_tolerance: 0.075 samples_tolerance: 0.075
[bed_tilt] [bed_tilt]
points: -9,-9 points: -9, -9
289.4,-9 289.4, -9
289.4,290 289.4, 290
-9,289 -9, 289
speed: 75 speed: 75
horizontal_move_z: 5 horizontal_move_z: 5
[safe_z_home] [safe_z_home]
home_xy_position: -19.1,259.3 home_xy_position: -19.1, 259.3
speed: 50.0 speed: 50.0
z_hop: 10.0 z_hop: 10.0

View File

@ -128,7 +128,7 @@ max_temp: 130
#On Dual v3 heat break fan is connected to PH3 (part cooling fan on single extruder) #On Dual v3 heat break fan is connected to PH3 (part cooling fan on single extruder)
pin: PH3 pin: PH3
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
#On Dual v3 part fans are connected to PH5 (heat break fan on single extruder) #On Dual v3 part fans are connected to PH5 (heat break fan on single extruder)
pin: PH5 pin: PH5
@ -185,10 +185,10 @@ samples_tolerance: 0.100
[bed_tilt] [bed_tilt]
#Enable bed tilt measurments using the probe we defined above #Enable bed tilt measurments using the probe we defined above
#Probe points using X0 Y0 offsets @ 0.01mm/step #Probe points using X0 Y0 offsets @ 0.01mm/step
points: -3,-6 points: -3, -6
282,-6 282, -6
282,300 282, 300
-3,300 -3, 300
speed: 75 speed: 75
horizontal_move_z: 5 horizontal_move_z: 5
@ -196,7 +196,7 @@ horizontal_move_z: 5
#Needed to lift the Z to clear homing switch on bed #Needed to lift the Z to clear homing switch on bed
# ---> WARNING! - Z_MAX limit switch not monitored in Klipper! <--- # ---> WARNING! - Z_MAX limit switch not monitored in Klipper! <---
# ---> This could potentially crash the toolhead if already at the top of Z travel! <--- # ---> This could potentially crash the toolhead if already at the top of Z travel! <---
home_xy_position: -19,265 home_xy_position: -19, 265
speed: 50.0 speed: 50.0
z_hop: 15.0 z_hop: 15.0
move_to_previous: False move_to_previous: False

View File

@ -70,7 +70,7 @@ max_temp: 90
[fan] [fan]
pin: PH5 pin: PH5
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PH3 pin: PH3
[mcu] [mcu]

View File

@ -0,0 +1,141 @@
# This file contains common pin mappings for the Monoprice
# Select Mini v1. To use this config, the firmware should be compiled for the
# STM32F103 microcontroller with an 8MHz crystal and USB for communication.
#
# Use the following settings in make menuconfig:
#
# * Enable extra low-level configuration options: Enable
# * Microcontroller architecture: STM32
# * Processor: STM32F103
# * Bootloader offset: 8KiB bootloader
# * Clockspeed: 8 Mhz crystal
# * Communication interface: USB (on PA11/PA12)
# * GPIO pins to set: PA8, PB1, PB11, PB9
#
# IMPORTANT: A bootloader offset of 8KiB will preserver the stock bootloader
# and allows easy flashing via SDCard without additional hardware.
#
# IMPORTANT: Setting PB9 in the the GPIO pins to set at micro-controller
# startup is required for the USB port to function.
#
# PA8, PB1, PB11 in the GPIO pins deactivates the steppers until klippy
# takes over.
#
# Note 1: Prior to flashing klipper, if possible, make a copy of the default
# or current configuration values for the printer. Running an M503 command
# will output these values.
#
# Note 2: Klipper can be flashed by copying out/klipper.bin to the MPSMv1's
# SDCard, renaming it to update.bin, and creating an empty file on the SD card
# named fcupdate.flg. Insert the SDCard while the printer is off it on. After
# klipper is flashed, remove the SDCard and delete update.bin and fcupdate.flg
# to prevent the firmware from flashing on every subsequent power-on.
# Returning to stock firmware without a programmer is possible as long as the
# bootloader is not overwritten.
#
# Note 3: Stepper directions are not consistent in MSPMv1 printers. Check the
# directions of the printer with M503 in the stock firmware and adjust the
# dir_pins below accordingly.
#
# Note 4: Klipper currently does not support the LCD-UI of this
# printer, which is connected via serial interface and controlled by an
# esp8266 using a custom protocol.
#
# See ../docs/Config_Reference.md file for a description of all parameters.
[stepper_x]
homing_speed: 15
step_pin: PB14
dir_pin: !PB15 # modify stepper direction if necessary
enable_pin: !PA8
# rotation_distance varies in the printer model. Check the correct
# step-rate of the Select Mini in the original firmware (with M503)
# and calculate the appropriate value for rotation_distance. This has
# to be done for all axes.
microsteps: 16
rotation_distance: 34.510 # 17 teeth on pulley; MXL belt (2.03 pitch)
endstop_pin: ^!PB4
position_endstop: 0
position_max: 120 # default bed width
position_min: 0
[stepper_y]
homing_speed: 15
step_pin: PB12
dir_pin: PB13 # modify stepper direction if necessary
enable_pin: !PA8
microsteps: 16
rotation_distance: 34.510 # check comment in [stepper_x] section
endstop_pin: ^!PA15
position_endstop: 0
position_max: 120 # default bed length
position_min: 0
[stepper_z]
homing_speed: 10
step_pin: PB10
dir_pin: PB2 # modify stepper direction if necessary
enable_pin: !PB11
microsteps: 16
full_steps_per_rotation: 48
rotation_distance: 0.7 # M4 rod. check comment in [stepper_x] section
endstop_pin: ^!PB5
position_endstop: 0.5
position_max: 120 # default height
[extruder]
# extruder stepper
step_pin: PB0
dir_pin: !PC13 # modify stepper direction if necessary
enable_pin: !PB1
microsteps: 16
rotation_distance: 32.990 # 97 steps/mm. check comment in [stepper_x] section
nozzle_diameter: 0.400
filament_diameter: 1.750
# heater
heater_pin: PB6
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA0
control: pid
pid_kp: 20.00
pid_ki: 0.02
pid_kd: 250.00
# temperatures
min_temp: 0
max_temp: 250
max_extrude_only_distance: 425 #for (un-)loading
[heater_bed]
heater_pin: PB7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA1
control: pid
pid_kp: 70.00
pid_ki: 1.50
pid_kd: 812.00
min_temp: 0
max_temp: 85
# Print cooling fan
[heater_fan hotend_fan]
pin: PB8
heater: extruder
heater_temp: 45.0
[mcu]
serial: /dev/ttyACM0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 150
max_accel: 800
max_z_velocity: 1.5
max_z_accel: 20
# Positions for BED_SCREWS_ADJUST levelling with bed screws still accessible
[bed_screws]
screw1: 22, 10
screw2: 22, 90
screw3: 98, 90
screw4: 98, 10

View File

@ -15,7 +15,7 @@
# Also make sure to use the following string in the low-level configuration # Also make sure to use the following string in the low-level configuration
# options to set a couple of GPIOs to high when the MCU boots: # options to set a couple of GPIOs to high when the MCU boots:
# #
# PA8, PB5, PB1 # PA8, PB11, PB1
# #
# This will deactivate the steppers until klippy takes over. # This will deactivate the steppers until klippy takes over.
# #
@ -143,10 +143,10 @@ max_z_accel: 20
# Positions for BED_SCREWS_ADJUST levelling with bed screws still accessible # Positions for BED_SCREWS_ADJUST levelling with bed screws still accessible
[bed_screws] [bed_screws]
screw1: 22,10 screw1: 22, 10
screw2: 22,90 screw2: 22, 90
screw3: 98,90 screw3: 98, 90
screw4: 98,10 screw4: 98, 10
###################################################################### ######################################################################
# Optional: i2c ssd1306 OLED-display controlled by raspi host_mcu # Optional: i2c ssd1306 OLED-display controlled by raspi host_mcu

View File

@ -93,18 +93,18 @@ y_offset: 37
z_offset: 2.0 z_offset: 2.0
[safe_z_home] [safe_z_home]
home_xy_position: 125,150 home_xy_position: 125, 150
z_hop: 10 z_hop: 10
z_hop_speed: 5 z_hop_speed: 5
[bed_mesh] [bed_mesh]
mesh_min: 5,5 mesh_min: 5, 5
mesh_max: 225,225 mesh_max: 225, 225
[fan] [fan]
pin: PH5 pin: PH5
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PH3 pin: PH3
[mcu] [mcu]

View File

@ -158,15 +158,15 @@ z_offset: 0 # set this to your Live Z Offset, but negated (invert the sign)
speed: 6.0 speed: 6.0
[safe_z_home] [safe_z_home]
home_xy_position: 147.4,21.1 home_xy_position: 147.4, 21.1
z_hop: 4 z_hop: 4
[bed_mesh] [bed_mesh]
speed: 100 speed: 100
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 10,10 mesh_min: 10, 10
mesh_max: 141,167 mesh_max: 141, 167
probe_count: 4,4 probe_count: 4, 4
[filament_switch_sensor filament_sensor] [filament_switch_sensor filament_sensor]
switch_pin: ^PB4 switch_pin: ^PB4

View File

@ -63,7 +63,7 @@ max_temp: 300
[fan] [fan]
pin: PH5 pin: PH5
[heater_fan nozzle_cooling_fan] [heater_fan heatbreak_cooling_fan]
pin: PH4 pin: PH4
heater: extruder heater: extruder

View File

@ -124,7 +124,7 @@ gcode:
# Mesh Bed Leveling. # Mesh Bed Leveling.
[bed_mesh] [bed_mesh]
mesh_min: 5,18 mesh_min: 5, 18
mesh_max: 230,228 mesh_max: 230, 228
probe_count: 9,9 probe_count: 9, 9
algorithm: bicubic algorithm: bicubic

View File

@ -118,26 +118,26 @@ switch_pin: !PA15
pin: PB0 pin: PB0
[safe_z_home] [safe_z_home]
home_xy_position: 165,165 home_xy_position: 165, 165
speed: 50 speed: 50
z_hop: 10 z_hop: 10
z_hop_speed: 5 z_hop_speed: 5
[bed_screws] [bed_screws]
screw1: 5,5 screw1: 5, 5
screw2: 165,5 screw2: 165, 5
screw3: 325,5 screw3: 325, 5
screw4: 5,325 screw4: 5, 325
screw5: 165,325 screw5: 165, 325
screw6: 325,325 screw6: 325, 325
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
probe_count: 5,5 probe_count: 5, 5
horizontal_move_z: 5 horizontal_move_z: 5
algorithm: lagrange algorithm: lagrange
mesh_min : 20,20 mesh_min : 20, 20
mesh_max : 310,310 mesh_max : 310, 310
mesh_pps: 0 mesh_pps: 0
[probe] [probe]

View File

@ -91,11 +91,9 @@ pid_Kd: 898.279
[heater_fan hotend_fan] [heater_fan hotend_fan]
pin: PG14 pin: PG14
fan_speed: 0.5
[fan] [fan]
pin: PG13 pin: PG13
max_power: 0.5
[controller_fan drivers_fan] [controller_fan drivers_fan]
pin: PD6 pin: PD6
@ -110,26 +108,26 @@ switch_pin: PA15
pin: PB0 pin: PB0
[safe_z_home] [safe_z_home]
home_xy_position: 165,165 home_xy_position: 165, 165
speed: 50 speed: 50
z_hop: 10 z_hop: 10
z_hop_speed: 5 z_hop_speed: 5
[bed_screws] [bed_screws]
screw1: 5,5 screw1: 5, 5
screw2: 165,5 screw2: 165, 5
screw3: 325,5 screw3: 325, 5
screw4: 5,325 screw4: 5, 325
screw5: 165,325 screw5: 165, 325
screw6: 325,325 screw6: 325, 325
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
probe_count: 5,5 probe_count: 5, 5
horizontal_move_z: 5 horizontal_move_z: 5
algorithm: lagrange algorithm: lagrange
mesh_min : 20,20 mesh_min : 20, 20
mesh_max : 310,310 mesh_max : 310, 310
mesh_pps: 0 mesh_pps: 0
[probe] [probe]

View File

@ -1,18 +1,20 @@
# This file contains common pin mappings for the Two Trees Sapphire # This file contains common pin mappings for the Two Trees Sapphire
# Plus printer from 2020 (revision 2 with dual Z axis). # Plus V1 (SP-5) printer (Robin Nano 1.2, 2208 drivers for X,Y and A4988 for Zs,E).
# INSTRUCTIONS FOR COMPILING
# To use this config, the firmware should be compiled for the STM32F103. # To use this config, the firmware should be compiled for the STM32F103.
# When running "make menuconfig" you have to: # When running "make menuconfig", enable "extra low-level configuration setup",
# - enable "extra low-level configuration setup", # select the 28KiB bootloader, serial (on USART3 PB11/PB10) to use USB communication
# - select the 28KiB bootloader, # or serial (on USART1 PA10/PA9) to use direct UART connection with Raspberry trough wifi pins.
# - select serial (on USART3 PB11/PB10) communication # Set "GPIO pins to set at micro-controller startup" to "!PC6,!PD13" to turn off display at startup.
# - set "GPIO pins to set at micro-controller startup" to "!PC6,!PD13"
# Note that the "make flash" command does not work with the Sapphire # INSTRUCTIONS FOR FLASHING, THE SCRIPT IS COMPULSORY OR IT WON'T WORK!!!
# Pro. After running "make", run the following command: # Note that the "make flash" command does not work with the Robin Nano!
# After running "make", run the following command in one row FROM THE KLIPPER FOLDER:
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin # ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin
# Copy the file out/Robin_nano35.bin to an SD card and then restart the # Copy the file out/Robin_nano35.bin (if you can't find the file the script was not executed)
# printer with that SD card. # to an SD card and then restart the printer with that SD card.
# If you removed the LCD screen rename the file to "Robin_nano43.bin" for correct flashing.
# See docs/Config_Reference.md for a description of parameters. # See docs/Config_Reference.md for a description of parameters.
@ -54,12 +56,11 @@ dir_pin: PA1
enable_pin: !PA3 enable_pin: !PA3
microsteps: 16 microsteps: 16
rotation_distance: 8 rotation_distance: 8
endstop_pin: !PC4
[extruder] [extruder]
step_pin: PD6 step_pin: PD6
dir_pin: !PD3 dir_pin: !PD3
enable_pin: !PB3 enable_pin: PB3
microsteps: 16 microsteps: 16
gear_ratio: 50:17 gear_ratio: 50:17
rotation_distance: 23.52 rotation_distance: 23.52
@ -86,6 +87,9 @@ pid_Kp: 325.10
pid_Ki: 63.35 pid_Ki: 63.35
pid_Kd: 417.10 pid_Kd: 417.10
[heater_fan extruder]
pin: PB0
[fan] [fan]
pin: PB1 pin: PB1
@ -97,8 +101,14 @@ restart_method: command
kinematics: corexy kinematics: corexy
max_velocity: 250 max_velocity: 250
max_accel: 4500 max_accel: 4500
max_z_velocity: 25 max_z_velocity: 15
max_z_accel: 100 max_z_accel: 100
[bed_screws]
screw1: 35,35
screw2: 275,35
screw3: 275,275
screw4: 35,275
[static_digital_output reset_display] [static_digital_output reset_display]
pins: !PC6, !PD13 pins: !PC6, !PD13

View File

@ -0,0 +1,114 @@
# This file contains common pin mappings for the Two Trees Sapphire
# Plus V1.1 (SP-5) printer (Robin Nano 1.2, all 2225 drivers at 32 microsteps).
# INSTRUCTIONS FOR COMPILING
# To use this config, the firmware should be compiled for the STM32F103.
# When running "make menuconfig", enable "extra low-level configuration setup",
# select the 28KiB bootloader, serial (on USART3 PB11/PB10) to use USB communication
# or serial (on USART1 PA10/PA9) to use direct UART connection with Raspberry trough wifi pins.
# Set "GPIO pins to set at micro-controller startup" to "!PC6,!PD13" to turn off display at startup.
# INSTRUCTIONS FOR FLASHING, THE SCRIPT IS COMPULSORY OR IT WON'T WORK!!!
# Note that the "make flash" command does not work with the Robin Nano!
# After running "make", run the following command in one row FROM THE KLIPPER FOLDER:
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin
# Copy the file out/Robin_nano35.bin (if you can't find the file the script was not executed)
# to an SD card and then restart the printer with that SD card.
# If you removed the LCD screen rename the file to "Robin_nano43.bin" for correct flashing.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PE3
dir_pin: !PE2
enable_pin: !PE4
microsteps: 32
rotation_distance: 40
endstop_pin: !PA15
position_endstop: 0
position_max: 300
homing_speed: 50
[stepper_y]
step_pin: PE0
dir_pin: !PB9
enable_pin: !PE1
microsteps: 32
rotation_distance: 40
endstop_pin: !PA12
position_endstop: 300
position_max: 300
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: !PB4
enable_pin: !PB8
microsteps: 32
rotation_distance: 8
endstop_pin: !PA11
position_endstop: 0
position_max: 340
[stepper_z1]
step_pin: PA6
dir_pin: !PA1
enable_pin: !PA3
microsteps: 32
rotation_distance: 8
[extruder]
step_pin: PD6
dir_pin: !PD3
enable_pin: !PB3
microsteps: 32
gear_ratio: 50:17
rotation_distance: 23.52
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC3
sensor_type: EPCOS 100K B57560G104F # Stock
sensor_pin: PC1
min_temp: 0
max_temp: 250
control: pid
pid_Kp: 17.48
pid_Ki: 1.32
pid_Kd: 57.81
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F # Stock
sensor_pin: PC0
min_temp: 0
max_temp: 130
control: pid
pid_Kp: 325.10
pid_Ki: 63.35
pid_Kd: 417.10
[heater_fan extruder]
pin: PB0
[fan]
pin: PB1
[mcu]
serial: /dev/ttyUSB0
restart_method: command
[printer]
kinematics: corexy
max_velocity: 250
max_accel: 4500
max_z_velocity: 15
max_z_accel: 100
[bed_screws]
screw1: 35,35
screw2: 275,35
screw3: 275,275
screw4: 35,275
[static_digital_output reset_display]
pins: !PC6, !PD13

View File

@ -1,92 +0,0 @@
# This file contains common pin mappings for the Two Trees Sapphire
# Pro printer from 2020. To use this config, the firmware should be
# compiled for the STM32F103. When running "make menuconfig", enable
# "extra low-level configuration setup", select the 28KiB bootloader,
# serial (on USART3 PB11/PB10) communication, and set "GPIO pins to
# set at micro-controller startup" to "!PC6,!PD13".
# Note that the "make flash" command does not work with the Sapphire
# Pro. After running "make", run the following command:
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin
# Copy the file out/Robin_nano35.bin to an SD card and then restart the
# printer with that SD card.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PE3
dir_pin: !PE2
enable_pin: !PE4
microsteps: 16
rotation_distance: 32
endstop_pin: !PA15
position_endstop: 0
position_max: 230
homing_speed: 50
[stepper_y]
step_pin: PE0
dir_pin: !PB9
enable_pin: !PE1
microsteps: 16
rotation_distance: 32
endstop_pin: !PA12
position_endstop: 230
position_max: 230
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: PB4
enable_pin: !PB8
microsteps: 16
rotation_distance: 8
endstop_pin: !PA11
position_endstop: 0.5
position_max: 230
[extruder]
step_pin: PD6
dir_pin: !PD3
enable_pin: !PB3
microsteps: 16
rotation_distance: 6.720
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC3
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC1
control: pid
pid_Kp: 14.669
pid_Ki: 0.572
pid_Kd: 94.068
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 325.10
pid_Ki: 63.35
pid_Kd: 417.10
min_temp: 0
max_temp: 130
[fan]
pin: PB1
[mcu]
serial: /dev/ttyUSB0
restart_method: command
[printer]
kinematics: corexy
max_velocity: 250
max_accel: 4500
max_z_velocity: 25
max_z_accel: 100
[static_digital_output reset_display]
pins: !PC6, !PD13

View File

@ -0,0 +1,107 @@
# This file contains common pin mappings for the Two Trees Sapphire
# Pro (SP-3) printer (Robin Nano 1.2, 2208 drivers for X,Y and A4988 for Z,E).
# INSTRUCTIONS FOR COMPILING
# To use this config, the firmware should be compiled for the STM32F103.
# When running "make menuconfig", enable "extra low-level configuration setup",
# select the 28KiB bootloader, serial (on USART3 PB11/PB10) to use USB communication
# or serial (on USART1 PA10/PA9) to use direct UART connection with Raspberry trough wifi pins.
# Set "GPIO pins to set at micro-controller startup" to "!PC6,!PD13" to turn off display at startup.
# INSTRUCTIONS FOR FLASHING, THE SCRIPT IS COMPULSORY OR IT WON'T WORK!!!
# Note that the "make flash" command does not work with the Robin Nano!
# After running "make", run the following command in one row FROM THE KLIPPER FOLDER:
# ./scripts/update_mks_robin.py out/klipper.bin out/Robin_nano35.bin
# Copy the file out/Robin_nano35.bin (if you can't find the file the script was not executed)
# to an SD card and then restart the printer with that SD card.
# If you removed the LCD screen rename the file to "Robin_nano43.bin" for correct flashing.
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PE3
dir_pin: !PE2
enable_pin: !PE4
microsteps: 16
rotation_distance: 40
endstop_pin: !PA15
position_endstop: 0
position_max: 230
homing_speed: 50
[stepper_y]
step_pin: PE0
dir_pin: !PB9
enable_pin: !PE1
microsteps: 16
rotation_distance: 40
endstop_pin: !PA12
position_endstop: 230
position_max: 230
homing_speed: 50
[stepper_z]
step_pin: PB5
dir_pin: PB4
enable_pin: !PB8
microsteps: 16
rotation_distance: 2
endstop_pin: !PA11
position_endstop: 0.5
position_max: 230
[extruder]
step_pin: PD6
dir_pin: !PD3
enable_pin: !PB3
microsteps: 16
gear_ratio: 50:17
rotation_distance: 23.52
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PC3
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC1
control: pid
pid_Kp: 14.669
pid_Ki: 0.572
pid_Kd: 94.068
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PA0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC0
control: pid
pid_Kp: 325.10
pid_Ki: 63.35
pid_Kd: 417.10
min_temp: 0
max_temp: 130
[heater_fan extruder]
pin: PB0
[fan]
pin: PB1
[mcu]
serial: /dev/ttyUSB0
restart_method: command
[printer]
kinematics: corexy
max_velocity: 250
max_accel: 4500
max_z_velocity: 10
max_z_accel: 80
[bed_screws]
screw1: 15,15
screw2: 210,15
screw3: 210,210
screw4: 15,210
[static_digital_output reset_display]
pins: !PC6, !PD13

View File

@ -92,7 +92,7 @@ z_offset: -15
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_radius:65 mesh_radius:65
mesh_origin: 0,0 mesh_origin: 0, 0
round_probe_count: 7 round_probe_count: 7
algorithm: bicubic algorithm: bicubic

View File

@ -91,18 +91,18 @@ square_corner_velocity: 15.0
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
mesh_min: 27,3 mesh_min: 27, 3
mesh_max: 270,290 mesh_max: 270, 290
probe_count: 5,3 probe_count: 5, 3
horizontal_move_z: 10 horizontal_move_z: 10
[bed_screws] [bed_screws]
screw1: 5,5 screw1: 5, 5
screw1_name: front left screw screw1_name: front left screw
screw2: 295,0 screw2: 295, 0
screw2_name: front right screw screw2_name: front right screw
screw3: 295,290 screw3: 295, 290
screw3_name: back right screw screw3_name: back right screw
screw4: 0,290 screw4: 0, 290
screw4_name: back left screw screw4_name: back left screw
probe_height: 0 probe_height: 0

View File

@ -80,6 +80,6 @@ max_z_velocity: 5
max_z_accel: 100 max_z_accel: 100
[bed_mesh] [bed_mesh]
mesh_min: 20,20 mesh_min: 20, 20
mesh_max: 190,130 mesh_max: 190, 130
probe_count: 4,4 probe_count: 4, 4

View File

@ -168,3 +168,4 @@ sclk_pin: PD3
sid_pin: PC0 sid_pin: PC0
encoder_pins: ^PA2, ^PA1 encoder_pins: ^PA2, ^PA1
click_pin: ^!PA3 click_pin: ^!PA3
kill_pin: ^!PD2

View File

@ -0,0 +1,66 @@
# This file contains common pin mappings for the BIGTREETECH EBBCan
# Canbus board. To use this config, the firmware should be compiled for the
# STM32F072 with "8 MHz crystal" and "USB (on PA11/PA12)" or "CAN bus (on PB8/PB9)".
# The "EBB Can" micro-controller will be used to control the components on the nozzle.
# See docs/Config_Reference.md for a description of parameters.
[mcu EBBCan]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
#canbus_uuid: 0e0d81e4210c
[adxl345]
cs_pin: EBBCan: PB12
spi_bus: spi2
axes_map: x,y,z
[extruder]
step_pin: EBBCan: PA9
dir_pin: !EBBCan: PA8
enable_pin: !EBBCan: PA10
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: EBBCan: PB1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: EBBCan: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
#sensor_type:MAX31865
#sensor_pin: EBBCan: PA15
#spi_bus: spi1a
#rtd_nominal_r: 100
#rtd_reference_r: 430
#rtd_num_of_wires: 2
[tmc2209 extruder]
uart_pin: EBBCan: PA13
run_current: 0.650
stealthchop_threshold: 999999
[fan]
pin: EBBCan: PA1
[heater_fan hotend_fan]
pin: EBBCan: PA2
heater: extruder
heater_temp: 50.0
#[neopixel hotend_rgb]
#pin: EBBCan:PA3
#[bltouch]
#sensor_pin: ^EBBCan:PA5
#control_pin: EBBCan:PA4
#[filament_switch_sensor switch_sensor]
#switch_pin: EBBCan:PB6
#[filament_motion_sensor motion_sensor]
#switch_pin: ^EBBCan:PB7

View File

@ -0,0 +1,68 @@
# This file contains common pin mappings for the BIGTREETECH EBBCan
# Canbus board. To use this config, the firmware should be compiled for the
# STM32G0B1 with "8 MHz crystal" and "USB (on PA11/PA12)" or "CAN bus (on PB0/PB1)".
# The "EBB Can" micro-controller will be used to control the components on the nozzle.
# See docs/Config_Reference.md for a description of parameters.
[mcu EBBCan]
serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00
#canbus_uuid: 0e0d81e4210c
[adxl345]
cs_pin: EBBCan: PB12
spi_software_sclk_pin: EBBCan: PB10
spi_software_mosi_pin: EBBCan: PB11
spi_software_miso_pin: EBBCan: PB2
axes_map: x,y,z
[extruder]
step_pin: EBBCan: PD0
dir_pin: !EBBCan: PD1
enable_pin: !EBBCan: PD2
microsteps: 16
rotation_distance: 33.500
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: EBBCan: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: EBBCan: PA3
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 250
# sensor_type:MAX31865
# sensor_pin: EBBCan: PA4
# spi_bus: spi1
# rtd_nominal_r: 100
# rtd_reference_r: 430
# rtd_num_of_wires: 2
[tmc2209 extruder]
uart_pin: EBBCan: PA15
run_current: 0.650
stealthchop_threshold: 999999
[fan]
pin: EBBCan: PA0
[heater_fan hotend_fan]
pin: EBBCan: PA1
heater: extruder
heater_temp: 50.0
#[neopixel hotend_rgb]
#pin: EBBCan:PD3
#[bltouch]
#sensor_pin: ^EBBCan:PB8
#control_pin: EBBCan:PB9
#[filament_switch_sensor switch_sensor]
#switch_pin: EBBCan:PB4
#[filament_motion_sensor motion_sensor]
#switch_pin: ^EBBCan:PB3

View File

@ -0,0 +1,58 @@
# This file contains common pin mappings for the Huvud V0.61 by Bondus.
# https://github.com/bondus/Klipperhuvudboard
# To use this config, copy the contents into your main config file.
# The huvud is not capable of running a printer on it's own. It
# needs to be paired with another board that will control other
# aspects of the printer.
# The firmware should be compiled for the STM32F103 with a "2KiB
# bootloader" and a "8MHz crystal" clock reference.
# Select CAN bus (on PB8/PB9) or USB under communication interface.
# Flash by running make flash FLASH_DEVICE=1209:beba
# See docs/Config_Reference.md for a description of parameters.
[mcu huvud]
canbus_uuid: ac20f0bbda05
# Identify your canbus_uuid by running:
# ~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
[extruder]
step_pin: huvud: PB3
dir_pin: huvud: PB4
enable_pin: !huvud: PB5
rotation_distance: 22.52453125
nozzle_diameter: 0.400
filament_diameter: 1.75
heater_pin: huvud: PA6
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: huvud: PA0
pullup_resistor: 2200
min_temp: 0
max_temp: 300
control: pid
pid_kp: 26.213
pid_ki: 1.304
pid_kd: 131.721
[tmc2209 extruder]
uart_pin: huvud: PA10
tx_pin: huvud: PA9
run_current: 0.35
[probe]
pin: huvud: PB12
z_offset: 0
[fan]
pin: huvud: PA8
[heater_fan extruder_fan]
pin: huvud: PA7
[adxl345]
cs_pin: PB1
[led huvud_led]
blue_pin: huvud: PC13

View File

@ -95,6 +95,21 @@ click_pin: ^!EXP1_2
pin: EXP1_1 pin: EXP1_1
########################################################################################
# Anet 128x64 LCD with alternative wiring (ANET_FULL_GRAPHICS_LCD_ALT_WIRING in Marlin)
########################################################################################
[display]
lcd_type: st7920
cs_pin: EXP1_8
sclk_pin: EXP1_4
sid_pin: EXP1_6
encoder_pins: ^!EXP1_7, ^!EXP1_5
click_pin: ^!EXP1_3
[output_pin beeper]
pin: EXP1_1
###################################################################### ######################################################################
# Fysetc Mini 12864Panel v2.1 (with neopixel backlight leds) # Fysetc Mini 12864Panel v2.1 (with neopixel backlight leds)
###################################################################### ######################################################################

View File

@ -175,6 +175,29 @@ gcode:
sensor.temperature, sensor.temperature,
sensor.humidity))} sensor.humidity))}
######################################################################
# Override M117 command with rawparams
######################################################################
# The macro below will override the default M117 command to echo the message.
#
# It uses the rawparams pseudo-variable that contains the full unparsed
# parameters that was passed to the M117 command.
#
# As this can include comments, we are trimming the text when a `;` or `#` is
# found, and escaping any existing `"`
[gcode_macro M117]
rename_existing: M117.1
gcode:
{% if rawparams %}
{% set escaped_msg = rawparams.split(';', 1)[0].split('\x23', 1)[0]|replace('"', '\\"') %}
SET_DISPLAY_TEXT MSG="{escaped_msg}"
RESPOND TYPE=command MSG="{escaped_msg}"
{% else %}
SET_DISPLAY_TEXT
{% endif %}
# SDCard 'looping' (aka Marlin M808 commands) support # SDCard 'looping' (aka Marlin M808 commands) support
# #
# Support SDCard looping # Support SDCard looping
@ -186,3 +209,55 @@ gcode:
{% if params.K is not defined and params.L is defined %}SDCARD_LOOP_BEGIN COUNT={params.L|int}{% endif %} {% if params.K is not defined and params.L is defined %}SDCARD_LOOP_BEGIN COUNT={params.L|int}{% endif %}
{% if params.K is not defined and params.L is not defined %}SDCARD_LOOP_END{% endif %} {% if params.K is not defined and params.L is not defined %}SDCARD_LOOP_END{% endif %}
{% if params.K is defined and params.L is not defined %}SDCARD_LOOP_DESIST{% endif %} {% if params.K is defined and params.L is not defined %}SDCARD_LOOP_DESIST{% endif %}
# Cancel object (aka Marlin/RRF M486 commands) support
#
# Enable object exclusion
[exclude_object]
[gcode_macro M486]
gcode:
# Parameters known to M486 are as follows:
# [C<flag>] Cancel the current object
# [P<index>] Cancel the object with the given index
# [S<index>] Set the index of the current object.
# If the object with the given index has been canceled, this will cause
# the firmware to skip to the next object. The value -1 is used to
# indicate something that isnt an object and shouldnt be skipped.
# [T<count>] Reset the state and set the number of objects
# [U<index>] Un-cancel the object with the given index. This command will be
# ignored if the object has already been skipped
{% if 'exclude_object' not in printer %}
{action_raise_error("[exclude_object] is not enabled")}
{% endif %}
{% if 'T' in params %}
EXCLUDE_OBJECT RESET=1
{% for i in range(params.T | int) %}
EXCLUDE_OBJECT_DEFINE NAME={i}
{% endfor %}
{% endif %}
{% if 'C' in params %}
EXCLUDE_OBJECT CURRENT=1
{% endif %}
{% if 'P' in params %}
EXCLUDE_OBJECT NAME={params.P}
{% endif %}
{% if 'S' in params %}
{% if params.S == '-1' %}
{% if printer.exclude_object.current_object %}
EXCLUDE_OBJECT_END NAME={printer.exclude_object.current_object}
{% endif %}
{% else %}
EXCLUDE_OBJECT_START NAME={params.S}
{% endif %}
{% endif %}
{% if 'U' in params %}
EXCLUDE_OBJECT RESET=1 NAME={params.U}
{% endif %}

View File

@ -21,7 +21,7 @@ position_min: -2 # The Z carriage may need to travel below the Z=0
# The safe_z_home section modifies the default G28 behavior # The safe_z_home section modifies the default G28 behavior
[safe_z_home] [safe_z_home]
home_xy_position: 100,100 home_xy_position: 100, 100
speed: 50 speed: 50
z_hop: 15 z_hop: 15
z_hop_speed: 5 z_hop_speed: 5
@ -29,18 +29,18 @@ z_hop_speed: 5
# Example bed_tilt config section # Example bed_tilt config section
[bed_tilt] [bed_tilt]
points: points:
100,100 100, 100
10,10 10, 10
10,100 10, 100
10,190 10, 190
100,10 100, 10
100,190 100, 190
190,10 190, 10
190,100 190, 100
190,190 190, 190
# Example bed_mesh config section # Example bed_mesh config section
[bed_mesh] [bed_mesh]
mesh_min: 20,20 mesh_min: 20, 20
mesh_max: 200,200 mesh_max: 200, 200
probe_count: 4,4 probe_count: 4, 4

View File

@ -16,6 +16,10 @@ This causes the host software to create a Unix Domain Socket. A client
can then open a connection on that socket and send commands to can then open a connection on that socket and send commands to
Klipper. Klipper.
See the [Moonraker](https://github.com/Arksine/moonraker) project for
a popular tool that can forward HTTP requests to Klipper's API Server
Unix Domain Socket.
## Request format ## Request format
Messages sent and received on the socket are JSON encoded strings Messages sent and received on the socket are JSON encoded strings
@ -341,6 +345,25 @@ and might later produce asynchronous messages such as:
The "header" field in the initial query response is used to describe The "header" field in the initial query response is used to describe
the fields found in later "data" responses. the fields found in later "data" responses.
### angle/dump_angle
This endpoint is used to subscribe to
[angle sensor data](Config_Reference.md#angle). Obtaining these
low-level motion updates may be useful for diagnostic and debugging
purposes. Using this endpoint may increase Klipper's system load.
A request may look like:
`{"id": 123, "method":"angle/dump_angle",
"params": {"sensor": "my_angle_sensor", "response_template": {}}}`
and might return:
`{"id": 123,"result":{"header":["time","angle"]}}`
and might later produce asynchronous messages such as:
`{"params":{"position_offset":3.151562,"errors":0,
"data":[[1290.951905,-5063],[1290.952321,-5065]]}}`
The "header" field in the initial query response is used to describe
the fields found in later "data" responses.
### pause_resume/cancel ### pause_resume/cancel
This endpoint is similar to running the "PRINT_CANCEL" G-Code command. This endpoint is similar to running the "PRINT_CANCEL" G-Code command.

View File

@ -28,7 +28,7 @@ move to the center of the bed, and home the z axis. For example:
``` ```
[safe_z_home] [safe_z_home]
home_xy_position: 100,100 # Change coordinates to the center of your print bed home_xy_position: 100, 100 # Change coordinates to the center of your print bed
speed: 50 speed: 50
z_hop: 10 # Move up 10mm z_hop: 10 # Move up 10mm
z_hop_speed: 5 z_hop_speed: 5
@ -64,9 +64,10 @@ run `BLTOUCH_DEBUG COMMAND=touch_mode`, run `QUERY_PROBE`, and verify
that command reports "probe: open". Then while gently pushing the pin that command reports "probe: open". Then while gently pushing the pin
up slightly with the nail of your finger run `QUERY_PROBE` again. up slightly with the nail of your finger run `QUERY_PROBE` again.
Verify the command reports "probe: TRIGGERED". If either query does Verify the command reports "probe: TRIGGERED". If either query does
not report the correct message then check your wiring and not report the correct message then it usually indicates an incorrect
configuration again. At the completion of this test run `BLTOUCH_DEBUG wiring or configuration (though some [clones](#bl-touch-clones) may
COMMAND=pin_up` and verify that the pin moves up. require special handling). At the completion of this test run
`BLTOUCH_DEBUG COMMAND=pin_up` and verify that the pin moves up.
After completing the BL-Touch control pin and sensor pin tests, it is After completing the BL-Touch control pin and sensor pin tests, it is
now time to test probing, but with a twist. Instead of letting the now time to test probing, but with a twist. Instead of letting the
@ -106,7 +107,8 @@ commands to achieve this.
## BL-Touch "clones" ## BL-Touch "clones"
Many BL-Touch "clone" devices work correctly with Klipper using the Many BL-Touch "clone" devices work correctly with Klipper using the
default configuration. However, some "clone" devices may require default configuration. However, some "clone" devices may not support
the `QUERY_PROBE` command and some "clone" devices may require
configuration of `pin_up_reports_not_triggered` or configuration of `pin_up_reports_not_triggered` or
`pin_up_touch_mode_reports_triggered`. `pin_up_touch_mode_reports_triggered`.
@ -116,6 +118,16 @@ these directions. Do not configure either of these to False on a
genuine BL-Touch. Incorrectly setting these to False can increase genuine BL-Touch. Incorrectly setting these to False can increase
probing time and can increase the risk of damaging the printer. probing time and can increase the risk of damaging the printer.
Some "clone" devices do not support `touch_mode` and as a result the
`QUERY_PROBE` command does not work. Despite this, it may still be
possible to perform probing and homing with these devices. On these
devices the `QUERY_PROBE` command during the
[initial tests](#initial-tests) will not succeed, however the
subsequent `G28` (or `PROBE`) test does succeed. It may be possible to
use these "clone" devices with Klipper if one does not utilize the
`QUERY_PROBE` command and one does not enable the
`probe_with_touch_mode` feature.
Some "clone" devices are unable to perform Klipper's internal sensor Some "clone" devices are unable to perform Klipper's internal sensor
verification test. On these devices, attempts to home or probe can verification test. On these devices, attempts to home or probe can
result in Klipper reporting a "BLTouch failed to verify sensor state" result in Klipper reporting a "BLTouch failed to verify sensor state"

View File

@ -63,7 +63,7 @@ test".
In order to perform the paper test, cut a small rectangular piece of In order to perform the paper test, cut a small rectangular piece of
paper using a pair of scissors (eg, 5x3 cm). The paper generally has a paper using a pair of scissors (eg, 5x3 cm). The paper generally has a
width of around 100 microns (0.100mm). (The exact width of the paper thickness of around 100 microns (0.100mm). (The exact thickness of the paper
isn't crucial.) isn't crucial.)
The first step of the paper test is to inspect the printer's nozzle The first step of the paper test is to inspect the printer's nozzle
@ -74,7 +74,7 @@ or bed.
If one always prints on a particular tape or printing surface then one If one always prints on a particular tape or printing surface then one
may perform the paper test with that tape/surface in place. However, may perform the paper test with that tape/surface in place. However,
note that tape itself has a width and different tapes (or any other note that tape itself has a thickness and different tapes (or any other
printing surface) will impact Z measurements. Be sure to rerun the printing surface) will impact Z measurements. Be sure to rerun the
paper test to measure each type of surface that is in use. paper test to measure each type of surface that is in use.
@ -89,11 +89,11 @@ temperature!**
When the nozzle is heated, its position (relative to the bed) changes When the nozzle is heated, its position (relative to the bed) changes
due to thermal expansion. This thermal expansion is typically around a due to thermal expansion. This thermal expansion is typically around a
100 microns, which is about the same width as a typical piece of 100 microns, which is about the same thickness as a typical piece of
printer paper. The exact amount of thermal expansion isn't crucial, printer paper. The exact amount of thermal expansion isn't crucial,
just as the exact width of the paper isn't crucial. Start with the just as the exact thickness of the paper isn't crucial. Start with the
assumption that the two are equal (see below for a method of assumption that the two are equal (see below for a method of
determining the difference between the two widths). determining the difference between the two distances).
It may seem odd to calibrate the distance at room temperature when the It may seem odd to calibrate the distance at room temperature when the
goal is to have a consistent distance when heated. However, if one goal is to have a consistent distance when heated. However, if one
@ -180,7 +180,7 @@ command to exit the calibration tool.
After successfully performing bed leveling, one may go on to calculate After successfully performing bed leveling, one may go on to calculate
a more precise value for the combined impact of "thermal expansion", a more precise value for the combined impact of "thermal expansion",
"width of the paper", and "amount of friction felt during the paper "thickness of the paper", and "amount of friction felt during the paper
test". test".
This type of calculation is generally not needed as most users find This type of calculation is generally not needed as most users find

View File

@ -24,9 +24,9 @@ bed and a probe with an x-offset of 24 mm and y-offset of 5 mm.
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 35,6 mesh_min: 35, 6
mesh_max: 240, 198 mesh_max: 240, 198
probe_count: 5,3 probe_count: 5, 3
``` ```
- `speed: 120`\ - `speed: 120`\
@ -37,21 +37,21 @@ probe_count: 5,3
_Default Value: 5_\ _Default Value: 5_\
The Z coordinate the probe rises to prior to traveling between points. The Z coordinate the probe rises to prior to traveling between points.
- `mesh_min: 35,6`\ - `mesh_min: 35, 6`\
_Required_\ _Required_\
The first probed coordinate, nearest to the origin. This coordinate The first probed coordinate, nearest to the origin. This coordinate
is relative to the probe's location. is relative to the probe's location.
- `mesh_max: 240,198`\ - `mesh_max: 240, 198`\
_Required_\ _Required_\
The probed coordinate farthest farthest from the origin. This is not The probed coordinate farthest farthest from the origin. This is not
necessarily the last point probed, as the probing process occurs in a necessarily the last point probed, as the probing process occurs in a
zig-zag fashion. As with `mesh_min`, this coordiante is relative to zig-zag fashion. As with `mesh_min`, this coordiante is relative to
the probe's location. the probe's location.
- `probe_count: 5,3`\ - `probe_count: 5, 3`\
_Default Value: 3,3_\ _Default Value: 3, 3_\
The number of points to probe on each axis, specified as x,y integer The number of points to probe on each axis, specified as X, Y integer
values. In this example 5 points will be probed along the X axis, with values. In this example 5 points will be probed along the X axis, with
3 points along the Y axis, for a total of 15 probed points. Note that 3 points along the Y axis, for a total of 15 probed points. Note that
if you wanted a square grid, for example 3x3, this could be specified if you wanted a square grid, for example 3x3, this could be specified
@ -76,7 +76,7 @@ and 5 mm on Y.
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_radius: 75 mesh_radius: 75
mesh_origin: 0,0 mesh_origin: 0, 0
round_probe_count: 5 round_probe_count: 5
``` ```
@ -86,10 +86,10 @@ round_probe_count: 5
that the probe's offsets limit the size of the mesh radius. In this example, that the probe's offsets limit the size of the mesh radius. In this example,
a radius larger than 76 would move the tool beyond the range of the printer. a radius larger than 76 would move the tool beyond the range of the printer.
- `mesh_origin: 0,0`\ - `mesh_origin: 0, 0`\
_Default Value: 0,0_\ _Default Value: 0, 0_\
The center point of the mesh. This coordinate is relative to the probe's The center point of the mesh. This coordinate is relative to the probe's
location. While the default is 0,0, it may be useful to adjust the origin location. While the default is 0, 0, it may be useful to adjust the origin
in an effort to probe a larger portion of the bed. See the illustration in an effort to probe a larger portion of the bed. See the illustration
below. below.
@ -125,20 +125,20 @@ lagrange and bicubic interpolation to accomplish this.
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 35,6 mesh_min: 35, 6
mesh_max: 240, 198 mesh_max: 240, 198
probe_count: 5,3 probe_count: 5, 3
mesh_pps: 2,3 mesh_pps: 2, 3
algorithm: bicubic algorithm: bicubic
bicubic_tension: 0.2 bicubic_tension: 0.2
``` ```
- `mesh_pps: 2,3`\ - `mesh_pps: 2, 3`\
_Default Value: 2,2_\ _Default Value: 2, 2_\
The `mesh_pps` option is shorthand for Mesh Points Per Segment. This The `mesh_pps` option is shorthand for Mesh Points Per Segment. This
option specifies how many points to interpolate for each segment along option specifies how many points to interpolate for each segment along
the x and y axes. Consider a 'segment' to be the space between each the X and Y axes. Consider a 'segment' to be the space between each
probed point. Like `probe_count`, `mesh_pps` is specified as an x,y probed point. Like `probe_count`, `mesh_pps` is specified as an X, Y
integer pair, and also may be specified a single integer that is applied integer pair, and also may be specified a single integer that is applied
to both axes. In this example there are 4 segments along the X axis to both axes. In this example there are 4 segments along the X axis
and 2 segments along the Y axis. This evaluates to 8 interpolated and 2 segments along the Y axis. This evaluates to 8 interpolated
@ -179,9 +179,9 @@ control the splitting behavior.
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 35,6 mesh_min: 35, 6
mesh_max: 240, 198 mesh_max: 240, 198
probe_count: 5,3 probe_count: 5, 3
move_check_distance: 5 move_check_distance: 5
split_delta_z: .025 split_delta_z: .025
``` ```
@ -225,9 +225,9 @@ As such, fade is disabled by default.
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 35,6 mesh_min: 35, 6
mesh_max: 240, 198 mesh_max: 240, 198
probe_count: 5,3 probe_count: 5, 3
fade_start: 1 fade_start: 1
fade_end: 10 fade_end: 10
fade_target: 0 fade_target: 0
@ -273,9 +273,9 @@ These printers can benefit from configuring the relative reference index.
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 35,6 mesh_min: 35, 6
mesh_max: 240, 198 mesh_max: 240, 198
probe_count: 5,3 probe_count: 5, 3
relative_reference_index: 7 relative_reference_index: 7
``` ```
@ -314,9 +314,9 @@ will be averaged and inserted in the mesh as the Z value at the generated
[bed_mesh] [bed_mesh]
speed: 120 speed: 120
horizontal_move_z: 5 horizontal_move_z: 5
mesh_min: 35,6 mesh_min: 35, 6
mesh_max: 240, 198 mesh_max: 240, 198
probe_count: 5,3 probe_count: 5, 3
faulty_region_1_min: 130.0, 0.0 faulty_region_1_min: 130.0, 0.0
faulty_region_1_max: 145.0, 40.0 faulty_region_1_max: 145.0, 40.0
faulty_region_2_min: 225.0, 0.0 faulty_region_2_min: 225.0, 0.0

View File

@ -248,6 +248,25 @@ results were obtained by running an STM32F407 binary on an STM32F446
| 1 stepper | 46 | | 1 stepper | 46 |
| 3 stepper | 205 | | 3 stepper | 205 |
### STM32G0B1 step rate benchmark
The following configuration sequence is used on the STM32G0B1:
```
allocate_oids count=3
config_stepper oid=0 step_pin=PB13 dir_pin=PB12 invert_step=-1 step_pulse_ticks=0
config_stepper oid=1 step_pin=PB10 dir_pin=PB2 invert_step=-1 step_pulse_ticks=0
config_stepper oid=2 step_pin=PB0 dir_pin=PC5 invert_step=-1 step_pulse_ticks=0
finalize_config crc=0
```
The test was last run on commit `247cd753` with gcc version
`arm-none-eabi-gcc (Fedora 10.2.0-4.fc34) 10.2.0`.
| stm32g0b1 | ticks |
| ---------------- | ----- |
| 1 stepper | 58 |
| 3 stepper | 243 |
### LPC176x step rate benchmark ### LPC176x step rate benchmark
The following configuration sequence is used on the LPC176x: The following configuration sequence is used on the LPC176x:

View File

@ -254,10 +254,11 @@ bossac -U -p /dev/ttyACM0 --offset=0x4000 -w out/klipper.bin -v -b -R
## STM32F103 micro-controllers (Blue Pill devices) ## STM32F103 micro-controllers (Blue Pill devices)
The STM32F103 devices have a ROM that can flash a bootloader or The STM32F103 devices have a ROM that can flash a bootloader or
application via 3.3V serial. To access this ROM, one should connect application via 3.3V serial. Typically one would wire the PA10 (MCU
the "boot 0" pin to high and "boot 1" pin to low, and then reset the Rx) and PA9 (MCU Tx) pins to a 3.3V UART adapter. To access the ROM,
device. The "stm32flash" package can then be used to flash the device one should connect the "boot 0" pin to high and "boot 1" pin to low,
using something like: and then reset the device. The "stm32flash" package can then be used
to flash the device using something like:
``` ```
stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0 stm32flash -w out/klipper.bin -v -g 0 /dev/ttyAMA0
``` ```
@ -385,6 +386,66 @@ not available, so it may be done by setting pin PA2 low if you flashed
the SKR Mini E3's "PIN" document. There is a ground pin next to PA2 the SKR Mini E3's "PIN" document. There is a ground pin next to PA2
which you can use to pull PA2 low. which you can use to pull PA2 low.
### STM32F103/STM32F072 with MSC bootloader
The [MSC bootloader](https://github.com/Telekatz/MSC-stm32f103-bootloader) is a driverless bootloader capable of flashing over USB.
It is possible to flash the bootloader via 3.3v serial using stm32flash as noted
in the stm32duino section above, substituting the file name for the desired
MSC bootloader binary (ie: MSCboot-Bluepill.bin for the blue pill).
For STM32F072 boards it is also possible to flash the bootloader over USB (via DFU)
with something like:
```
dfu-util -d 0483:df11 -a 0 -R -D MSCboot-STM32F072.bin -s0x08000000:leave
```
This bootloader uses 8KiB or 16KiB of flash space, see description of the bootloader
(the application must be compiled with with the corresponding starting address).
The bootloader can be activated by pressing the reset button of the board twice.
As soon as the bootloader is activated, the board appears as a USB flash drive
onto which the klipper.bin file can be copied.
### STM32F103/STM32F0x2 with CanBoot bootloader
The [CanBoot](https://github.com/Arksine/CanBoot) bootloader provides an option
for uploading Klipper firmware over the CANBUS. The bootloader itself is
derived from Klipper's source code. Currently CanBoot supports the STM32F103,
STM32F042, and STM32F072 models.
It is recommended to use a ST-Link Programmer to flash CanBoot, however it
should be possible to flash using `stm32flash` on STM32F103 devices, and
`dfu-util` on STM32F042/STM32F072 devices. See the previous sections in this
document for instructions on these flashing methods, substituting `canboot.bin`
for the file name where appropriate. The CanBoot repo linked above provides
instructions for building the bootloader.
The first time CanBoot has been flashed it should detect that no application
is present and enter the bootloader. If this doesn't occur it is possible to
enter the bootloader by pressing the reset button twice in succession.
The `flash_can.py` utility supplied in the `lib/canboot` folder may be used to
upload Klipper firmware. The device UUID is necessary to flash. If you do not
have a UUID it is possible to query nodes currently running the bootloader:
```
python3 flash_can.py -q
```
This will return UUIDs for all connected nodes not currently assigned a UUID.
This should include all nodes currently in the bootloader.
Once you have a UUID, you may upload firmware with following command:
```
python3 flash_can.py -i can0 -f ~/klipper/out/klipper.bin -u aabbccddeeff
```
Where `aabbccddeeff` is replaced by your UUID. Note that the `-i` and `-f`
options may be omitted, they default to `can0` and `~/klipper/out/klipper.bin`
respectively.
When building Klipper for use with CanBoot, select the 8 KiB Bootloader option.
## STM32F4 micro-controllers (SKR Pro 1.1) ## STM32F4 micro-controllers (SKR Pro 1.1)
STM32F4 microcontrollers come equipped with a built-in system bootloader STM32F4 microcontrollers come equipped with a built-in system bootloader

View File

@ -4,11 +4,11 @@ This document describes Klipper's CAN bus support.
## Device Hardware ## Device Hardware
Klipper currently only supports CAN on stm32 chips. In addition, the Klipper currently supports CAN on stm32 and rp2040 chips. In addition,
micro-controller chip must support CAN and it must be on a board that the micro-controller chip must be on a board that has a CAN
has a CAN transceiver. transceiver.
To compile for CAN, run "make menuconfig" and select "CAN bus" as the To compile for CAN, run `make menuconfig` and select "CAN bus" as the
communication interface. Finally, compile the micro-controller code communication interface. Finally, compile the micro-controller code
and flash it to the target board. and flash it to the target board.
@ -73,7 +73,7 @@ powered and wired correctly, and then run:
If uninitialized CAN devices are detected the above command will If uninitialized CAN devices are detected the above command will
report lines like the following: report lines like the following:
``` ```
Found canbus_uuid=11aa22bb33cc Found canbus_uuid=11aa22bb33cc, Application: Klipper
``` ```
Each device will have a unique identifier. In the above example, Each device will have a unique identifier. In the above example,
@ -91,3 +91,40 @@ the CAN bus to communicate with the device - for example:
[mcu my_can_mcu] [mcu my_can_mcu]
canbus_uuid: 11aa22bb33cc canbus_uuid: 11aa22bb33cc
``` ```
## USB to CAN bus bridge mode
Some micro-controllers support selecting "USB to CAN bus bridge" mode
during "make menuconfig". This mode may allow one to use a
micro-controller as both a "USB to CAN bus adapter" and as a Klipper
node.
When Klipper uses this mode the micro-controller appears as a "USB CAN
bus adapter" under Linux. The "Klipper bridge mcu" itself will appear
as if was on this CAN bus - it can be identified via `canbus_query.py`
and configured like other CAN bus Klipper nodes. It will appear
alongside other devices that are actually on the CAN bus.
Some important notes when using this mode:
* The "bridge mcu" is not actually on the CAN bus. Messages to and
from it do not consume bandwidth on the CAN bus. The mcu can not be
seen by other adapters that may be on the CAN bus.
* It is necessary to configure the `can0` (or similar) interface in
Linux in order to communicate with the bus. However, Linux CAN bus
speed and CAN bus bit-timing options are ignored by Klipper.
Currently, the CAN bus frequency is specified during "make
menuconfig" and the bus speed specified in Linux is ignored.
* Whenever the "bridge mcu" is reset, Linux will disable the
corresponding `can0` interface. To ensure proper handling of
FIRMWARE_RESTART and RESTART commands, it is recommended to replace
`auto` with `allow-hotplug` in the `/etc/network/interfaces.d/can0`
file. For example:
```
allow-hotplug can0
iface can0 can static
bitrate 500000
up ifconfig $IFACE txqueuelen 128
```

View File

@ -38,23 +38,23 @@ with a RESP_NEED_NODEID response message.
The CMD_QUERY_UNASSIGNED message format is: The CMD_QUERY_UNASSIGNED message format is:
`<1-byte message_id = 0x00>` `<1-byte message_id = 0x00>`
### CMD_SET_NODEID message ### CMD_SET_KLIPPER_NODEID message
This command assigns a `canbus_nodeid` to the micro-controller with a This command assigns a `canbus_nodeid` to the micro-controller with a
given `canbus_uuid`. given `canbus_uuid`.
The CMD_SET_NODEID message format is: The CMD_SET_KLIPPER_NODEID message format is:
`<1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>` `<1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>`
### RESP_NEED_NODEID message ### RESP_NEED_NODEID message
The RESP_NEED_NODEID message format is: The RESP_NEED_NODEID message format is:
`<1-byte message_id = 0x20><6-byte canbus_uuid>` `<1-byte message_id = 0x20><6-byte canbus_uuid><1-byte set_klipper_nodeid = 0x01>`
## Data Packets ## Data Packets
A micro-controller that has been assigned a nodeid via the A micro-controller that has been assigned a nodeid via the
CMD_SET_NODEID command can send and receive data packets. CMD_SET_KLIPPER_NODEID command can send and receive data packets.
The packet data in messages using the node's receive CAN bus id The packet data in messages using the node's receive CAN bus id
(`canbus_nodeid * 2 + 256`) are simply appended to a buffer, and when (`canbus_nodeid * 2 + 256`) are simply appended to a buffer, and when

View File

@ -73,7 +73,60 @@ Common things a reviewer will look for:
Updates to documentation should not declare that they are a "work Updates to documentation should not declare that they are a "work
in progress". in progress".
2. Is the copyright of the submission clear, non-gratuitous, and 2. Does the submission provide a "high impact" benefit to real-world
users performing real-world tasks?
Reviewers need to identify, at least in their own minds, roughly
"who the target audience is", a rough scale of "the size of that
audience", the "benefit" they will obtain, how the "benefit is
measured", and the "results of those measurement tests". In most
cases this will be obvious to both the submitter and the reviewer,
and it is not explicitly stated during a review.
Submissions to the master Klipper branch are expected to have a
noteworthy target audience. As a general "rule of thumb",
submissions should target a user base of at least a 100 real-world
users.
If a reviewer asks for details on the "benefit" of a submission,
please don't consider it criticism. Being able to understand the
real-world benefits of a change is a natural part of a review.
When discussing benefits it is preferable to discuss "facts and
measurements". In general, reviewers are not looking for responses
of the form "someone may find option X useful", nor are they
looking for responses of the form "this submission adds a feature
that firmware X implements". Instead, it is generally preferable to
discuss details on how the quality improvement was measured and
what were the results of those measurements - for example, "tests
on Acme X1000 printers show improved corners as seen in picture
...", or for example "print time of real-world object X on a
Foomatic X900 printer went from 4 hours to 3.5 hours". It is
understood that testing of this type can take significant time and
effort. Some of Klipper's most notable features took months of
discussion, rework, testing, and documentation prior to being
merged into the master branch.
All new modules, config options, commands, command parameters, and
documents should have "high impact". We do not want to burden users
with options that they can not reasonably configure nor do we want
to burden them with options that don't provide a notable benefit.
A reviewer may ask for clarification on how a user is to configure
an option - an ideal response will contain details on the process -
for example, "users of the MegaX500 are expected to set option X to
99.3 while users of the Elite100Y are expected to calibrate option
X using procedure ...".
If the goal of an option is to make the code more modular then
prefer using code constants instead of user facing config options.
New modules, new options, and new parameters should not provide
similar functionality to existing modules - if the differences are
arbitrary than it's preferable to utilize the existing system or
refactor the existing code.
3. Is the copyright of the submission clear, non-gratuitous, and
compatible? compatible?
New C files and Python files should have an unambiguous copyright New C files and Python files should have an unambiguous copyright
@ -91,14 +144,14 @@ Common things a reviewer will look for:
real name. It indicates the submitter agrees with the real name. It indicates the submitter agrees with the
[developer certificate of origin](developer-certificate-of-origin). [developer certificate of origin](developer-certificate-of-origin).
3. Does the submission follow guidelines specified in the Klipper 4. Does the submission follow guidelines specified in the Klipper
documentation? documentation?
In particular, code should follow the guidelines in In particular, code should follow the guidelines in
[Code_Overview.md](Code_Overview.md) and config files should follow [Code_Overview.md](Code_Overview.md) and config files should follow
the guidelines in [Example_Configs.md](Example_Configs.md). the guidelines in [Example_Configs.md](Example_Configs.md).
4. Is the Klipper documentation updated to reflect new changes? 5. Is the Klipper documentation updated to reflect new changes?
At a minimum, the reference documentation must be updated with At a minimum, the reference documentation must be updated with
corresponding changes to the code: corresponding changes to the code:
@ -118,7 +171,7 @@ Common things a reviewer will look for:
added to the website index added to the website index
[docs/_klipper3d/mkdocs.yml](../docs/_klipper3d/mkdocs.yml). [docs/_klipper3d/mkdocs.yml](../docs/_klipper3d/mkdocs.yml).
5. Are commits well formed, address a single topic per commit, and 6. Are commits well formed, address a single topic per commit, and
independent? independent?
Commit messages should follow the Commit messages should follow the
@ -140,61 +193,6 @@ Common things a reviewer will look for:
general, gratuitous whitespace changes are not accepted unless they general, gratuitous whitespace changes are not accepted unless they
are from the established "owner" of the code being modified. are from the established "owner" of the code being modified.
6. Does the submission provide a "high impact" benefit to real-world
users performing real-world tasks?
Reviewers need to identify, at least in their own minds, roughly
"who the target audience is", a rough scale of "the size of that
audience", the "benefit" they will obtain, how the "benefit is
measured", and the "results of those measurement tests". In most
cases this will be obvious to both the submitter and the reviewer,
and it is not explicitly stated during a review.
Submissions to the master Klipper branch are expected to have a
noteworthy target audience. As a general "rule of thumb",
submissions should target a user base of at least a 100 real-world
users.
If a reviewer asks for details on the "benefit" of a submission,
please don't consider it criticism. Being able to understand the
real-world benefits of a change is a natural part of a review.
When discussing benefits it is preferable to discuss "facts and
measurements" instead of "opinions and theories". In general,
reviewers are not looking for responses of the form "this
submission may improve quality because of ...", nor are they
looking for responses of the form "someone may find option X
useful", nor are they looking for responses of the form "this
submission adds a feature that firmware X implements". Instead, it
is generally preferable to discuss details on how the quality
improvement was measured and what were the results of those
measurements - for example, "tests on Acme X1000 printers show
improved corners as seen in picture ...", or for example "print
time of real-world object X on a Foomatic X900 printer went from 4
hours to 3.5 hours". It is understood that testing of this type can
take significant time and effort. Some of Klipper's most notable
features took years of discussion, rework, testing, and
documentation prior to being merged into the master branch.
All new modules, config options, commands, command parameters, and
documents should have "high impact". We do not want to burden users
with options that they can not reasonably configure nor do we want
to burden them with options that don't provide a notable benefit.
A reviewer may ask for clarification on how a user is to configure
an option - an ideal response will contain details on the process -
for example, "users of the MegaX500 are expected to set option X to
99.3 while users of the Elite100Y are expected to calibrate option
X using procedure ...".
If the goal of an option is to make the code more modular then
prefer using code constants instead of user facing config options.
New modules, new options, and new parameters should not provide
similar functionality to existing modules - if the differences are
arbitrary than it's preferable to utilize the existing system or
refactor the existing code.
Klipper does not implement a strict "coding style guide", but Klipper does not implement a strict "coding style guide", but
modifications to existing code should follow the high-level code flow, modifications to existing code should follow the high-level code flow,
code indentation style, and format of that existing code. Submissions code indentation style, and format of that existing code. Submissions
@ -301,15 +299,13 @@ contributions) and contain a current email address.
[Klipper-translations Project](https://github.com/Klipper3d/klipper-translations) [Klipper-translations Project](https://github.com/Klipper3d/klipper-translations)
is a project dedicated to translating Klipper to different languages. is a project dedicated to translating Klipper to different languages.
[Weblate](https://hosted.weblate.org/projects/klipper/) hosts all the [Weblate](https://hosted.weblate.org/projects/klipper/) hosts all the
Gettext strings for translating and reviewing. Locales can merge into Gettext strings for translating and reviewing. Locales can be displayed on
the Klipper project once they satisfy the following requirements: [klipper3d.org](https://www.klipper3d.org) once they satisfy the following requirements:
- [ ] 75% Total coverage - [ ] 75% Total coverage
- [ ] All titles (H1) are covered - [ ] All titles (H1) are translated
- [ ] An updated navigation hierarchy PR in klipper-translations. - [ ] An updated navigation hierarchy PR in klipper-translations.
The navigation hierarchy is in `docs\_klipper3d\mkdocs.yml`.
To reduce the frustration of translating domain-specific terms and To reduce the frustration of translating domain-specific terms and
gain awareness of the ongoing translations, you can submit a PR gain awareness of the ongoing translations, you can submit a PR
modifying the modifying the
@ -321,15 +317,15 @@ If a translation already exists in the Klipper repository and no
longer meets the checklist above, it will be marked out-of-date after longer meets the checklist above, it will be marked out-of-date after
a month without updates. a month without updates.
Please follow the following format for `mkdocs.yml` navigation Once the requirements are met, you need to:
hierarchy:
```yml 1. update klipper-tranlations repository
nav: [active_translations](https://github.com/Klipper3d/klipper-translations/blob/translations/active_translations)
- existing hierachy 2. Optional: add a manual-index.md file in klipper-translations repository's
- <language>: `docs\locals\<lang>` folder to replace the language specific index.md (generated
- locales/<language code>/md file index.md does not render correctly).
```
Note: Currently, there isn't a method for correctly translating Known Issues:
pictures in the documentation. 1. Currently, there isn't a method for correctly translating pictures in
the documentation
2. It is impossible to translate titles in mkdocs.yml.

View File

@ -58,9 +58,12 @@ functions are declared using the DECL_COMMAND() macro (see the
Task, init, and command functions always run with interrupts enabled Task, init, and command functions always run with interrupts enabled
(however, they can temporarily disable interrupts if needed). These (however, they can temporarily disable interrupts if needed). These
functions should never pause, delay, or do any work that lasts more functions should avoid long pauses, delays, or do work that lasts a
than a few micro-seconds. These functions schedule work at specific significant time. (Long delays in these "task" functions result in
times by scheduling timers. scheduling jitter for other "tasks" - delays over 100us may become
noticeable, delays over 500us may result in command retransmissions,
delays over 100ms may result in watchdog reboots.) These functions
schedule work at specific times by scheduling timers.
Timer functions are scheduled by calling sched_add_timer() (located in Timer functions are scheduled by calling sched_add_timer() (located in
**src/sched.c**). The scheduler code will arrange for the given **src/sched.c**). The scheduler code will arrange for the given

View File

@ -45,8 +45,7 @@ gcode:
SET_PIN PIN=my_led VALUE=0 SET_PIN PIN=my_led VALUE=0
``` ```
This will be showing is you use the `HELP` command or use the autocomplete The terminal will display the description when you use the `HELP` command or the autocomplete function.
function.
## Save/Restore state for G-Code moves ## Save/Restore state for G-Code moves
@ -95,7 +94,7 @@ gcode:
G90 G90
G0 Z15 F300 G0 Z15 F300
{% for wipe in range(wipe_count) %} {% for wipe in range(wipe_count) %}
{% for coordinate in [(275,4),(235,4)] %} {% for coordinate in [(275, 4),(235, 4)] %}
G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000 G0 X{coordinate[0]} Y{coordinate[1] + 0.25 * wipe} Z9.7 F12000
{% endfor %} {% endfor %}
{% endfor %} {% endfor %}
@ -131,17 +130,13 @@ gcode:
### The "rawparams" variable ### The "rawparams" variable
The full unparsed parameters for the running macro can be access via the `rawparams` pseudo-variable. The full unparsed parameters for the running macro can be access via the
`rawparams` pseudo-variable.
This is quite useful if you want to change the behavior of certain commands like the `M117`. For example: Note that this will include any comments that were part of the original command.
``` See the [sample-macros.cfg](../config/sample-macros.cfg) file for an example
[gcode_macro M117] showing how to override the `M117` command using `rawparams`.
rename_existing: M117.1
gcode:
M117.1 { rawparams }
M118 { rawparams }
```
### The "printer" Variable ### The "printer" Variable

Some files were not shown because too many files have changed in this diff Show More