Deploying to gh-pages from @ Klipper3d/klipper@14a83103c3 🚀

This commit is contained in:
KevinOConnor
2024-09-06 00:04:39 +00:00
parent 6478486f2c
commit 6d8124a0cc
303 changed files with 23968 additions and 2228 deletions

View File

@@ -444,8 +444,8 @@
<li class="md-nav__item">
<a href="/OctoPrint.md" class="md-nav__link">
None
<a href="/OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1267,8 +1267,8 @@
<li class="md-nav__item">
<a href="/Eddy_Probe.md" class="md-nav__link">
None
<a href="/Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1174,6 +1174,20 @@
角/转储角
</a>
</li>
<li class="md-nav__item">
<a href="#hx71xdump_hx71x" class="md-nav__link">
hx71x/dump_hx71x
</a>
</li>
<li class="md-nav__item">
<a href="#ads1220dump_ads1220" class="md-nav__link">
ads1220/dump_ads1220
</a>
</li>
<li class="md-nav__item">
@@ -1202,6 +1216,13 @@
查询_结束停止/状态
</a>
</li>
<li class="md-nav__item">
<a href="#bed_meshdump_mesh" class="md-nav__link">
bed_mesh/dump_mesh
</a>
</li>
</ul>
@@ -1482,8 +1503,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1676,6 +1697,20 @@
角/转储角
</a>
</li>
<li class="md-nav__item">
<a href="#hx71xdump_hx71x" class="md-nav__link">
hx71x/dump_hx71x
</a>
</li>
<li class="md-nav__item">
<a href="#ads1220dump_ads1220" class="md-nav__link">
ads1220/dump_ads1220
</a>
</li>
<li class="md-nav__item">
@@ -1704,6 +1739,13 @@
查询_结束停止/状态
</a>
</li>
<li class="md-nav__item">
<a href="#bed_meshdump_mesh" class="md-nav__link">
bed_mesh/dump_mesh
</a>
</li>
</ul>
@@ -1825,6 +1867,12 @@ gcode:
<p>该端点用于订阅<a href="Config_Reference.html#Angel">角度传感器数据</a>。获取这些低级运动更新对于诊断和调试目的可能有用。使用此终结点可能会增加Klipper的系统负载。</p>
<p>请求可能类似于:<code>{“id”123“方法”“角度/转储_角度”“参数”{“传感器”“我的角度_传感器”“响应模板”{}</code>,并且可能返回:<code>{“id”123“结果”{“标题”:[“时间”,“角度”]}}</code>,并且可能稍后产生诸如:<code>{“参数”:{“位置偏移量”3.151562“错误”0,“data”[[1290.951905-5063][1290.952321-5065]}}</code></p>
<p>初始查询响应中的“Header”字段用于描述在随后的“数据”响应中找到的字段。</p>
<h3 id="hx71xdump_hx71x">hx71x/dump_hx71x<a class="headerlink" href="#hx71xdump_hx71x" title="Permanent link">&para;</a></h3>
<p>This endpoint is used to subscribe to raw HX711 and HX717 ADC data. Obtaining these low-level ADC updates may be useful for diagnostic and debugging purposes. Using this endpoint may increase Klipper's system load.</p>
<p>A request may look like: <code>{"id": 123, "method":"hx71x/dump_hx71x", "params": {"sensor": "load_cell", "response_template": {}}}</code> and might return: <code>{"id": 123,"result":{"header":["time","counts","value"]}}</code> and might later produce asynchronous messages such as: <code>{"params":{"data":[[3292.432935, 562534, 0.067059278], [3292.4394937, 5625322, 0.670590639]]}}</code></p>
<h3 id="ads1220dump_ads1220">ads1220/dump_ads1220<a class="headerlink" href="#ads1220dump_ads1220" title="Permanent link">&para;</a></h3>
<p>This endpoint is used to subscribe to raw ADS1220 ADC data. Obtaining these low-level ADC updates may be useful for diagnostic and debugging purposes. Using this endpoint may increase Klipper's system load.</p>
<p>A request may look like: <code>{"id": 123, "method":"ads1220/dump_ads1220", "params": {"sensor": "load_cell", "response_template": {}}}</code> and might return: <code>{"id": 123,"result":{"header":["time","counts","value"]}}</code> and might later produce asynchronous messages such as: <code>{"params":{"data":[[3292.432935, 562534, 0.067059278], [3292.4394937, 5625322, 0.670590639]]}}</code></p>
<h3 id="_">暂停_继续/取消<a class="headerlink" href="#_" title="Permanent link">&para;</a></h3>
<p>该端点类似于运行“PRINT_CANCEL”G-Code命令。例如<code>{“id”123“方法”“PAUSE_RESUME/Cancel”}</code></p>
<p>与“gcode/脚本”终结点一样该终结点只有在所有挂起的G-Code命令完成后才会完成。</p>
@@ -1837,6 +1885,119 @@ gcode:
<h3 id="__3">查询_结束停止/状态<a class="headerlink" href="#__3" title="Permanent link">&para;</a></h3>
<p>此终结点将查询活动终结点并返回其状态。例如:<code>{“id”123“Method”“Query_endstopks/Status”}</code>可能返回:<code>{“id”123“Result”{“y”“Open”“x”“Open”“z”“Trigated”}</code></p>
<p>与“gcode/脚本”终结点一样该终结点只有在所有挂起的G-Code命令完成后才会完成。</p>
<h3 id="bed_meshdump_mesh">bed_mesh/dump_mesh<a class="headerlink" href="#bed_meshdump_mesh" title="Permanent link">&para;</a></h3>
<p>Dumps the configuration and state for the current mesh and all saved profiles.</p>
<p>For example: <code>{"id": 123, "method": "bed_mesh/dump_mesh"}</code></p>
<p>might return:</p>
<div class="highlight"><pre><span></span><code>{
&quot;current_mesh&quot;: {
&quot;name&quot;: &quot;eddy-scan-test&quot;,
&quot;probed_matrix&quot;: [...],
&quot;mesh_matrix&quot;: [...],
&quot;mesh_params&quot;: {
&quot;x_count&quot;: 9,
&quot;y_count&quot;: 9,
&quot;mesh_x_pps&quot;: 2,
&quot;mesh_y_pps&quot;: 2,
&quot;algo&quot;: &quot;bicubic&quot;,
&quot;tension&quot;: 0.5,
&quot;min_x&quot;: 20,
&quot;max_x&quot;: 330,
&quot;min_y&quot;: 30,
&quot;max_y&quot;: 320
}
},
&quot;profiles&quot;: {
&quot;default&quot;: {
&quot;points&quot;: [...],
&quot;mesh_params&quot;: {
&quot;min_x&quot;: 20,
&quot;max_x&quot;: 330,
&quot;min_y&quot;: 30,
&quot;max_y&quot;: 320,
&quot;x_count&quot;: 9,
&quot;y_count&quot;: 9,
&quot;mesh_x_pps&quot;: 2,
&quot;mesh_y_pps&quot;: 2,
&quot;algo&quot;: &quot;bicubic&quot;,
&quot;tension&quot;: 0.5
}
},
&quot;eddy-scan-test&quot;: {
&quot;points&quot;: [...],
&quot;mesh_params&quot;: {
&quot;x_count&quot;: 9,
&quot;y_count&quot;: 9,
&quot;mesh_x_pps&quot;: 2,
&quot;mesh_y_pps&quot;: 2,
&quot;algo&quot;: &quot;bicubic&quot;,
&quot;tension&quot;: 0.5,
&quot;min_x&quot;: 20,
&quot;max_x&quot;: 330,
&quot;min_y&quot;: 30,
&quot;max_y&quot;: 320
}
},
&quot;eddy-rapid-test&quot;: {
&quot;points&quot;: [...],
&quot;mesh_params&quot;: {
&quot;x_count&quot;: 9,
&quot;y_count&quot;: 9,
&quot;mesh_x_pps&quot;: 2,
&quot;mesh_y_pps&quot;: 2,
&quot;algo&quot;: &quot;bicubic&quot;,
&quot;tension&quot;: 0.5,
&quot;min_x&quot;: 20,
&quot;max_x&quot;: 330,
&quot;min_y&quot;: 30,
&quot;max_y&quot;: 320
}
}
},
&quot;calibration&quot;: {
&quot;points&quot;: [...],
&quot;config&quot;: {
&quot;x_count&quot;: 9,
&quot;y_count&quot;: 9,
&quot;mesh_x_pps&quot;: 2,
&quot;mesh_y_pps&quot;: 2,
&quot;algo&quot;: &quot;bicubic&quot;,
&quot;tension&quot;: 0.5,
&quot;mesh_min&quot;: [
20,
30
],
&quot;mesh_max&quot;: [
330,
320
],
&quot;origin&quot;: null,
&quot;radius&quot;: null
},
&quot;probe_path&quot;: [...],
&quot;rapid_path&quot;: [...]
},
&quot;probe_offsets&quot;: [
0,
25,
0.5
],
&quot;axis_minimum&quot;: [
0,
0,
-5,
0
],
&quot;axis_maximum&quot;: [
351,
358,
330,
0
]
}
</code></pre></div>
<p>The <code>dump_mesh</code> endpoint takes one optional parameter, <code>mesh_args</code>. This parameter must be an object, where the keys and values are parameters available to <a href="#bed_mesh_calibrate">BED_MESH_CALIBRATE</a>. This will update the mesh configuration and probe points using the supplied parameters prior to returning the result. It is recommended to omit mesh parameters unless it is desired to visualize the probe points and/or travel path before performing <code>BED_MESH_CALIBRATE</code>.</p>
</article>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1324,8 +1324,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1366,8 +1366,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1217,21 +1217,28 @@
</li>
<li class="md-nav__item">
<a href="#octoprint" class="md-nav__link">
安装 Octoprint
<a href="#installing-octoprint" class="md-nav__link">
Installing Octoprint
</a>
</li>
<li class="md-nav__item">
<a href="#building-the-beaglebone-pru-micro-controller-code-pru-firmware" class="md-nav__link">
Building the BeagleBone PRU micro-controller code (PRU firmware)
</a>
</li>
<li class="md-nav__item">
<a href="#building-and-installing-linux-host-micro-controller-code" class="md-nav__link">
Building and installing Linux host micro-controller code
</a>
</li>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
构建微控制器代码
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
剩余的配置
</a>
@@ -1242,6 +1249,41 @@
在 Beaglebone 上打印
</a>
</li>
<li class="md-nav__item">
<a href="#avr-micro-controller-code-build" class="md-nav__link">
AVR micro-controller code build
</a>
</li>
<li class="md-nav__item">
<a href="#hardware-pin-designation" class="md-nav__link">
Hardware Pin designation
</a>
</li>
<li class="md-nav__item">
<a href="#enabling-hardware-spi" class="md-nav__link">
Enabling hardware SPI
</a>
</li>
<li class="md-nav__item">
<a href="#enabling-hardware-i2c" class="md-nav__link">
Enabling hardware I2C
</a>
</li>
<li class="md-nav__item">
<a href="#enabling-hardware-uartserialcan" class="md-nav__link">
Enabling hardware UART(Serial)/CAN
</a>
</li>
</ul>
@@ -1343,8 +1385,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1406,21 +1448,28 @@
</li>
<li class="md-nav__item">
<a href="#octoprint" class="md-nav__link">
安装 Octoprint
<a href="#installing-octoprint" class="md-nav__link">
Installing Octoprint
</a>
</li>
<li class="md-nav__item">
<a href="#building-the-beaglebone-pru-micro-controller-code-pru-firmware" class="md-nav__link">
Building the BeagleBone PRU micro-controller code (PRU firmware)
</a>
</li>
<li class="md-nav__item">
<a href="#building-and-installing-linux-host-micro-controller-code" class="md-nav__link">
Building and installing Linux host micro-controller code
</a>
</li>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
构建微控制器代码
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
剩余的配置
</a>
@@ -1431,6 +1480,41 @@
在 Beaglebone 上打印
</a>
</li>
<li class="md-nav__item">
<a href="#avr-micro-controller-code-build" class="md-nav__link">
AVR micro-controller code build
</a>
</li>
<li class="md-nav__item">
<a href="#hardware-pin-designation" class="md-nav__link">
Hardware Pin designation
</a>
</li>
<li class="md-nav__item">
<a href="#enabling-hardware-spi" class="md-nav__link">
Enabling hardware SPI
</a>
</li>
<li class="md-nav__item">
<a href="#enabling-hardware-i2c" class="md-nav__link">
Enabling hardware I2C
</a>
</li>
<li class="md-nav__item">
<a href="#enabling-hardware-uartserialcan" class="md-nav__link">
Enabling hardware UART(Serial)/CAN
</a>
</li>
</ul>
@@ -1453,14 +1537,36 @@
<h1 id="beaglebone">Beaglebone<a class="headerlink" href="#beaglebone" title="Permanent link">&para;</a></h1>
<p>本文档描述了在 Beaglebone 可编程实时单元上运行 Klipper 的过程。</p>
<h2 id="_1">构建一个操作系统镜像<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<p>首先安装<a href="https://beagleboard.org/latest-images">Debian 9.9 2019-08-03 4GB SD IoT</a>镜像。可以从micro-SD卡或内置的eMMC中运行该镜像。如果使用eMMC现在需要按照上述链接的说明将其安装到eMMC。</p>
<p>然后 ssh 进入 Beaglebone 机器(<code>ssh debian@beaglebone</code> -- 密码是 <code>temppwd</code>),通过运行以下命令安装 Klipper</p>
<div class="highlight"><pre><span></span><code>git clone https://github.com/Klipper3d/klipper
<p>Start by installing the <a href="https://beagleboard.org/latest-images">Debian 11.7 2023-09-02 4GB microSD IoT</a> image. One may run the image from either a micro-SD card or from builtin eMMC. If using the eMMC, install it to eMMC now by following the instructions from the above link.</p>
<p>Then ssh into the Beaglebone machine (<code>ssh debian@beaglebone</code> -- password is <code>temppwd</code>).</p>
<p>Before start installing Klipper you need to free-up additional space. there are 3 options to do that:</p>
<ol>
<li>remove some BeagleBone "Demo" resources</li>
<li>if you did boot from SD-Card, and it's bigger than 4Gb - you can expand current filesystem to take whole card space</li>
<li>do option #1 and #2 together.</li>
</ol>
<p>To remove some BeagleBone "Demo" resources execute these commands</p>
<div class="highlight"><pre><span></span><code>sudo apt remove bb-node-red-installer
sudo apt remove bb-code-server
</code></pre></div>
<p>To expand filesystem to full size of your SD-Card execute this command, reboot is not required.</p>
<div class="highlight"><pre><span></span><code>sudo growpart /dev/mmcblk0 1
sudo resize2fs /dev/mmcblk0p1
</code></pre></div>
<p>Install Klipper by running the following commands:</p>
<div class="highlight"><pre><span></span><code>git clone https://github.com/Klipper3d/klipper.git
./klipper/scripts/install-beaglebone.sh
</code></pre></div>
<h2 id="octoprint">安装 Octoprint<a class="headerlink" href="#octoprint" title="Permanent link">&para;</a></h2>
<p>然后可以安装 Octoprint</p>
<p>After installing Klipper you need to decide what kind of deployment do you need, but take a note that BeagleBone is 3.3v based hardware and in most cases you can't directly connect pins to 5v or 12v based hardware without conversion boards.</p>
<p>As Klipper have multimodule architecture on BeagleBone you can achieve many different use cases, but general ones are following:</p>
<p>Use case 1: Use BeagleBone only as a host system to run Klipper and additional software like OctoPrint/Fluidd + Moonraker/... and this configuration will be driving external micro-controllers via serial/usb/canbus connections.</p>
<p>Use case 2: Use BeagleBone with extension board (cape) like CRAMPS board. in this configuration BeagleBone will host Klipper + additional software, and it will drive extension board with BeagleBone PRU cores (2 additional cores 200Mh, 32Bit).</p>
<p>Use case 3: It's same as "Use case 1" but additionally you want to drive BeagleBone GPIOs with high speed by utilizing PRU cores to offload main CPU.</p>
<h2 id="installing-octoprint">Installing Octoprint<a class="headerlink" href="#installing-octoprint" title="Permanent link">&para;</a></h2>
<p>One may then install Octoprint or fully skip this section if desired other software:</p>
<div class="highlight"><pre><span></span><code>git clone https://github.com/foosel/OctoPrint.git
cd OctoPrint/
virtualenv venv
@@ -1482,19 +1588,69 @@ sudo update-rc.d octoprint defaults
<div class="highlight"><pre><span></span><code>sudo systemctl start octoprint
</code></pre></div>
<p>需要确定可以访问 OctoPrint 网络服务器 - 它应该可以通过这个链接访问:<a href="http://beaglebone:5000/">http://beaglebone:5000/</a></p>
<h2 id="_2">构建微控制器代码<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>要编译的 Klipper 微控制器代码需要先将编译配置设为“Beaglebone PRU”</p>
<p>Wait 1-2 minutes and make sure the OctoPrint web server is accessible - it should be at: <a href="http://beaglebone:5000/">http://beaglebone:5000/</a></p>
<h2 id="building-the-beaglebone-pru-micro-controller-code-pru-firmware">Building the BeagleBone PRU micro-controller code (PRU firmware)<a class="headerlink" href="#building-the-beaglebone-pru-micro-controller-code-pru-firmware" title="Permanent link">&para;</a></h2>
<p>This section is required for "Use case 2" and "Use case 3" mentioned above, you should skip it for "Use case 1".</p>
<p>Check that required devices are present</p>
<div class="highlight"><pre><span></span><code>sudo beagle-version
</code></pre></div>
<p>You should check that output contains successful "remoteproc" drivers loading and presence of PRU cores, in Kernel 5.10 they should be "remoteproc1" and "remoteproc2" (4a334000.pru, 4a338000.pru) Also check that many GPIOs are loaded they will look like "Allocated GPIO id=0 name='P8_03'" Usually everything is fine and no hardware configuration is required. If something is missing - try to play with "uboot overlays" options or with cape-overlays Just for reference some output of working BeagleBone Black configuration with CRAMPS board:</p>
<div class="highlight"><pre><span></span><code>model:[TI_AM335x_BeagleBone_Black]
UBOOT: Booted Device-Tree:[am335x-boneblack-uboot-univ.dts]
UBOOT: Loaded Overlay:[BB-ADC-00A0.bb.org-overlays]
UBOOT: Loaded Overlay:[BB-BONE-eMMC1-01-00A0.bb.org-overlays]
kernel:[5.10.168-ti-r71]
/boot/uEnv.txt Settings:
uboot_overlay_options:[enable_uboot_overlays=1]
uboot_overlay_options:[disable_uboot_overlay_video=0]
uboot_overlay_options:[disable_uboot_overlay_audio=1]
uboot_overlay_options:[disable_uboot_overlay_wireless=1]
uboot_overlay_options:[enable_uboot_cape_universal=1]
pkg:[bb-cape-overlays]:[4.14.20210821.0-0~bullseye+20210821]
pkg:[bb-customizations]:[1.20230720.1-0~bullseye+20230720]
pkg:[bb-usb-gadgets]:[1.20230414.0-0~bullseye+20230414]
pkg:[bb-wl18xx-firmware]:[1.20230414.0-0~bullseye+20230414]
.............
.............
</code></pre></div>
<p>To compile the Klipper micro-controller code, start by configuring it for the "Beaglebone PRU", for "BeagleBone Black" additionally disable options "Support GPIO Bit-banging devices" and disable "Support LCD devices" inside the "Optional features" because they will not fit in 8Kb PRU firmware memory, then exit and save config:</p>
<div class="highlight"><pre><span></span><code>cd ~/klipper/
make menuconfig
</code></pre></div>
<p>要构建和安装新的微控制器代码,请运行:</p>
<p>To build and install the new PRU micro-controller code, run:</p>
<div class="highlight"><pre><span></span><code>sudo service klipper stop
make flash
sudo service klipper start
</code></pre></div>
<p>After previous commands was executed your PRU firmware should be ready and started to check if everything was fine you can execute following command</p>
<div class="highlight"><pre><span></span><code>dmesg
</code></pre></div>
<p>and compare last messages with sample one which indicate that everything started properly:</p>
<div class="highlight"><pre><span></span><code>[ 71.105499] remoteproc remoteproc1: 4a334000.pru is available
[ 71.157155] remoteproc remoteproc2: 4a338000.pru is available
[ 73.256287] remoteproc remoteproc1: powering up 4a334000.pru
[ 73.279246] remoteproc remoteproc1: Booting fw image am335x-pru0-fw, size 97112
[ 73.285807] remoteproc1#vdev0buffer: registered virtio0 (type 7)
[ 73.285836] remoteproc remoteproc1: remote processor 4a334000.pru is now up
[ 73.286322] remoteproc remoteproc2: powering up 4a338000.pru
[ 73.313717] remoteproc remoteproc2: Booting fw image am335x-pru1-fw, size 188560
[ 73.313753] remoteproc remoteproc2: header-less resource table
[ 73.329964] remoteproc remoteproc2: header-less resource table
[ 73.348321] remoteproc remoteproc2: remote processor 4a338000.pru is now up
[ 73.443355] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 0x1e
[ 73.443727] virtio_rpmsg_bus virtio0: msg received with no recipient
[ 73.444352] virtio_rpmsg_bus virtio0: rpmsg host is online
[ 73.540993] rpmsg_pru virtio0.rpmsg-pru.-1.30: new rpmsg_pru device: /dev/rpmsg_pru30
</code></pre></div>
<p>take a note about "/dev/rpmsg_pru30" - it's your future serial device for main mcu configuration this device is required to be present, if it's absent - your PRU cores did not start properly.</p>
<h2 id="building-and-installing-linux-host-micro-controller-code">Building and installing Linux host micro-controller code<a class="headerlink" href="#building-and-installing-linux-host-micro-controller-code" title="Permanent link">&para;</a></h2>
<p>This section is required for "Use case 2" and optional for "Use case 3" mentioned above</p>
<p>还需要编译和安装用于 Linux 主机进程的微控制器代码。再次修改编译配置为"Linux process"</p>
<div class="highlight"><pre><span></span><code>make menuconfig
</code></pre></div>
@@ -1505,10 +1661,57 @@ make flash
sudo service klipper start
</code></pre></div>
<h2 id="_3">剩余的配置<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<p>根据<a href="Installation.html#configuring-klipper">安装文档</a>配置 Klipper 和 Octoprint 以完成安装。</p>
<p>take a note about "/tmp/klipper_host_mcu" - it will be your future serial device for "mcu host" if that file don't exist - refer to "scripts/klipper-mcu.service" file, it was installed by previous commands, and it's responsible for it.</p>
<p>Take a note for "Use case 2" about following: when you will define printer configuration you should always use temperature sensors from "mcu host" because ADCs not present in default "mcu" (PRU cores). Sample configuration of "sensor_pin" for extruder and heated bed are available in "generic-cramps.cfg" You can use any other GPIO directly from "mcu host" by referencing them this way "host:gpiochip1/gpio17" but that should be avoided because it will be creating additional load on main CPU and most probably you can't use them for stepper control.</p>
<h2 id="_2">剩余的配置<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>Complete the installation by configuring Klipper following the instructions in the main <a href="Installation.html#configuring-octoprint-to-use-klipper">Installation</a> document.</p>
<h2 id="beaglebone_1">在 Beaglebone 上打印<a class="headerlink" href="#beaglebone_1" title="Permanent link">&para;</a></h2>
<p>不幸的是Beaglebone 处理器有时不能流畅地运行 OctoPrint。在复杂的打印中会出现打印停滞打印机的移动速度可能比 OctoPrint 发送的移动命令快)是一个已知问题。如果发生这种情况,可以尝试使用 "virtual_sdcard" 功能(详见<a href="Config_Reference.html#virtual_sdcard">配置参考</a>),直接从 Klipper 打印。</p>
<p>Unfortunately, the Beaglebone processor can sometimes struggle to run OctoPrint well. Print stalls have been known to occur on complex prints (the printer may move faster than OctoPrint can send movement commands). If this occurs, consider using the "virtual_sdcard" feature (see <a href="Config_Reference.html#virtual_sdcard">Config Reference</a> for details) to print directly from Klipper and disable any DEBUG or VERBOSE logging options if you did enable them.</p>
<h2 id="avr-micro-controller-code-build">AVR micro-controller code build<a class="headerlink" href="#avr-micro-controller-code-build" title="Permanent link">&para;</a></h2>
<p>This environment have everything to build necessary micro-controller code except AVR, AVR packages was removed because of conflict with PRU packages. if you still want to build AVR micro-controller code in this environment you need to remove PRU packages and install AVR packages by executing following commands</p>
<div class="highlight"><pre><span></span><code>sudo apt-get remove gcc-pru
sudo apt-get install avrdude gcc-avr binutils-avr avr-libc
</code></pre></div>
<p>if you need to restore PRU packages - then remove ARV packages before that</p>
<div class="highlight"><pre><span></span><code>sudo apt-get remove avrdude gcc-avr binutils-avr avr-libc
sudo apt-get install gcc-pru
</code></pre></div>
<h2 id="hardware-pin-designation">Hardware Pin designation<a class="headerlink" href="#hardware-pin-designation" title="Permanent link">&para;</a></h2>
<p>BeagleBone is very flexible in terms of pin designation, same pin can be configured for different function but always single function for single pin, same function can be present on different pins. So you can't have multiple functions on single pin or have same function on multiple pins. Example: P9_20 - i2c2_sda/can0_tx/spi1_cs0/gpio0_12/uart1_ctsn P9_19 - i2c2_scl/can0_rx/spi1_cs1/gpio0_13/uart1_rtsn P9_24 - i2c1_scl/can1_rx/gpio0_15/uart1_tx P9_26 - i2c1_sda/can1_tx/gpio0_14/uart1_rx</p>
<p>Pin designation is defined by using special "overlays" which will be loaded during linux boot they are configured by editing file /boot/uEnv.txt with elevated permissions</p>
<div class="highlight"><pre><span></span><code>sudo editor /boot/uEnv.txt
</code></pre></div>
<p>and defining which functionality to load, for example to enable CAN1 you need to define overlay for it</p>
<div class="highlight"><pre><span></span><code>uboot_overlay_addr4=/lib/firmware/BB-CAN1-00A0.dtbo
</code></pre></div>
<p>This overlay BB-CAN1-00A0.dtbo will reconfigure all required pins for CAN1 and create CAN device in Linux. Any change in overlays will require system reboot to be applied. If you need to understand which pins are involved in some overlay - you can analyze source files in this location: /opt/sources/bb.org-overlays/src/arm/ or search info in BeagleBone forums.</p>
<h2 id="enabling-hardware-spi">Enabling hardware SPI<a class="headerlink" href="#enabling-hardware-spi" title="Permanent link">&para;</a></h2>
<p>BeagleBone usually have multiple hardware SPI buses, for example BeagleBone Black can have 2 of them, they can work up to 48Mhz, but usually they are limited to 16Mhz by Kernel Device-tree. By default, in BeagleBone Black some of SPI1 pins are configured for HDMI-Audio output, to fully enable 4-wire SPI1 you need to disable HDMI Audio and enable SPI1 To do that edit file /boot/uEnv.txt with elevated permissions</p>
<div class="highlight"><pre><span></span><code>sudo editor /boot/uEnv.txt
</code></pre></div>
<p>uncomment variable</p>
<div class="highlight"><pre><span></span><code>disable_uboot_overlay_audio=1
</code></pre></div>
<p>next uncomment variable and define it this way</p>
<div class="highlight"><pre><span></span><code>uboot_overlay_addr4=/lib/firmware/BB-SPIDEV1-00A0.dtbo
</code></pre></div>
<p>Save changes in /boot/uEnv.txt and reboot the board. Now you have SPI1 Enabled, to verify its presence execute command</p>
<div class="highlight"><pre><span></span><code>ls /dev/spidev1.*
</code></pre></div>
<p>Take a note that BeagleBone usually is 3.3v based hardware and to use 5V SPI devices you need to add Level-Shifting chip, for example SN74CBTD3861, SN74LVC1G34 or similar. If you are using CRAMPS board - it already contains Level-Shifting chip and SPI1 pins will become available on P503 port, and they can accept 5v hardware, check CRAMPS board Schematics for pin references.</p>
<h2 id="enabling-hardware-i2c">Enabling hardware I2C<a class="headerlink" href="#enabling-hardware-i2c" title="Permanent link">&para;</a></h2>
<p>BeagleBone usually have multiple hardware I2C buses, for example BeagleBone Black can have 3 of them, they support speed up-to 400Kbit Fast mode. By default, in BeagleBone Black there are two of them (i2c-1 and i2c-2) usually both are already configured and present on P9, third ic2-0 usually reserved for internal use. If you are using CRAMPS board then i2c-2 is present on P303 port with 3.3v level, If you want to obtain I2c-1 in CRAMPS board - you can get them on Extruder1.Step, Extruder1.Dir pins, they also are 3.3v based, check CRAMPS board Schematics for pin references. Related overlays, for <a href="#hardware-pin-designation">Hardware Pin designation</a>: I2C1(100Kbit): BB-I2C1-00A0.dtbo I2C1(400Kbit): BB-I2C1-FAST-00A0.dtbo I2C2(100Kbit): BB-I2C2-00A0.dtbo I2C2(400Kbit): BB-I2C2-FAST-00A0.dtbo</p>
<h2 id="enabling-hardware-uartserialcan">Enabling hardware UART(Serial)/CAN<a class="headerlink" href="#enabling-hardware-uartserialcan" title="Permanent link">&para;</a></h2>
<p>BeagleBone have up to 6 hardware UART(Serial) buses (up to 3Mbit) and up to 2 hardware CAN(1Mbit) buses. UART1(RX,TX) and CAN1(TX,RX) and I2C2(SDA,SCL) are using same pins - so you need to chose what to use UART1(CTSN,RTSN) and CAN0(TX,RX) and I2C1(SDA,SCL) are using same pins - so you need to chose what to use All UART/CAN related pins are 3.3v based, so you will need to use Transceiver chips/boards like SN74LVC2G241DCUR (for UART), SN65HVD230 (for CAN), TTL-RS485 (for RS-485) or something similar which can convert 3.3v signals to appropriate levels.</p>
<p>Related overlays, for <a href="#hardware-pin-designation">Hardware Pin designation</a> CAN0: BB-CAN0-00A0.dtbo CAN1: BB-CAN1-00A0.dtbo UART0: - used for Console UART1(RX,TX): BB-UART1-00A0.dtbo UART1(RTS,CTS): BB-UART1-RTSCTS-00A0.dtbo UART2(RX,TX): BB-UART2-00A0.dtbo UART3(RX,TX): BB-UART3-00A0.dtbo UART4(RS-485): BB-UART4-RS485-00A0.dtbo UART5(RX,TX): BB-UART5-00A0.dtbo</p>
</article>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1331,8 +1331,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -771,6 +771,33 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#surface-scans" class="md-nav__link">
Surface Scans
</a>
<nav class="md-nav" aria-label="Surface Scans">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#scan-height" class="md-nav__link">
Scan Height
</a>
</li>
<li class="md-nav__item">
<a href="#rapid-continuous-scanning" class="md-nav__link">
Rapid (Continuous) Scanning
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -832,6 +859,67 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#bed-mesh-webhooks-apis" class="md-nav__link">
Bed Mesh Webhooks APIs
</a>
<nav class="md-nav" aria-label="Bed Mesh Webhooks APIs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#dumping-mesh-data" class="md-nav__link">
Dumping mesh data
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#visualization-and-analysis" class="md-nav__link">
Visualization and analysis
</a>
<nav class="md-nav" aria-label="Visualization and analysis">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pre-requisites" class="md-nav__link">
Pre-requisites
</a>
</li>
<li class="md-nav__item">
<a href="#plotting-mesh-data" class="md-nav__link">
Plotting Mesh data
</a>
</li>
<li class="md-nav__item">
<a href="#bed-mesh-analysis" class="md-nav__link">
Bed Mesh Analysis
</a>
</li>
<li class="md-nav__item">
<a href="#save-mesh-data-to-a-file" class="md-nav__link">
Save mesh data to a file
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1466,8 +1554,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1614,6 +1702,33 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#surface-scans" class="md-nav__link">
Surface Scans
</a>
<nav class="md-nav" aria-label="Surface Scans">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#scan-height" class="md-nav__link">
Scan Height
</a>
</li>
<li class="md-nav__item">
<a href="#rapid-continuous-scanning" class="md-nav__link">
Rapid (Continuous) Scanning
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -1675,6 +1790,67 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#bed-mesh-webhooks-apis" class="md-nav__link">
Bed Mesh Webhooks APIs
</a>
<nav class="md-nav" aria-label="Bed Mesh Webhooks APIs">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#dumping-mesh-data" class="md-nav__link">
Dumping mesh data
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#visualization-and-analysis" class="md-nav__link">
Visualization and analysis
</a>
<nav class="md-nav" aria-label="Visualization and analysis">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#pre-requisites" class="md-nav__link">
Pre-requisites
</a>
</li>
<li class="md-nav__item">
<a href="#plotting-mesh-data" class="md-nav__link">
Plotting Mesh data
</a>
</li>
<li class="md-nav__item">
<a href="#bed-mesh-analysis" class="md-nav__link">
Bed Mesh Analysis
</a>
</li>
<li class="md-nav__item">
<a href="#save-mesh-data-to-a-file" class="md-nav__link">
Save mesh data to a file
</a>
</li>
</ul>
</nav>
</li>
</ul>
@@ -1712,7 +1888,7 @@ probe_count: 5, 3
<li><code>speed: 120</code> <em>默认值50</em> 探针在两个点之间移动的速度。</li>
<li><code>horizontal_move_z: 5</code> <em>默认值5</em> 探针前往下一个点之前Z需要抬升的高度。</li>
<li><code>mesh_min: 35,6</code> <em>(必须存在)</em>第一个探测的坐标,距离原点最近。该坐标就是探针所在的位置。</li>
<li><code>mesh_max: 240, 198</code> <em>必填</em> 探测坐标最远离原点的点。这不一定是最后一个被探测到的点,因为探测过程是以锯齿形进行的。与 <code>mesh_min</code> 一样,此坐标相对于探针位置。</li>
<li><code>mesh_max: 240, 198</code> <em>Required</em> The probed coordinate farthest from the origin. This is not necessarily the last point probed, as the probing process occurs in a zig-zag fashion. As with <code>mesh_min</code>, this coordinate is relative to the probe's location.</li>
<li><code>probe_count: 5, 3</code> <em>默认值3, 3</em> 每个轴上要探测的点数,指定为 X, Y 整数值。 在本示例中,将沿 X 轴探测 5 个点,沿 Y 轴探测 3 个点,总共探测 15 个点。 请注意,如果您想要一个方形网格,例如 3x3可以将指定其为一个整数值比如 <code>probe_count: 3</code>。 请注意,网格需要沿每个轴的最小 probe_count 为3。</li>
</ul>
<p>下图演示了如何使用 <code>mesh_min</code><code>mesh_max</code><code>probe_count</code> 选项来生成探测点。 箭头表示探测过程的运动方向从“mesh_min”开始。 图中所示当探针位于“mesh_min”时喷嘴将位于 (11, 1)当探针位于“mesh_max”时喷嘴将位于 (206, 193)。</p>
@@ -1866,11 +2042,41 @@ adaptive_margin: 5
</ul>
<p>By nature, adaptive bed meshes use the objects defined by the Gcode file being printed. Therefore, it is expected that each Gcode file will generate a mesh that probes a different area of the print bed. Therefore, adapted bed meshes should not be re-used. The expectation is that a new mesh will be generated for each print if adaptive meshing is used.</p>
<p>It is also important to consider that adaptive bed meshing is best used on machines that can normally probe the entire bed and achieve a maximum variance less than or equal to 1 layer height. Machines with mechanical issues that a full bed mesh normally compensates for may have undesirable results when attempting print moves <strong>outside</strong> of the probed area. If a full bed mesh has a variance greater than 1 layer height, caution must be taken when using adaptive bed meshes and attempting print moves outside of the meshed area.</p>
<h2 id="surface-scans">Surface Scans<a class="headerlink" href="#surface-scans" title="Permanent link">&para;</a></h2>
<p>Some probes, such as the <a href="Eddy_Probe.html">Eddy Current Probe</a>, are capable of "scanning" the surface of the bed. That is, these probes can sample a mesh without lifting the tool between samples. To activate scanning mode, the <code>METHOD=scan</code> or <code>METHOD=rapid_scan</code> probe parameter should be passed in the <code>BED_MESH_CALIBRATE</code> gcode command.</p>
<h3 id="scan-height">Scan Height<a class="headerlink" href="#scan-height" title="Permanent link">&para;</a></h3>
<p>The scan height is set by the <code>horizontal_move_z</code> option in <code>[bed_mesh]</code>. In addition it can be supplied with the <code>BED_MESH_CALIBRATE</code> gcode command via the <code>HORIZONTAL_MOVE_Z</code> parameter.</p>
<p>The scan height must be sufficiently low to avoid scanning errors. Typically a height of 2mm (ie: <code>HORIZONTAL_MOVE_Z=2</code>) should work well, presuming that the probe is mounted correctly.</p>
<p>It should be noted that if the probe is more than 4mm above the surface then the results will be invalid. Thus, scanning is not possible on beds with severe surface deviation or beds with extreme tilt that hasn't been corrected.</p>
<h3 id="rapid-continuous-scanning">Rapid (Continuous) Scanning<a class="headerlink" href="#rapid-continuous-scanning" title="Permanent link">&para;</a></h3>
<p>When performing a <code>rapid_scan</code> one should keep in mind that the results will have some amount of error. This error should be low enough to be useful on large print areas with reasonably thick layer heights. Some probes may be more prone to error than others.</p>
<p>It is not recommended that rapid mode be used to scan a "dense" mesh. Some of the error introduced during a rapid scan may be gaussian noise from the sensor, and a dense mesh will reflect this noise (ie: there will be peaks and valleys).</p>
<p>Bed Mesh will attempt to optimize the travel path to provide the best possible result based on the configuration. This includes avoiding faulty regions when collecting samples and "overshooting" the mesh when changing direction. This overshoot improves sampling at the edges of a mesh, however it requires that the mesh be configured in a way that allows the tool to travel outside of the mesh.</p>
<div class="highlight"><pre><span></span><code>[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 35, 6
mesh_max: 240, 198
probe_count: 5
scan_overshoot: 8
</code></pre></div>
<ul>
<li><code>scan_overshoot</code> <em>Default Value: 0 (disabled)</em> The maximum amount of travel (in mm) available outside of the mesh. For rectangular beds this applies to travel on the X axis, and for round beds it applies to the entire radius. The tool must be able to travel the amount specified outside of the mesh. This value is used to optimize the travel path when performing a "rapid scan". The minimum value that may be specified is 1. The default is no overshoot.</li>
</ul>
<p>If no scan overshoot is configured then travel path optimization will not be applied to changes in direction.</p>
<h2 id="g">床网 G代码<a class="headerlink" href="#g" title="Permanent link">&para;</a></h2>
<h3 id="_11">校准<a class="headerlink" href="#_11" title="Permanent link">&para;</a></h3>
<p><code>BED_MESH_CALIBRATE PROFILE=&lt;name&gt; METHOD=[manual | automatic] [&lt;probe_parameter&gt;=&lt;value&gt;] [&lt;mesh_parameter&gt;=&lt;value&gt;] [ADAPTIVE=[0|1] [ADAPTIVE_MARGIN=&lt;value&gt;]</code> <em>Default Profile: default</em> <em>Default Method: automatic if a probe is detected, otherwise manual</em> <em>Default Adaptive: 0</em> <em>Default Adaptive Margin: 0</em></p>
<p><code>BED_MESH_CALIBRATE PROFILE=&lt;name&gt; METHOD=[manual | automatic | scan | rapid_scan] \ [&lt;probe_parameter&gt;=&lt;value&gt;] [&lt;mesh_parameter&gt;=&lt;value&gt;] [ADAPTIVE=[0|1] \ [ADAPTIVE_MARGIN=&lt;value&gt;]</code> <em>Default Profile: default</em> <em>Default Method: automatic if a probe is detected, otherwise manual</em> <em>Default Adaptive: 0</em> <em>Default Adaptive Margin: 0</em></p>
<p>启动床网校准的探测程序。</p>
<p>网格将被保存到由 <code>PROFILE</code> 参数指定的配置中,如果没有指定,则使用 <code>default</code>。如果选择了 <code>METHOD=manual</code> ,那么将进行手动探测。在自动和手动探测之间切换时,生成的网格点会自动调整。</p>
<p>The mesh will be saved into a profile specified by the <code>PROFILE</code> parameter, or <code>default</code> if unspecified. The <code>METHOD</code> parameter takes one of the following values:</p>
<ul>
<li><code>METHOD=manual</code>: enables manual probing using the nozzle and the paper test</li>
<li><code>METHOD=automatic</code>: Automatic (standard) probing. This is the default.</li>
<li><code>METHOD=scan</code>: Enables surface scanning. The tool will pause over each position to collect a sample.</li>
<li><code>METHOD=rapid_scan</code>: Enables continuous surface scanning.</li>
</ul>
<p>XY positions are automatically adjusted to include the X and/or Y offsets when a probing method other than <code>manual</code> is selected.</p>
<p>可以通过指定网格参数来修改探测区域。以下参数可用:</p>
<ul>
<li>矩形打印床(笛卡尔 Cartesian<ul>
@@ -1886,6 +2092,7 @@ adaptive_margin: 5
</ul>
</li>
<li>全部打印床:<ul>
<li><code>MESH_PPS</code></li>
<li><code>ALGORITHM</code></li>
<li><code>ADAPTIVE</code></li>
<li><code>ADAPTIVE_MARGIN</code></li>
@@ -1940,6 +2147,118 @@ adaptive_margin: 5
<p><code>BED_MESH_OFFSET [X=&lt;value&gt;] [Y=&lt;value&gt;] [ZFADE=&lt;value&gt;]</code></p>
<p>This is useful for printers with multiple independent extruders, as an offset is necessary to produce correct Z adjustment after a tool change. Offsets should be specified relative to the primary extruder. That is, a positive X offset should be specified if the secondary extruder is mounted to the right of the primary extruder, a positive Y offset should be specified if the secondary extruder is mounted "behind" the primary extruder, and a positive ZFADE offset should be specified if the secondary extruder's nozzle is above the primary extruder's.</p>
<p>Note that a ZFADE offset does <em>NOT</em> directly apply additional adjustment. It is intended to compensate for a <code>gcode offset</code> when <a href="#mesh-fade">mesh fade</a> is enabled. For example, if a secondary extruder is higher than the primary and needs a negative gcode offset, ie: <code>SET_GCODE_OFFSET Z=-.2</code>, it can be accounted for in <code>bed_mesh</code> with <code>BED_MESH_OFFSET ZFADE=.2</code>.</p>
<h2 id="bed-mesh-webhooks-apis">Bed Mesh Webhooks APIs<a class="headerlink" href="#bed-mesh-webhooks-apis" title="Permanent link">&para;</a></h2>
<h3 id="dumping-mesh-data">Dumping mesh data<a class="headerlink" href="#dumping-mesh-data" title="Permanent link">&para;</a></h3>
<p><code>{"id": 123, "method": "bed_mesh/dump_mesh"}</code></p>
<p>Dumps the configuration and state for the current mesh and all saved profiles.</p>
<p>The <code>dump_mesh</code> endpoint takes one optional parameter, <code>mesh_args</code>. This parameter must be an object, where the keys and values are parameters available to <a href="#bed_mesh_calibrate">BED_MESH_CALIBRATE</a>. This will update the mesh configuration and probe points using the supplied parameters prior to returning the result. It is recommended to omit mesh parameters unless it is desired to visualize the probe points and/or travel path before performing <code>BED_MESH_CALIBRATE</code>.</p>
<h2 id="visualization-and-analysis">Visualization and analysis<a class="headerlink" href="#visualization-and-analysis" title="Permanent link">&para;</a></h2>
<p>Most users will likely find that the visualizers included with applications such as Mainsail, Fluidd, and Octoprint are sufficient for basic analysis. However, Klipper's <code>scripts</code> folder contains the <code>graph_mesh.py</code> script that may be used to perform additional visualizations and more detailed analysis, particularly useful for debugging hardware or the results produced by <code>bed_mesh</code>:</p>
<div class="highlight"><pre><span></span><code>usage: graph_mesh.py [-h] {list,plot,analyze,dump} ...
Graph Bed Mesh Data
positional arguments:
{list,plot,analyze,dump}
list List available plot types
plot Plot a specified type
analyze Perform analysis on mesh data
dump Dump API response to json file
options:
-h, --help show this help message and exit
</code></pre></div>
<h3 id="pre-requisites">Pre-requisites<a class="headerlink" href="#pre-requisites" title="Permanent link">&para;</a></h3>
<p>Like most graphing tools provided by Klipper, <code>graph_mesh.py</code> requires the <code>matplotlib</code> and <code>numpy</code> python dependencies. In addition, connecting to Klipper via Moonraker's websocket requires the <code>websockets</code> python dependency. While all visualizations can be output to an <code>svg</code> file, most of the visualizations offered by <code>graph_mesh.py</code> are better viewed in live preview mode on a desktop class PC. For example, the 3D visualizations may be rotated and zoomed in preview mode, and the path visualizations can optionally be animated in preview mode.</p>
<h3 id="plotting-mesh-data">Plotting Mesh data<a class="headerlink" href="#plotting-mesh-data" title="Permanent link">&para;</a></h3>
<p>The <code>graph_mesh.py</code> tool can plot several types of visualizations. Available types can be shown by running <code>graph_mesh.py list</code>:</p>
<div class="highlight"><pre><span></span><code>graph_mesh.py list
points Plot original generated points
path Plot probe travel path
rapid Plot rapid scan travel path
probedz Plot probed Z values
meshz Plot mesh Z values
overlay Plots the current probed mesh overlaid with a profile
delta Plots the delta between current probed mesh and a profile
</code></pre></div>
<p>Several options are available when plotting visualizations:</p>
<div class="highlight"><pre><span></span><code>usage: graph_mesh.py plot [-h] [-a] [-s] [-p PROFILE_NAME] [-o OUTPUT] &lt;plot type&gt; &lt;input&gt;
positional arguments:
&lt;plot type&gt; Type of data to graph
&lt;input&gt; Path/url to Klipper Socket or path to json file
options:
-h, --help show this help message and exit
-a, --animate Animate paths in live preview
-s, --scale-plot Use axis limits reported by Klipper to scale plot X/Y
-p PROFILE_NAME, --profile-name PROFILE_NAME
Optional name of a profile to plot for &#39;probedz&#39;
-o OUTPUT, --output OUTPUT
Output file path
</code></pre></div>
<p>Below is a description of each argument:</p>
<ul>
<li><code>plot type</code>: A required positional argument designating the type of visualization to generate. Must be one of the types output by the <code>graph_mesh.py list</code> command.</li>
<li><code>input</code>: A required positional argument containing a path or url to the input source. This must be one of the following:<ul>
<li>A path to Klipper's Unix Domain Socket</li>
<li>A url to an instance of Moonraker</li>
<li>A path to a json file produced by <code>graph_mesh.py dump &lt;input&gt;</code></li>
</ul>
</li>
<li><code>-a</code>: Optional animation for the <code>path</code> and <code>rapid</code> visualization types. Animations only apply to a live preview.</li>
<li><code>-s</code>: Optionally scales a plot using the <code>axis_minimum</code> and <code>axis_maximum</code> values reported by Klipper's <code>toolhead</code> object when the dump file was generated.</li>
<li><code>-p</code>: A profile name that may be specified when generating the <code>probedz</code> 3D mesh visualization. When generating an <code>overlay</code> or <code>delta</code> visualization this argument must be provided.</li>
<li><code>-o</code>: An optional file path indicating that the script should save the visualization to this location rather than run in preview mode. Images are saved in <code>svg</code> format.</li>
</ul>
<p>For example, to plot an animated rapid path, connecting via Klipper's unix socket:</p>
<div class="highlight"><pre><span></span><code>graph_mesh.py plot -a rapid ~/printer_data/comms/klippy.sock
</code></pre></div>
<p>Or to plot a 3d visualization of the mesh, connecting via Moonraker:</p>
<div class="highlight"><pre><span></span><code>graph_mesh.py plot meshz http://my-printer.local
</code></pre></div>
<h3 id="bed-mesh-analysis">Bed Mesh Analysis<a class="headerlink" href="#bed-mesh-analysis" title="Permanent link">&para;</a></h3>
<p>The <code>graph_mesh.py</code> tool may also be used to perform an analysis on the data provided by the <a href="#dumping-mesh-data">bed_mesh/dump_mesh</a> API:</p>
<div class="highlight"><pre><span></span><code>graph_mesh.py analyze &lt;input&gt;
</code></pre></div>
<p>As with the <code>plot</code> command, the <code>&lt;input&gt;</code> must be a path to Klipper's unix socket, a URL to an instance of Moonraker, or a path to a json file generated by the dump command.</p>
<p>To begin, the analysis will perform various checks on the points and probe paths generated by <code>bed_mesh</code> at the time of the dump. This includes the following:</p>
<ul>
<li>The number of probe points generated, without any additions</li>
<li>The number of probe points generated including any points generated as the result faulty regions and/or a configured zero reference position.</li>
<li>The number of probe points generated when performing a rapid scan.</li>
<li>The total number of moves generated for a rapid scan.</li>
<li>A validation that the probe points generated for a rapid scan are identical to the probe points generated for a standard probing procedure.</li>
<li>A "backtracking" check for both the standard probe path and a rapid scan path. Backtracking can be defined as moving to the same position more than once during the probing procedure. Backtracking should never occur during a standard probe. Faulty regions <em>can</em> result in backtracking during a rapid scan in an attempt to avoid entering a faulty region when approaching or leaving a probe location, however should never occur otherwise.</li>
</ul>
<p>Next each probed mesh present in the dump will by analyzed, beginning with the mesh loaded at the time of the dump (if present) and followed by any saved profiles. The following data is extracted:</p>
<ul>
<li>Mesh shape (Min X,Y, Max X,Y Probe Count)</li>
<li>Mesh Z range, (Minimum Z, Maximum Z)</li>
<li>Mean Z value in the mesh</li>
<li>Standard Deviation of the Z values in the Mesh</li>
</ul>
<p>In addition to the above, a delta analysis is performed between meshes with the same shape, reporting the following:</p>
<ul>
<li>The range of the delta between to meshes (Minimum and Maximum)</li>
<li>The mean delta</li>
<li>Standard Deviation of the delta</li>
<li>The absolute maximum difference</li>
<li>The absolute mean</li>
</ul>
<h3 id="save-mesh-data-to-a-file">Save mesh data to a file<a class="headerlink" href="#save-mesh-data-to-a-file" title="Permanent link">&para;</a></h3>
<p>The <code>dump</code> command may be used to save the response to a file which can be shared for analysis when troubleshooting:</p>
<div class="highlight"><pre><span></span><code>graph_mesh.py dump -o &lt;output file name&gt; &lt;input&gt;
</code></pre></div>
<p>The <code>&lt;input&gt;</code> should be a path to Klipper's unix socket or a URL to an instance of Moonraker. The <code>-o</code> option may be used to specify the path to the output file. If omitted, the file will be saved in the working directory, with a file name in the following format:</p>
<p><code>klipper-bedmesh-{year}{month}{day}{hour}{minute}{second}.json</code></p>
</article>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1454,8 +1454,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1415,8 +1415,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1487,8 +1487,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1357,8 +1357,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1489,7 +1489,7 @@
<div class="highlight"><pre><span></span><code>allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 128
up ip link set $IFACE txqueuelen 128
</code></pre></div>
<h2 id="_3">终端电阻<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
@@ -1524,7 +1524,7 @@ canbus_uuid: 11aa22bb33cc
<div class="highlight"><pre><span></span><code>allow-hotplug can0
iface can0 can static
bitrate 1000000
up ifconfig $IFACE txqueuelen 128
up ip link set $IFACE txqueuelen 128
</code></pre></div>
<ul>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1277,6 +1277,13 @@
检查递增BYTES_INVALID计数器
</a>
</li>
<li class="md-nav__item">
<a href="#use-an-appropriate-txqueuelen-setting" class="md-nav__link">
Use an appropriate txqueuelen setting
</a>
</li>
<li class="md-nav__item">
@@ -1349,8 +1356,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1416,6 +1423,13 @@
检查递增BYTES_INVALID计数器
</a>
</li>
<li class="md-nav__item">
<a href="#use-an-appropriate-txqueuelen-setting" class="md-nav__link">
Use an appropriate txqueuelen setting
</a>
</li>
<li class="md-nav__item">
@@ -1478,6 +1492,17 @@ resistors</a> on the CAN bus. If the resistors are not properly installed then m
<li>已知一些用于嵌入式设备的Linux内核版本会对CAN总线消息进行重新排序。可能需要使用替代的Linux内核或者使用支持不存在此问题的主流Linux内核的替代硬件。</li>
</ol>
<p>重新排序的消息是一个必须解决的严重问题。这将导致行为不稳定,并可能导致打印的任何部分出现令人困惑的错误。</p>
<h2 id="use-an-appropriate-txqueuelen-setting">Use an appropriate txqueuelen setting<a class="headerlink" href="#use-an-appropriate-txqueuelen-setting" title="Permanent link">&para;</a></h2>
<p>The Klipper code uses the Linux kernel to manage CAN bus traffic. By default, the kernel will only queue 10 CAN transmit packets. It is recommended to <a href="CANBUS.html#host-hardware">configure the can0 device</a> with a <code>txqueuelen 128</code> to increase that size.</p>
<p>If Klipper transmits a packet and Linux has filled all of its transmit queue space then Linux will drop that packet and messages like the following will appear in the Klipper log:</p>
<div class="highlight"><pre><span></span><code>Got error -1 in can write: (105)No buffer space available
</code></pre></div>
<p>Klipper will automatically retransmit the lost messages as part of its normal application level message retransmit system. Thus, this log message is a warning and it does not indicate an unrecoverable error.</p>
<p>If a complete CAN bus failure occurs (such as a CAN wire break) then Linux will not be able to transmit any messages on the CAN bus and it is common to find the above message in the Klipper log. In this case, the log message is a symptom of a larger problem (the inability to transmit any messages) and is not directly related to Linux <code>txqueuelen</code>.</p>
<p>One may check the current queue size by running the Linux command <code>ip link show can0</code>. It should report a bunch of text including the snippet <code>qlen 128</code>. If one sees something like <code>qlen 10</code> then it indicates the CAN device has not been properly configured.</p>
<p>It is not recommended to use a <code>txqueuelen</code> significantly larger than 128. A CAN bus running at a frequency of 1000000 will typically take around 120us to transmit a CAN packet. Thus a queue of 128 packets is likely to take around 15-20ms to drain. A substantially larger queue could cause excessive spikes in message round-trip-time which could lead to unrecoverable errors. Said another way, Klipper's application retransmit system is more robust if it does not have to wait for Linux to drain an excessively large queue of possibly stale data. This is analogous to the problem of <a href="https://en.wikipedia.org/wiki/Bufferbloat">bufferbloat</a> on internet routers.</p>
<p>Under normal circumstances Klipper may utilize ~25 queue slots per MCU - typically only utilizing more slots during retransmits. (Specifically, the Klipper host may transmit up to 192 bytes to each Klipper MCU before receiving an acknowledgment from that MCU.) If a single CAN bus has 5 or more Klipper MCUs on it, then it might be necessary to increase the <code>txqueuelen</code> above the recommended value of 128. However, as above, care should be taken when selecting a new value to avoid excessive round-trip-time latency.</p>
<h2 id="candump">获取candump日志<a class="headerlink" href="#candump" title="Permanent link">&para;</a></h2>
<p>向微控制器发送和从微控制器发送的CAN总线消息由Linux内核处理。出于调试目的可以从内核捕获这些消息。这些消息的日志可能在诊断中有用。</p>
<p>Linux<a href="https://github.com/linux-can/can-utils">can-utils</a>工具提供了捕获软件。通常通过运行以下命令将其安装在计算机上:</p>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1356,8 +1356,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1356,8 +1356,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1371,8 +1371,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1407,8 +1407,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -490,8 +490,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1313,8 +1313,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1396,6 +1396,7 @@
<p>本文档涵盖了软件更新中对配置文件不向后兼容的部分。在升级 Klipper 时,最好也查看一下这份文档。</p>
<p>文档的所有日期都是大概时间。</p>
<h2 id="_2">变更<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>20240415: The <code>on_error_gcode</code> parameter in the <code>[virtual_sdcard]</code> config section now has a default. If this parameter is not specified it now defaults to <code>TURN_OFF_HEATERS</code>. If the previous behavior is desired (take no default action on an error during a virtual_sdcard print) then define <code>on_error_gcode</code> with an empty value.</p>
<p>20240313: The <code>max_accel_to_decel</code> parameter in the <code>[printer]</code> config section has been deprecated. The <code>ACCEL_TO_DECEL</code> parameter of the <code>SET_VELOCITY_LIMIT</code> command has been deprecated. The <code>printer.toolhead.max_accel_to_decel</code> status has been removed. Use the <a href="Config_Reference.html#printer">minimum_cruise_ratio parameter</a> instead. The deprecated features will be removed in the near future, and using them in the interim may result in subtly different behavior.</p>
<p>20240215: Several deprecated features have been removed. Using "NTC 100K beta 3950" as a thermistor name has been removed (deprecated on 20211110). The <code>SYNC_STEPPER_TO_EXTRUDER</code> and <code>SET_EXTRUDER_STEP_DISTANCE</code> commands have been removed, and the extruder <code>shared_heater</code> config option has been removed (deprecated on 20220210). The bed_mesh <code>relative_reference_index</code> option has been removed (deprecated on 20230619).</p>
<p>20240123: The output_pin SET_PIN CYCLE_TIME parameter has been removed. Use the new <a href="Config_Reference.html#pwm_cycle_time">pwm_cycle_time</a> module if it is necessary to dynamically change a pwm pin's cycle time.</p>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1020,6 +1020,13 @@
[smart_effector]
</a>
</li>
<li class="md-nav__item">
<a href="#probe_eddy_current" class="md-nav__link">
[probe_eddy_current]
</a>
</li>
<li class="md-nav__item">
@@ -1130,6 +1137,13 @@
[temperature_sensor]
</a>
</li>
<li class="md-nav__item">
<a href="#temperature_probe" class="md-nav__link">
[temperature_probe]
</a>
</li>
</ul>
@@ -1174,15 +1188,15 @@
</li>
<li class="md-nav__item">
<a href="#bmp280bme280bme680" class="md-nav__link">
BMP280/BME280/BME680 温度传感器
<a href="#bmp180bmp280bme280bmp388bme680-temperature-sensor" class="md-nav__link">
BMP180/BMP280/BME280/BMP388/BME680 temperature sensor
</a>
</li>
<li class="md-nav__item">
<a href="#aht10aht20aht21-temperature-sensor" class="md-nav__link">
AHT10/AHT20/AHT21 temperature sensor
<a href="#aht10aht20aht21" class="md-nav__link">
AHT10/AHT20/AHT21 温度传感器
</a>
</li>
@@ -1192,6 +1206,13 @@
HTU21D 传感器
</a>
</li>
<li class="md-nav__item">
<a href="#sht3x-sensor" class="md-nav__link">
SHT3X sensor
</a>
</li>
<li class="md-nav__item">
@@ -1630,6 +1651,53 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#load-cells" class="md-nav__link">
Load Cells
</a>
<nav class="md-nav" aria-label="Load Cells">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#load_cell" class="md-nav__link">
[load_cell]
</a>
<nav class="md-nav" aria-label="[load_cell]">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#xh711" class="md-nav__link">
XH711
</a>
</li>
<li class="md-nav__item">
<a href="#hx717" class="md-nav__link">
HX717
</a>
</li>
<li class="md-nav__item">
<a href="#ads1220" class="md-nav__link">
ADS1220
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -2504,8 +2572,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -3046,6 +3114,13 @@
[smart_effector]
</a>
</li>
<li class="md-nav__item">
<a href="#probe_eddy_current" class="md-nav__link">
[probe_eddy_current]
</a>
</li>
<li class="md-nav__item">
@@ -3156,6 +3231,13 @@
[temperature_sensor]
</a>
</li>
<li class="md-nav__item">
<a href="#temperature_probe" class="md-nav__link">
[temperature_probe]
</a>
</li>
</ul>
@@ -3200,15 +3282,15 @@
</li>
<li class="md-nav__item">
<a href="#bmp280bme280bme680" class="md-nav__link">
BMP280/BME280/BME680 温度传感器
<a href="#bmp180bmp280bme280bmp388bme680-temperature-sensor" class="md-nav__link">
BMP180/BMP280/BME280/BMP388/BME680 temperature sensor
</a>
</li>
<li class="md-nav__item">
<a href="#aht10aht20aht21-temperature-sensor" class="md-nav__link">
AHT10/AHT20/AHT21 temperature sensor
<a href="#aht10aht20aht21" class="md-nav__link">
AHT10/AHT20/AHT21 温度传感器
</a>
</li>
@@ -3218,6 +3300,13 @@
HTU21D 传感器
</a>
</li>
<li class="md-nav__item">
<a href="#sht3x-sensor" class="md-nav__link">
SHT3X sensor
</a>
</li>
<li class="md-nav__item">
@@ -3656,6 +3745,53 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#load-cells" class="md-nav__link">
Load Cells
</a>
<nav class="md-nav" aria-label="Load Cells">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#load_cell" class="md-nav__link">
[load_cell]
</a>
<nav class="md-nav" aria-label="[load_cell]">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#xh711" class="md-nav__link">
XH711
</a>
</li>
<li class="md-nav__item">
<a href="#hx717" class="md-nav__link">
HX717
</a>
</li>
<li class="md-nav__item">
<a href="#ads1220" class="md-nav__link">
ADS1220
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -4548,6 +4684,13 @@ max_temp:
#adaptive_margin:
# An optional margin (in mm) to be added around the bed area used by
# the defined print objects when generating an adaptive mesh.
#scan_overshoot:
# The maximum amount of travel (in mm) available outside of the mesh.
# For rectangular beds this applies to travel on the X axis, and for round beds
# it applies to the entire radius. The tool must be able to travel the amount
# specified outside of the mesh. This value is used to optimize the travel
# path when performing a &quot;rapid scan&quot;. The minimum value that may be specified
# is 1. The default is no overshoot.
</code></pre></div>
<h3 id="bed_tilt">[bed_tilt]<a class="headerlink" href="#bed_tilt" title="Permanent link">&para;</a></h3>
@@ -4895,6 +5038,8 @@ path:
# be provided.
#on_error_gcode:
# A list of G-Code commands to execute when an error is reported.
# See docs/Command_Templates.md for G-Code format. The default is to
# run TURN_OFF_HEATERS.
</code></pre></div>
<h3 id="sdcard_loop">[sdcard_loop]<a class="headerlink" href="#sdcard_loop" title="Permanent link">&para;</a></h3>
@@ -5278,6 +5423,38 @@ z_offset:
# 有关以上参数的更多信息,请参阅&quot;probe&quot;分段。
</code></pre></div>
<h3 id="probe_eddy_current">[probe_eddy_current]<a class="headerlink" href="#probe_eddy_current" title="Permanent link">&para;</a></h3>
<p>Support for eddy current inductive probes. One may define this section (instead of a probe section) to enable this probe. See the <a href="G-Codes.html#probe_eddy_current">command reference</a> for further information.</p>
<div class="highlight"><pre><span></span><code>[probe_eddy_current my_eddy_probe]
sensor_type: ldc1612
# The sensor chip used to perform eddy current measurements. This
# parameter must be provided and must be set to ldc1612.
#intb_pin:
# MCU gpio pin connected to the ldc1612 sensor&#39;s INTB pin (if
# available). The default is to not use the INTB pin.
#z_offset:
# The nominal distance (in mm) between the nozzle and bed that a
# probing attempt should stop at. This parameter must be provided.
#i2c_address:
#i2c_mcu:
#i2c_bus:
#i2c_software_scl_pin:
#i2c_software_sda_pin:
#i2c_speed:
# The i2c settings for the sensor chip. See the &quot;common I2C
# settings&quot; section for a description of the above parameters.
#x_offset:
#y_offset:
#speed:
#lift_speed:
#samples:
#sample_retract_dist:
#samples_result:
#samples_tolerance:
#samples_tolerance_retries:
# See the &quot;probe&quot; section for information on these parameters.
</code></pre></div>
<h3 id="axis_twist_compensation">[axis_twist_compensation]<a class="headerlink" href="#axis_twist_compensation" title="Permanent link">&para;</a></h3>
<p>A tool to compensate for inaccurate probe readings due to twist in X gantry. See the <a href="Axis_Twist_Compensation.html">Axis Twist Compensation Guide</a> for more detailed information regarding symptoms, configuration and setup.</p>
<div class="highlight"><pre><span></span><code>[axis_twist_compensation]
@@ -5514,6 +5691,59 @@ extruder:
# 以上参数的定义请见“heater_generic”章节。
</code></pre></div>
<h3 id="temperature_probe">[temperature_probe]<a class="headerlink" href="#temperature_probe" title="Permanent link">&para;</a></h3>
<p>Reports probe coil temperature. Includes optional thermal drift calibration for eddy current based probes. A <code>[temperature_probe]</code> section may be linked to a <code>[probe_eddy_current]</code> by using the same postfix for both sections.</p>
<div class="highlight"><pre><span></span><code>[temperature_probe my_probe]
#sensor_type:
#sensor_pin:
#min_temp:
#max_temp:
# Temperature sensor configuration.
# See the &quot;extruder&quot; section for the definition of the above
# parameters.
#smooth_time:
# A time value (in seconds) over which temperature measurements will
# be smoothed to reduce the impact of measurement noise. The default
# is 2.0 seconds.
#gcode_id:
# See the &quot;heater_generic&quot; section for the definition of this
# parameter.
#speed:
# The travel speed [mm/s] for xy moves during calibration. Default
# is the speed defined by the probe.
#horizontal_move_z:
# The z distance [mm] from the bed at which xy moves will occur
# during calibration. Default is 2mm.
#resting_z:
# The z distance [mm] from the bed at which the tool will rest
# to heat the probe coil during calibration. Default is .4mm
#calibration_position:
# The X, Y, Z position where the tool should be moved when
# probe drift calibration initializes. This is the location
# where the first manual probe will occur. If omitted, the
# default behavior is not to move the tool prior to the first
# manual probe.
#calibration_bed_temp:
# The maximum safe bed temperature (in C) used to heat the probe
# during probe drift calibration. When set, the calibration
# procedure will turn on the bed after the first sample is
# taken. When the calibration procedure is complete the bed
# temperature will be set to zero. When omitted the default
# behavior is not to set the bed temperature.
#calibration_extruder_temp:
# The extruder temperature (in C) set probe during drift calibration.
# When this option is supplied the procedure will wait for until the
# specified temperature is reached before requesting the first manual
# probe. When the calibration procedure is complete the extruder
# temperature will be set to 0. When omitted the default behavior is
# not to set the extruder temperature.
#extruder_heating_z: 50.
# The Z location where extruder heating will occur if the
# &quot;calibration_extruder_temp&quot; option is set. Its recommended to heat
# the extruder some distance from the bed to minimize its impact on
# the probe coil temperature. The default is 50.
</code></pre></div>
<h2 id="_18">温度传感器<a class="headerlink" href="#_18" title="Permanent link">&para;</a></h2>
<p>Klipper内置了许多类型的温度传感器的定义。这些传感器可用于任何需要温度传感器的配置分段<code>[extruder]</code><code>[heater_bed]</code> 分段)。</p>
<h3 id="_19">常见热敏电阻<a class="headerlink" href="#_19" title="Permanent link">&para;</a></h3>
@@ -5592,12 +5822,12 @@ sensor_pin:
# 每个参数的默认值在上述列表的参数名称旁边。
</code></pre></div>
<h3 id="bmp280bme280bme680">BMP280/BME280/BME680 温度传感器<a class="headerlink" href="#bmp280bme280bme680" title="Permanent link">&para;</a></h3>
<p>BMP280/BME280/BME680 两线接口 (I2C) 环境传感器。注意,这些传感器不适用于挤出机和加热床。它们可以用于监测环境温度 (C)、压力 (hPa)、相对湿度以及气体水平仅在BME680上。请参阅 <a href="https://github.com/Klipper3d/klipper/blob/master/config/sample-macros.cfg">sample-macros.cfg</a> 以获取可用于报告压力和湿度以及温度的gcode_macro。</p>
<h3 id="bmp180bmp280bme280bmp388bme680-temperature-sensor">BMP180/BMP280/BME280/BMP388/BME680 temperature sensor<a class="headerlink" href="#bmp180bmp280bme280bmp388bme680-temperature-sensor" title="Permanent link">&para;</a></h3>
<p>BMP180/BMP280/BME280/BMP388/BME680 two wire interface (I2C) environmental sensors. Note that these sensors are not intended for use with extruders and heater beds, but rather for monitoring ambient temperature (C), pressure (hPa), relative humidity and in case of the BME680 gas level. See <a href="https://github.com/Klipper3d/klipper/blob/master/config/sample-macros.cfg">sample-macros.cfg</a> for a gcode_macro that may be used to report pressure and humidity in addition to temperature.</p>
<div class="highlight"><pre><span></span><code>sensor_type: BME280
#i2c_address:
# Default is 118 (0x76). Some BME280 sensors have an address of 119
# (0x77).
# Default is 118 (0x76). The BMP180, BMP388 and some BME280 sensors
# have an address of 119 (0x77).
#i2c_mcu:
#i2c_bus:
#i2c_software_scl_pin:
@@ -5607,8 +5837,8 @@ sensor_pin:
# above parameters.
</code></pre></div>
<h3 id="aht10aht20aht21-temperature-sensor">AHT10/AHT20/AHT21 temperature sensor<a class="headerlink" href="#aht10aht20aht21-temperature-sensor" title="Permanent link">&para;</a></h3>
<p>AHT10/AHT20/AHT21 two wire interface (I2C) environmental sensors. Note that these sensors are not intended for use with extruders and heater beds, but rather for monitoring ambient temperature (C) and relative humidity. See <a href="https://github.com/Klipper3d/klipper/blob/master/config/sample-macros.cfg">sample-macros.cfg</a> for a gcode_macro that may be used to report humidity in addition to temperature.</p>
<h3 id="aht10aht20aht21">AHT10/AHT20/AHT21 温度传感器<a class="headerlink" href="#aht10aht20aht21" title="Permanent link">&para;</a></h3>
<p>AHT10/AHT20/AHT21 是两线接口I2C环境传感器。注意这些传感器不是给挤出机或者热床使用的他们通常用来测量环境温度C以及相对湿度。关于如何在gcode_macro 中使用环境温度传感器可以参考<a href="https://github.com/Klipper3d/klipper/blob/master/config/sample-macros.cfg">sample-macros.cfg</a></p>
<div class="highlight"><pre><span></span><code>sensor_type: AHT10
# Also use AHT10 for AHT20 and AHT21 sensors.
#i2c_address:
@@ -5652,6 +5882,20 @@ sensor_pin:
# Interval in seconds between readings. Default is 30
</code></pre></div>
<h3 id="sht3x-sensor">SHT3X sensor<a class="headerlink" href="#sht3x-sensor" title="Permanent link">&para;</a></h3>
<p>SHT3X family two wire interface (I2C) environmental sensor. These sensors have a range of -55~125 C, so are usable for e.g. chamber temperature monitoring. They can also function as simple fan/heater controllers.</p>
<div class="highlight"><pre><span></span><code>sensor_type: SHT3X
#i2c_address:
# Default is 68 (0x44).
#i2c_mcu:
#i2c_bus:
#i2c_software_scl_pin:
#i2c_software_sda_pin:
#i2c_speed:
# See the &quot;common I2C settings&quot; section for a description of the
# above parameters.
</code></pre></div>
<h3 id="lm75">LM75 温度传感器<a class="headerlink" href="#lm75" title="Permanent link">&para;</a></h3>
<p>LM75/LM75A两线I2C连接的温度传感器。这些传感器的温度范围为-55~125 C因此可用于例如试验室温度监测。它们还可以作为简单的风扇/加热器控制器使用。</p>
<div class="highlight"><pre><span></span><code>sensor_type: LM75
@@ -6182,38 +6426,55 @@ pins:
<p>通过 SPI 总线配置 TMC2130 步进电机驱动。要使用此功能请定义一个带有“tmc2130”前缀并后跟步进驱动配置分段相应名称的配置分段例如“[tmc2130 stepper_x]”)。</p>
<div class="highlight"><pre><span></span><code>[tmc2130 stepper_x]
cs_pin:
# 对应TMC2130芯片选择线的引脚。此引脚将在SPI消息开始时设置为
# 低电平,并在消息完成后提升为高电平。
# 必须提供此参数。
# The pin corresponding to the TMC2130 chip select line. This pin
# will be set to low at the start of SPI messages and raised to high
# after the message completes. This parameter must be provided.
#spi_speed:
#spi_bus:
#spi_software_sclk_pin:
#spi_software_mosi_pin:
#spi_software_miso_pin:
# 有关上述参数的描述请参阅“常见SPI设置”分段。
# See the &quot;common SPI settings&quot; section for a description of the
# above parameters.
#chain_position:
#chain_length:
# 这些参数配置SPI串行连接。这两个参数定义了链中的步进位置和总
# 链长。位置1对应连接到MOSI信号的步进器。
# 默认情况下不使用SPI串行连接。
# These parameters configure an SPI daisy chain. The two parameters
# define the stepper position in the chain and the total chain length.
# Position 1 corresponds to the stepper that connects to the MOSI signal.
# The default is to not use an SPI daisy chain.
#interpolate: True
# 如果为真则启用步进插值驱动器将内部以256微步的速度步进
# 这种插值确实引入了一个小的系统位置偏差 - 详情请参见TMC_Drivers.md。
# 默认为True。
# If true, enable step interpolation (the driver will internally
# step at a rate of 256 micro-steps). This interpolation does
# introduce a small systemic positional deviation - see
# TMC_Drivers.md for details. The default is True.
run_current:
# 配置驱动器在步进电机移动期间使用的电流以安培RMS为单位
# 必须提供此参数。
# The amount of current (in amps RMS) to configure the driver to use
# during stepper movement. This parameter must be provided.
#hold_current:
# 配置驱动器在步进电机不移动时使用的电流以安培RMS为单位
# 不推荐设置hold_current详见TMC_Drivers.md
# 默认情况下不降低电流。
# The amount of current (in amps RMS) to configure the driver to use
# when the stepper is not moving. Setting a hold_current is not
# recommended (see TMC_Drivers.md for details). The default is to
# not reduce the current.
#sense_resistor: 0.110
# 电机感应电阻的电阻值(以欧姆为单位)。
# 默认值为0.110欧姆。
# The resistance (in ohms) of the motor sense resistor. The default
# is 0.110 ohms.
#stealthchop_threshold: 0
# 设定“StealthChop”阈值的速度以毫米/秒为单位)。当设定时,如果步进
# 电机的速度低于此值“StealthChop”模式将被启用。
# 默认值为0此值会禁用“StealthChop”模式。
# The velocity (in mm/s) to set the &quot;stealthChop&quot; threshold to. When
# set, &quot;stealthChop&quot; mode will be enabled if the stepper motor
# velocity is below this value. The default is 0, which disables
# &quot;stealthChop&quot; mode.
#coolstep_threshold:
# The velocity (in mm/s) to set the TMC driver internal &quot;CoolStep&quot;
# threshold to. If set, the coolstep feature will be enabled when
# the stepper motor velocity is near or above this value. Important
# - if coolstep_threshold is set and &quot;sensorless homing&quot; is used,
# then one must ensure that the homing speed is above the coolstep
# threshold! The default is to not enable the coolstep feature.
#high_velocity_threshold:
# The velocity (in mm/s) to set the TMC driver internal &quot;high
# velocity&quot; threshold (THIGH) to. This is typically used to disable
# the &quot;CoolStep&quot; feature at high speeds. The default is to not set a
# TMC &quot;high velocity&quot; threshold.
#driver_MSLUT0: 2863314260
#driver_MSLUT1: 1251300522
#driver_MSLUT2: 608774441
@@ -6231,33 +6492,46 @@ run_current:
#driver_X3: 255
#driver_START_SIN: 0
#driver_START_SIN90: 247
# 这些字段直接控制Microstep Table寄存器。最佳波形表是特定于每个电机
# 的,并可能随电流变化。最优的配置将最小化由非线性步进运动引起的
# 打印件的瑕疵。上述指定的值是驱动器默认使用的值。值必须以十进制
# 整数形式指定(不支持十六进制形式)。要计算波形表字段,请参见
# Trinamic网站上的tmc2130 &quot;Calculation Sheet&quot;
# These fields control the Microstep Table registers directly. The optimal
# wave table is specific to each motor and might vary with current. An
# optimal configuration will have minimal print artifacts caused by
# non-linear stepper movement. The values specified above are the default
# values used by the driver. The value must be specified as a decimal integer
# (hex form is not supported). In order to compute the wave table fields,
# see the tmc2130 &quot;Calculation Sheet&quot; from the Trinamic website.
#driver_IHOLDDELAY: 8
#driver_TPOWERDOWN: 0
#driver_TBL: 1
#driver_TOFF: 4
#driver_HEND: 7
#driver_HSTRT: 0
#driver_VHIGHFS: 0
#driver_VHIGHCHM: 0
#driver_PWM_AUTOSCALE: True
#driver_PWM_FREQ: 1
#driver_PWM_GRAD: 4
#driver_PWM_AMPL: 128
#driver_SGT: 0
# 在配置TMC2130芯片期间设置给定的寄存器。这可以用于设置自定义电
# 机参数。
# 上述列表中每个参数的默认值都在参数名旁边。
#driver_SEMIN: 0
#driver_SEUP: 0
#driver_SEMAX: 0
#driver_SEDN: 0
#driver_SEIMIN: 0
#driver_SFILT: 0
# Set the given register during the configuration of the TMC2130
# chip. This may be used to set custom motor parameters. The
# defaults for each parameter are next to the parameter name in the
# above list.
#diag0_pin:
#diag1_pin:
# 连接到TMC2130芯片的DIAG线之一的微控制器引脚。只应指定一个diag引
# 脚。引脚是&quot;低电平有效&quot;,因此通常以&quot;^!&quot;为前缀。设置这会创建一个
# &quot;tmc2130_stepper_x:virtual_endstop&quot;虚拟引脚可以作为步进器的endstop_pin
# 使用。这样做可以启用&quot;无感应归位&quot;确保也将driver_SGT设置为适当的敏感
# 度值。)
# 默认情况下不启用无感应归位。
# The micro-controller pin attached to one of the DIAG lines of the
# TMC2130 chip. Only a single diag pin should be specified. The pin
# is &quot;active low&quot; and is thus normally prefaced with &quot;^!&quot;. Setting
# this creates a &quot;tmc2130_stepper_x:virtual_endstop&quot; virtual pin
# which may be used as the stepper&#39;s endstop_pin. Doing this enables
# &quot;sensorless homing&quot;. (Be sure to also set driver_SGT to an
# appropriate sensitivity value.) The default is to not enable
# sensorless homing.
</code></pre></div>
<h3 id="tmc2208">[tmc2208]<a class="headerlink" href="#tmc2208" title="Permanent link">&para;</a></h3>
@@ -6328,6 +6602,13 @@ run_current:
#sense_resistor: 0.110
#stealthchop_threshold: 0
# See the &quot;tmc2208&quot; section for the definition of these parameters.
#coolstep_threshold:
# The velocity (in mm/s) to set the TMC driver internal &quot;CoolStep&quot;
# threshold to. If set, the coolstep feature will be enabled when
# the stepper motor velocity is near or above this value. Important
# - if coolstep_threshold is set and &quot;sensorless homing&quot; is used,
# then one must ensure that the homing speed is above the coolstep
# threshold! The default is to not enable the coolstep feature.
#uart_address:
# The address of the TMC2209 chip for UART messages (an integer
# between 0 and 3). This is typically used when multiple TMC2209
@@ -6347,6 +6628,11 @@ run_current:
#driver_PWM_GRAD: 14
#driver_PWM_OFS: 36
#driver_SGTHRS: 0
#driver_SEMIN: 0
#driver_SEUP: 0
#driver_SEMAX: 0
#driver_SEDN: 0
#driver_SEIMIN: 0
# Set the given register during the configuration of the TMC2209
# chip. This may be used to set custom motor parameters. The
# defaults for each parameter are next to the parameter name in the
@@ -6459,6 +6745,18 @@ run_current:
# set, &quot;stealthChop&quot; mode will be enabled if the stepper motor
# velocity is below this value. The default is 0, which disables
# &quot;stealthChop&quot; mode.
#coolstep_threshold:
# The velocity (in mm/s) to set the TMC driver internal &quot;CoolStep&quot;
# threshold to. If set, the coolstep feature will be enabled when
# the stepper motor velocity is near or above this value. Important
# - if coolstep_threshold is set and &quot;sensorless homing&quot; is used,
# then one must ensure that the homing speed is above the coolstep
# threshold! The default is to not enable the coolstep feature.
#high_velocity_threshold:
# The velocity (in mm/s) to set the TMC driver internal &quot;high
# velocity&quot; threshold (THIGH) to. This is typically used to disable
# the &quot;CoolStep&quot; feature at high speeds. The default is to not set a
# TMC &quot;high velocity&quot; threshold.
#driver_MSLUT0: 2863314260
#driver_MSLUT1: 1251300522
#driver_MSLUT2: 608774441
@@ -6574,6 +6872,18 @@ run_current:
# set, &quot;stealthChop&quot; mode will be enabled if the stepper motor
# velocity is below this value. The default is 0, which disables
# &quot;stealthChop&quot; mode.
#coolstep_threshold:
# The velocity (in mm/s) to set the TMC driver internal &quot;CoolStep&quot;
# threshold to. If set, the coolstep feature will be enabled when
# the stepper motor velocity is near or above this value. Important
# - if coolstep_threshold is set and &quot;sensorless homing&quot; is used,
# then one must ensure that the homing speed is above the coolstep
# threshold! The default is to not enable the coolstep feature.
#high_velocity_threshold:
# The velocity (in mm/s) to set the TMC driver internal &quot;high
# velocity&quot; threshold (THIGH) to. This is typically used to disable
# the &quot;CoolStep&quot; feature at high speeds. The default is to not set a
# TMC &quot;high velocity&quot; threshold.
#driver_MSLUT0: 2863314260
#driver_MSLUT1: 1251300522
#driver_MSLUT2: 608774441
@@ -7225,6 +7535,86 @@ adc2:
# 关于上述参数的描述请参见&quot;filament_switch_sensor&quot;章节。
</code></pre></div>
<h2 id="load-cells">Load Cells<a class="headerlink" href="#load-cells" title="Permanent link">&para;</a></h2>
<h3 id="load_cell">[load_cell]<a class="headerlink" href="#load_cell" title="Permanent link">&para;</a></h3>
<p>Load Cell. Uses an ADC sensor attached to a load cell to create a digital scale.</p>
<div class="highlight"><pre><span></span><code>[load_cell]
sensor_type:
# This must be one of the supported sensor types, see below.
</code></pre></div>
<h4 id="xh711">XH711<a class="headerlink" href="#xh711" title="Permanent link">&para;</a></h4>
<p>This is a 24 bit low sample rate chip using "bit-bang" communications. It is suitable for filament scales.</p>
<div class="highlight"><pre><span></span><code>[load_cell]
sensor_type: hx711
sclk_pin:
# The pin connected to the HX711 clock line. This parameter must be provided.
dout_pin:
# The pin connected to the HX711 data output line. This parameter must be
# provided.
#gain: A-128
# Valid values for gain are: A-128, A-64, B-32. The default is A-128.
# &#39;A&#39; denotes the input channel and the number denotes the gain. Only the 3
# listed combinations are supported by the chip. Note that changing the gain
# setting also selects the channel being read.
#sample_rate: 80
# Valid values for sample_rate are 80 or 10. The default value is 80.
# This must match the wiring of the chip. The sample rate cannot be changed
# in software.
</code></pre></div>
<h4 id="hx717">HX717<a class="headerlink" href="#hx717" title="Permanent link">&para;</a></h4>
<p>This is the 4x higher sample rate version of the HX711, suitable for probing.</p>
<div class="highlight"><pre><span></span><code>[load_cell]
sensor_type: hx717
sclk_pin:
# The pin connected to the HX717 clock line. This parameter must be provided.
dout_pin:
# The pin connected to the HX717 data output line. This parameter must be
# provided.
#gain: A-128
# Valid values for gain are A-128, B-64, A-64, B-8.
# &#39;A&#39; denotes the input channel and the number denotes the gain setting.
# Only the 4 listed combinations are supported by the chip. Note that
# changing the gain setting also selects the channel being read.
#sample_rate: 320
# Valid values for sample_rate are: 10, 20, 80, 320. The default is 320.
# This must match the wiring of the chip. The sample rate cannot be changed
# in software.
</code></pre></div>
<h4 id="ads1220">ADS1220<a class="headerlink" href="#ads1220" title="Permanent link">&para;</a></h4>
<p>The ADS1220 is a 24 bit ADC supporting up to a 2Khz sample rate configurable in software.</p>
<div class="highlight"><pre><span></span><code>[load_cell]
sensor_type: ads1220
cs_pin:
# The pin connected to the ADS1220 chip select line. This parameter must
# be provided.
#spi_speed: 512000
# This chip supports 2 speeds: 256000 or 512000. The faster speed is only
# enabled when one of the Turbo sample rates is used. The correct spi_speed
# is selected based on the sample rate.
#spi_bus:
#spi_software_sclk_pin:
#spi_software_mosi_pin:
#spi_software_miso_pin:
# See the &quot;common SPI settings&quot; section for a description of the
# above parameters.
data_ready_pin:
# Pin connected to the ADS1220 data ready line. This parameter must be
# provided.
#gain: 128
# Valid gain values are 128, 64, 32, 16, 8, 4, 2, 1
# The default is 128
#sample_rate: 660
# This chip supports two ranges of sample rates, Normal and Turbo. In turbo
# mode the chips c internal clock runs twice as fast and the SPI communication
# speed is also doubled.
# Normal sample rates: 20, 45, 90, 175, 330, 600, 1000
# Turbo sample rates: 40, 90, 180, 350, 660, 1200, 2000
# The default is 660
</code></pre></div>
<h2 id="_28">控制板特定硬件支持<a class="headerlink" href="#_28" title="Permanent link">&para;</a></h2>
<h3 id="sx1509">[sx1509]<a class="headerlink" href="#sx1509" title="Permanent link">&para;</a></h3>
<p>将一个 SX1509 I2C 配置为 GPIO 扩展器。由于 I2C 通信本身的延迟,不应将 SX1509 引脚用作步进电机的 enable (启用)、step步进或 dir (方向)引脚或任何其他需要快速 bit-banging位拆裂的引脚。它们最适合用作静态或G代码控制的数字输出或硬件 pwm 引脚例如风扇。可以使用“sx1509”前缀定义任意数量的分段。每个扩展器提供可用于打印机配置的一组 16 个引脚sx1509_my_sx1509:PIN_0 到 sx1509_my_sx1509:PIN_15</p>
@@ -7446,7 +7836,7 @@ cs_pin:
<nav class="md-footer__inner md-grid" aria-label="页脚">
<a href="Installation.html" class="md-footer__link md-footer__link--prev" aria-label="上一页: 安装" rel="prev">
<a href="OctoPrint.html" class="md-footer__link md-footer__link--prev" aria-label="上一页: OctoPrint for Klipper" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</div>
@@ -7455,7 +7845,7 @@ cs_pin:
<span class="md-footer__direction">
上一页
</span>
安装
OctoPrint for Klipper
</div>
</div>
</a>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1371,8 +1371,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -539,8 +539,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1362,8 +1362,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1370,8 +1370,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1351,8 +1351,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

1519
zh/Eddy_Probe.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1330,8 +1330,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1315,8 +1315,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1342,8 +1342,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -651,8 +651,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1474,8 +1474,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -497,8 +497,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1320,8 +1320,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1911,6 +1911,33 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#probe_eddy_current" class="md-nav__link">
[probe_eddy_current]
</a>
<nav class="md-nav" aria-label="[probe_eddy_current]">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#probe_eddy_current_calibrate" class="md-nav__link">
PROBE_EDDY_CURRENT_CALIBRATE
</a>
</li>
<li class="md-nav__item">
<a href="#ldc_calibrate_drive_current" class="md-nav__link">
LDC_CALIBRATE_DRIVE_CURRENT
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -2375,6 +2402,54 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#temperature_probe" class="md-nav__link">
[temperature_probe]
</a>
<nav class="md-nav" aria-label="[temperature_probe]">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#temperature_probe_calibrate" class="md-nav__link">
TEMPERATURE_PROBE_CALIBRATE
</a>
</li>
<li class="md-nav__item">
<a href="#temperature_probe_next" class="md-nav__link">
TEMPERATURE_PROBE_NEXT
</a>
</li>
<li class="md-nav__item">
<a href="#temperature_probe_complete" class="md-nav__link">
TEMPERATURE_PROBE_COMPLETE:
</a>
</li>
<li class="md-nav__item">
<a href="#abort" class="md-nav__link">
ABORT
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#temperature_probe_enable" class="md-nav__link">
TEMPERATURE_PROBE_ENABLE
</a>
</li>
</ul>
@@ -2890,8 +2965,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -4056,6 +4131,33 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#probe_eddy_current" class="md-nav__link">
[probe_eddy_current]
</a>
<nav class="md-nav" aria-label="[probe_eddy_current]">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#probe_eddy_current_calibrate" class="md-nav__link">
PROBE_EDDY_CURRENT_CALIBRATE
</a>
</li>
<li class="md-nav__item">
<a href="#ldc_calibrate_drive_current" class="md-nav__link">
LDC_CALIBRATE_DRIVE_CURRENT
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
@@ -4520,6 +4622,54 @@
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#temperature_probe" class="md-nav__link">
[temperature_probe]
</a>
<nav class="md-nav" aria-label="[temperature_probe]">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#temperature_probe_calibrate" class="md-nav__link">
TEMPERATURE_PROBE_CALIBRATE
</a>
</li>
<li class="md-nav__item">
<a href="#temperature_probe_next" class="md-nav__link">
TEMPERATURE_PROBE_NEXT
</a>
</li>
<li class="md-nav__item">
<a href="#temperature_probe_complete" class="md-nav__link">
TEMPERATURE_PROBE_COMPLETE:
</a>
</li>
<li class="md-nav__item">
<a href="#abort" class="md-nav__link">
ABORT
</a>
</li>
</ul>
</nav>
</li>
<li class="md-nav__item">
<a href="#temperature_probe_enable" class="md-nav__link">
TEMPERATURE_PROBE_ENABLE
</a>
</li>
</ul>
@@ -4877,6 +5027,12 @@ section</a> is enabled.</p>
<p><code>PROBE_CALIBRATE [SPEED=&lt;speed&gt;] [&lt;probe_parameter&gt;=&lt;value&gt;]</code>:运行一个对校准测头的z_offset有用的辅助脚本。有关可选测头参数的详细信息请参见PROBE命令。参见MANUAL_PROBE命令了解SPEED参数和工具激活时可用的附加命令的详细信息。请注意PROBE_CALIBRATE命令使用速度变量在XY方向以及Z方向上移动。</p>
<h4 id="z_offset_apply_probe">Z_OFFSET_APPLY_PROBE<a class="headerlink" href="#z_offset_apply_probe" title="Permanent link">&para;</a></h4>
<p><code>Z_OFFSET_APPLY_PROBE</code>将当前的Z 的 G 代码偏移量(就是 babystepping从 probe 的 z_offset 中减去。该命令将持久化一个常用babystepping 微调值。需要执行 <code>SAVE_CONFIG</code>才能生效。</p>
<h3 id="probe_eddy_current">[probe_eddy_current]<a class="headerlink" href="#probe_eddy_current" title="Permanent link">&para;</a></h3>
<p>The following commands are available when a <a href="Config_Reference.html#probe_eddy_current">probe_eddy_current config section</a> is enabled.</p>
<h4 id="probe_eddy_current_calibrate">PROBE_EDDY_CURRENT_CALIBRATE<a class="headerlink" href="#probe_eddy_current_calibrate" title="Permanent link">&para;</a></h4>
<p><code>PROBE_EDDY_CURRENT_CALIBRATE CHIP=&lt;config_name&gt;</code>: This starts a tool that calibrates the sensor resonance frequencies to corresponding Z heights. The tool will take a couple of minutes to complete. After completion, use the SAVE_CONFIG command to store the results in the printer.cfg file.</p>
<h4 id="ldc_calibrate_drive_current">LDC_CALIBRATE_DRIVE_CURRENT<a class="headerlink" href="#ldc_calibrate_drive_current" title="Permanent link">&para;</a></h4>
<p><code>LDC_CALIBRATE_DRIVE_CURRENT CHIP=&lt;config_name&gt;</code> This tool will calibrate the ldc1612 DRIVE_CURRENT0 register. Prior to using this tool, move the sensor so that it is near the center of the bed and about 20mm above the bed surface. Run this command to determine an appropriate DRIVE_CURRENT for the sensor. After running this command use the SAVE_CONFIG command to store that new setting in the printer.cfg config file.</p>
<h3 id="pwm_cycle_time">[pwm_cycle_time]<a class="headerlink" href="#pwm_cycle_time" title="Permanent link">&para;</a></h3>
<p>The following command is available when a <a href="Config_Reference.html#pwm_cycle_time">pwm_cycle_time config section</a> is enabled.</p>
<h4 id="set_pin_1">SET_PIN<a class="headerlink" href="#set_pin_1" title="Permanent link">&para;</a></h4>
@@ -5006,6 +5162,18 @@ section</a> is enabled.</p>
<p>The following commands are available when the <a href="Config_Reference.html#z_tilt">z_tilt config section</a> is enabled.</p>
<h4 id="z_tilt_adjust">Z_TILT_ADJUST<a class="headerlink" href="#z_tilt_adjust" title="Permanent link">&para;</a></h4>
<p>`Z_TILT_ADJUST[HORIZONTAL_MOVE_Z=<value>][<probe_parameter>=<value>&gt;此命令将探测配置中指定的点然后对每个Z步进器进行独立调整以补偿倾斜。有关可选探测参数的详细信息请参阅PROBE命令。可选的“HORIZONTAL_MOVE_Z”值将覆盖配置文件中指定的“HORIZONTAL_MOVE_Z”选项。</p>
<h3 id="temperature_probe">[temperature_probe]<a class="headerlink" href="#temperature_probe" title="Permanent link">&para;</a></h3>
<p>The following commands are available when a <a href="Config_Reference.html#temperature_probe">temperature_probe config section</a> is enabled.</p>
<h4 id="temperature_probe_calibrate">TEMPERATURE_PROBE_CALIBRATE<a class="headerlink" href="#temperature_probe_calibrate" title="Permanent link">&para;</a></h4>
<p><code>TEMPERATURE_PROBE_CALIBRATE [PROBE=&lt;probe name&gt;] [TARGET=&lt;value&gt;] [STEP=&lt;value&gt;]</code>: Initiates probe drift calibration for eddy current based probes. The <code>TARGET</code> is a target temperature for the last sample. When the temperature recorded during a sample exceeds the <code>TARGET</code> calibration will complete. The <code>STEP</code> parameter sets temperature delta (in C) between samples. After a sample has been taken, this delta is used to schedule a call to <code>TEMPERATURE_PROBE_NEXT</code>. The default <code>STEP</code> is 2.</p>
<h4 id="temperature_probe_next">TEMPERATURE_PROBE_NEXT<a class="headerlink" href="#temperature_probe_next" title="Permanent link">&para;</a></h4>
<p><code>TEMPERATURE_PROBE_NEXT</code>: After calibration has started this command is run to take the next sample. It is automatically scheduled to run when the delta specified by <code>STEP</code> has been reached, however its also possible to manually run this command to force a new sample. This command is only available during calibration.</p>
<h4 id="temperature_probe_complete">TEMPERATURE_PROBE_COMPLETE:<a class="headerlink" href="#temperature_probe_complete" title="Permanent link">&para;</a></h4>
<p><code>TEMPERATURE_PROBE_COMPLETE</code>: Can be used to end calibration and save the current result before the <code>TARGET</code> temperature is reached. This command is only available during calibration.</p>
<h4 id="abort">ABORT<a class="headerlink" href="#abort" title="Permanent link">&para;</a></h4>
<p><code>ABORT</code>: Aborts the calibration process, discarding the current results. This command is only available during drift calibration.</p>
<h3 id="temperature_probe_enable">TEMPERATURE_PROBE_ENABLE<a class="headerlink" href="#temperature_probe_enable" title="Permanent link">&para;</a></h3>
<p><code>TEMPERATURE_PROBE_ENABLE ENABLE=[0|1]</code>: Sets temperature drift compensation on or off. If ENABLE is set to 0, drift compensation will be disabled, if set to 1 it is enabled.</p>
</article>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1343,8 +1343,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1518,13 +1518,13 @@ index: 1
<a href="Sponsors.html" class="md-footer__link md-footer__link--next" aria-label="下一页: 赞助" rel="next">
<a href="Eddy_Probe.html" class="md-footer__link md-footer__link--next" aria-label="下一页: Eddy 感应涡流探针" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
赞助
Eddy 感应涡流探针
</div>
</div>
<div class="md-footer__button md-icon">

View File

@@ -477,27 +477,34 @@
获取 Klipper 配置文件
</a>
</li>
<li class="md-nav__item">
<a href="#interacting-with-klipper" class="md-nav__link">
Interacting with Klipper
</a>
</li>
<li class="md-nav__item">
<a href="#obtaining-an-os-image-for-sbcs" class="md-nav__link">
Obtaining an OS image for SBC's
</a>
</li>
<li class="md-nav__item">
<a href="#installing-via-kiauh" class="md-nav__link">
Installing via KIAUH
</a>
</li>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
准备操作系统镜像
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
构建和刷写微控制器
</a>
</li>
<li class="md-nav__item">
<a href="#klipper-octoprint" class="md-nav__link">
为Klipper配置 OctoPrint
</a>
</li>
<li class="md-nav__item">
@@ -522,8 +529,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1345,8 +1352,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1405,27 +1412,34 @@
获取 Klipper 配置文件
</a>
</li>
<li class="md-nav__item">
<a href="#interacting-with-klipper" class="md-nav__link">
Interacting with Klipper
</a>
</li>
<li class="md-nav__item">
<a href="#obtaining-an-os-image-for-sbcs" class="md-nav__link">
Obtaining an OS image for SBC's
</a>
</li>
<li class="md-nav__item">
<a href="#installing-via-kiauh" class="md-nav__link">
Installing via KIAUH
</a>
</li>
<li class="md-nav__item">
<a href="#_2" class="md-nav__link">
准备操作系统镜像
</a>
</li>
<li class="md-nav__item">
<a href="#_3" class="md-nav__link">
构建和刷写微控制器
</a>
</li>
<li class="md-nav__item">
<a href="#klipper-octoprint" class="md-nav__link">
为Klipper配置 OctoPrint
</a>
</li>
<li class="md-nav__item">
@@ -1453,22 +1467,27 @@
<h1 id="_1">安装<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h1>
<p>本教程假定软件将会在树莓派上和 Octoprint 一起运行。推荐使用树莓派2/3/4作为主机关于其他设备请见<a href="FAQ.html#我可以在-Raspberry-Pi-3-以外的其他设备上运行-Klipper-吗?">常见问题</a>)。</p>
<p>These instructions assume the software will run on a linux based host running a Klipper compatible front end. It is recommended that a SBC(Small Board Computer) such as a Raspberry Pi or Debian based Linux device be used as the host machine (see the <a href="FAQ.html#can-i-run-klipper-on-something-other-than-a-raspberry-pi-3">FAQ</a> for other options).</p>
<p>For the purposes of these instructions host relates to the Linux device and mcu relates to the printboard. SBC relates to the term Small Board Computer such as the Raspberry Pi.</p>
<h2 id="klipper">获取 Klipper 配置文件<a class="headerlink" href="#klipper" title="Permanent link">&para;</a></h2>
<p>大多数的 Klipper 设置是由保存在树莓派上的"打印机配置文件"决定的。通常可以在Klipper <a href="https://github.com/Klipper3d/klipper/blob/master/config/">配置文件夹</a>中找到一个以"printer-"前缀开头并与目标打印机相对应的配置文件。Klipper 配置文件包含安装过程中需要的打印机技术信息。</p>
<p>Most Klipper settings are determined by a "printer configuration file" printer.cfg, that will be stored on the host. An appropriate configuration file can often be found by looking in the Klipper <a href="https://github.com/Klipper3d/klipper/blob/master/config/">config directory</a> for a file starting with a "printer-" prefix that corresponds to the target printer. The Klipper configuration file contains technical information about the printer that will be needed during the installation.</p>
<p>如果 Klipper 配置目录中没有合适的打印机配置文件,请尝试搜索打印机制造商的网站,看看他们是否有合适的 Klipper 配置文件。</p>
<p>如果找不到打印机的配置文件但可以找到打印机控制板的类型则可以查找以“generic-”前缀开头的适当 <a href="https://github.com/Klipper3d/klipper/blob/master/config/">配置文件</a>。这些示例打印机模板文件应该足以成功完成初始安装,但需要进行一些自定义才能获得完整的打印机功能。</p>
<p>也可以从头开始定义一个新的打印机配置。然而,这需要关于打印机及其电子系统的大量技术知识。建议大多数用户从一个适当的配置文件开始。如果需要创建一个新的自定义打印机配置文件,那么可以先从最接近的<a href="https://github.com/Klipper3d/klipper/blob/master/config/">配置文件</a>的例子开始,并从 Klipper <a href="Config_Reference.html">配置参考文档</a>了解进一步信息。</p>
<h2 id="_2">准备操作系统镜像<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>先在树莓派上安装 <a href="https://github.com/guysoft/OctoPi">OctoPi</a>。请使用OctoPi v0.17.0或更高版本,查看 <a href="https://github.com/guysoft/OctoPi/releases">Octopi 发行版</a>来获取最新发布版本。安装完系统后,请先验证 OctoPi 能正常启动,并且 OctoPrint 网络服务器正常运行。连接到 OctoPrint 网页后,按照提示将 OctoPrint 更新到v1.4.2或更高版本。</p>
<p>在安装 OctoPi 和升级 OctoPrint 后,用 ssh 连接目标设备以运行少量的系统命令。如果使用Linux或MacOS系统那么 "ssh"软件应该已经预装在系统上。有一些免费的ssh客户端可用于其他操作系统例如<a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/">PuTTY</a>。使用ssh工具连接到Raspberry Pissh pi@octopi --密码是 "raspberry"),并运行以下命令:</p>
<div class="highlight"><pre><span></span><code>git clone https://github.com/Klipper3d/klipper
./klipper/scripts/install-octopi.sh
</code></pre></div>
<p>以上将会下载 Klipper 、安装一些系统依赖、设置 Klipper 在系统启动时运行并启动Klipper 主机程序。这将需要互联网连接以及可能需要几分钟时间才能完成。</p>
<h2 id="_3">构建和刷写微控制器<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<p>在编译微控制器代码之前,先在树莓派上运行这些命令:</p>
<h2 id="interacting-with-klipper">Interacting with Klipper<a class="headerlink" href="#interacting-with-klipper" title="Permanent link">&para;</a></h2>
<p>Klipper is a 3d printer firmware, so it needs some way for the user to interact with it.</p>
<p>Currently the best choices are front ends that retrieve information through the <a href="https://moonraker.readthedocs.io/">Moonraker web API</a> and there is also the option to use <a href="https://octoprint.org/">Octoprint</a> to control Klipper.</p>
<p>The choice is up to the user on what to use, but the underlying Klipper is the same in all cases. We encourage users to research the options available and make an informed decision.</p>
<h2 id="obtaining-an-os-image-for-sbcs">Obtaining an OS image for SBC's<a class="headerlink" href="#obtaining-an-os-image-for-sbcs" title="Permanent link">&para;</a></h2>
<p>There are many ways to obtain an OS image for Klipper for SBC use, most depend on what front end you wish to use. Some manafactures of these SBC boards also provide their own Klipper-centric images.</p>
<p>The two main Moonraker based front ends are <a href="https://docs.fluidd.xyz/">Fluidd</a> and <a href="https://docs.mainsail.xyz/">Mainsail</a>, the latter of which has a premade install image <a href="http://docs.mainsailOS.xyz">"MainsailOS"</a>, this has the option for Raspberry Pi and some OrangePi varianta.</p>
<p>Fluidd can be installed via KIAUH(Klipper Install And Update Helper), which is explained below and is a 3rd party installer for all things Klipper.</p>
<p>OctoPrint can be installed via the popular OctoPi image or via KIAUH, this process is explained in <OctoPrint.md></p>
<h2 id="installing-via-kiauh">Installing via KIAUH<a class="headerlink" href="#installing-via-kiauh" title="Permanent link">&para;</a></h2>
<p>Normally you would start with a base image for your SBC, RPiOS Lite for example, or in the case of a x86 Linux device, Ubuntu Server. Please note that Desktop variants are not recommended due to certain helper programs that can stop some Klipper functions working and even mask access to some print boards.</p>
<p>KIAUH can be used to install Klipper and its associated programs on a variety of Linux based systems that run a form of Debian. More information can be found at <a href="https://github.com/dw-0/kiauh">https://github.com/dw-0/kiauh</a></p>
<h2 id="_2">构建和刷写微控制器<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>To compile the micro-controller code, start by running these commands on your host device:</p>
<div class="highlight"><pre><span></span><code>cd ~/klipper/
make menuconfig
</code></pre></div>
@@ -1486,26 +1505,28 @@ make menuconfig
<div class="highlight"><pre><span></span><code>/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
</code></pre></div>
<p>通常每一个打印机都有自己独特的串口名,这个独特串口名将会在刷写微处理器时用到。在上述输出中可能有多行。如果是这样的话选择与微控制器相应的 (查看<a href="FAQ.html#wheres-my-serial-port">FAQ</a>了解更多信息).</p>
<p>对于常见的微控制器,可以用类似以下的方法来刷写固件:</p>
<p>It's common for each printer to have its own unique serial port name. This unique name will be used when flashing the micro-controller. It's possible there may be multiple lines in the above output - if so, choose the line corresponding to the micro-controller. If many items are listed and the choice is ambiguous, unplug the board and run the command again, the missing item will be your print board(see the <a href="FAQ.html#wheres-my-serial-port">FAQ</a> for more information).</p>
<p>For common micro-controllers with STM32 or clone chips, LPC chips and others it is usual that these need an initial Klipper flash via SD card.</p>
<p>When flashing with this method, it is important to make sure that the print board is not connected with USB to the host, due to some boards being able to feed power back to the board and stopping a flash from occuring.</p>
<p>For common micro-controllers using Atmega chips, for example the 2560, the code can be flashed with something similar to:</p>
<div class="highlight"><pre><span></span><code>sudo service klipper stop
make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
sudo service klipper start
</code></pre></div>
<p>请务必用打印机的唯一串行端口名称来更新 FLASH_DEVICE 参数。</p>
<p>第一次刷写时要确保 OctoPrint 没有直接连接到打印机(在 OctoPrint 网页的 "连接 "分段中点击 "断开连接")。</p>
<h2 id="klipper-octoprint">为Klipper配置 OctoPrint<a class="headerlink" href="#klipper-octoprint" title="Permanent link">&para;</a></h2>
<p>OctoPrint网络服务器需要进行配置以便与Klipper host 软件进行通信。使用网络浏览器登录到OctoPrint网页然后配置以下项目</p>
<p>导航到 "设置 "(页面顶部的扳手图标)。在 "串行连接 "下的 "附加串行端口 "中添加"/tmp/printer"。然后点击 "保存"。</p>
<p>再次进入 "设置",在 "串行连接" 下将 "串行端口" 设置改为"/tmp/printer"。</p>
<p>在 "设置 "中,浏览到 "Behavior "子选项卡,选择 "取消任何正在进行的打印,但保持与打印机的连接 "选项。点击 "保存"。</p>
<p>在主页上,在 "连接 "部分(在页面的左上方),确保 "串行端口 "被设置为"/tmp/printer",然后点击 "连接"。(如果"/tmp/printer "不是一个可用的选择,那么试着重新加载页面)</p>
<p>连接后,导航到 "终端 "选项卡,在命令输入框中输入 "status"(不带引号),然后点击 "发送"。终端窗口可能会报告在打开配置文件时出现了错误--这意味着 OctoPrint 与 Klipper 成功地进行了通信。继续下一部分。</p>
<p>For common micro-controllers using RP2040 chips, the code can be flashed with something similar to:</p>
<div class="highlight"><pre><span></span><code>sudo service klipper stop
make flash FLASH_DEVICE=first
sudo service klipper start
</code></pre></div>
<p>It is important to note that RP2040 chips may need to be put into Boot mode before this operation.</p>
<h2 id="klipper_1">配置 Klipper<a class="headerlink" href="#klipper_1" title="Permanent link">&para;</a></h2>
<p>下一步是将<a href="#obtain-a-klipper-configuration-file">打印机配置文件</a>复制到Raspberry Pi。</p>
<p>编写 Klipper 配置文件的最简单方法是使用支持通过“scp”和/或“sftp”协议编辑文件的桌面编辑器。一些免费提供的工具支持这一点例如Notepad ++WinSCP和Cyberduck。在编辑器中加载打印机配置文件然后将其另存为 pi 用户主目录中名为“printer.cfg”的文件即 /home/pi/printer.cfg)。</p>
<p>另外,也可以通过 ssh 在树莓派上直接复制和编辑该文件。这可能看起来像下面这样(请确保更新命令以使用适当的打印机配置文件):</p>
<p>The next step is to copy the <a href="#obtain-a-klipper-configuration-file">printer configuration file</a> to the host.</p>
<p>Arguably the easiest way to set the Klipper configuration file is using the built in editors in Mainsail or Fluidd. These will allow the user to open the configuration examples and save them to be printer.cfg.</p>
<p>Another option is to use a desktop editor that supports editing files over the "scp" and/or "sftp" protocols. There are freely available tools that support this (eg, Notepad++, WinSCP, and Cyberduck). Load the printer config file in the editor and then save it as a file named "printer.cfg" in the home directory of the pi user (ie, /home/pi/printer.cfg).</p>
<p>Alternatively, one can also copy and edit the file directly on the host via ssh. That may look something like the following (be sure to update the command to use the appropriate printer config filename):</p>
<div class="highlight"><pre><span></span><code>cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg
nano ~/printer.cfg
</code></pre></div>
@@ -1523,9 +1544,9 @@ nano ~/printer.cfg
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
</code></pre></div>
<p>在创建和编辑该文件后必须在OctoPrint网络终端发出"restart"命令以加载配置。如果Klipper配置文件被成功读取并且成功找到并配置了微控制器那么"status"命令将报告打印机已准备就绪。</p>
<p>After creating and editing the file it will be necessary to issue a "restart" command in the command console to load the config. A "status" command will report the printer is ready if the Klipper config file is successfully read and the micro-controller is successfully found and configured.</p>
<p>在定制打印机配置文件时Klipper 报告配置错误是很正常的情况。如果发生错误,请对打印机配置文件进行必要的修正,并发出"restart",直到"status"报告打印机已准备就绪。</p>
<p>Klipper通过OctoPrint终端标签报告错误信息。可以使用 "status "命令来重新报告错误信息。默认的Klipper启动脚本也在<strong>/tmp/klippy.log</strong>中放置一个日志,提供更详细的信息。</p>
<p>Klipper reports error messages via the command console and via pop up in Fluidd and Mainsail. The "status" command can be used to re-report error messages. A log is available and usually located in ~/printer_data/logs this is named klippy.log</p>
<p>在Klipper报告打印机已就绪后继续进入<a href="Config_checks.html">配置检查文件</a>,对配置文件中的定义进行一些基本检查。其他信息见主<a href="Overview.html">文档参考</a></p>
@@ -1561,13 +1582,13 @@ serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
<a href="Config_Reference.html" class="md-footer__link md-footer__link--next" aria-label="下一页: 配置参考" rel="next">
<a href="OctoPrint.html" class="md-footer__link md-footer__link--next" aria-label="下一页: OctoPrint for Klipper" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一页
</span>
配置参考
OctoPrint for Klipper
</div>
</div>
<div class="md-footer__button md-icon">

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1397,8 +1397,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1369,8 +1369,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1344,8 +1344,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1574,8 +1574,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -2354,7 +2354,7 @@ Accel_PER_HZ50#默认为75。
<div class="highlight"><pre><span></span><code>TEST_RESONANCES AXIS=Y
</code></pre></div>
<p>这将生成2个CSV文件<code>/tmp/reonances_x_*.CSV</code>和`/tmp/Reonances_y_*.CSV')。这些文件可以在树莓派上使用独立脚本进行处理。要执行此操作,请运行以下命令:</p>
<p>This will generate 2 CSV files (<code>/tmp/resonances_x_*.csv</code> and <code>/tmp/resonances_y_*.csv</code>). These files can be processed with the stand-alone script on a Raspberry Pi. This script is intended to be run with a single CSV file for each axis measured, although it can be used with multiple CSV files if you desire to average the results. Averaging results can be useful, for example, if resonance tests were done at multiple test points. Delete the extra CSV files if you do not desire to average them.</p>
<div class="highlight"><pre><span></span><code>~/klipper/scripts/calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
~/klipper/scripts/calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png
</code></pre></div>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1284,8 +1284,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -444,8 +444,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1267,8 +1267,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

1537
zh/OctoPrint.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -511,8 +511,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1334,8 +1334,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1446,7 +1446,10 @@
</ul>
<h2 id="_3">安装和配置<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<ul>
<li><a href="Installation.html">安装</a>Klipper 安装指南。</li>
<li><a href="Installation.html">安装</a>Klipper 安装指南。<ul>
<li><a href="OctoPrint.html">Octoprint</a>: Guide to installing Octoprint with Klipper.</li>
</ul>
</li>
<li><a href="Config_Reference.html">配置参考</a>:配置参数说明。<ul>
<li><a href="Rotation_Distance.html">旋转距离</a>:计算旋转距离(rotation_distance)步进参数。</li>
</ul>
@@ -1506,6 +1509,7 @@
</li>
<li><a href="TSL1401CL_Filament_Width_Sensor.html">TSL1401CL 耗材线径传感器</a></li>
<li><a href="Hall_Filament_Width_Sensor.html">霍尔打印丝宽度传感器</a></li>
<li><a href="Eddy_Probe.html">Eddy Current Inductive probe</a></li>
</ul>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1336,8 +1336,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1322,8 +1322,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1345,8 +1345,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1423,8 +1423,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1364,8 +1364,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -566,8 +566,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1389,8 +1389,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1440,8 +1440,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1663,7 +1663,7 @@
<p>首先,测量<strong>振纹频率</strong></p>
<ol>
<li>如果<code>square_corner_velocity</code>参数已更改请将其恢复到5.0。当使用输入整形器时,不建议增加它,因为它会导致零件更加平滑——最好使用更高的加速度值。</li>
<li>Disable the <code>miminum_cruise_ratio</code> feature by issuing the following command: <code>SET_VELOCITY_LIMIT MINIMUM_CRUISE_RATIO=0</code></li>
<li>Disable the <code>minimum_cruise_ratio</code> feature by issuing the following command: <code>SET_VELOCITY_LIMIT MINIMUM_CRUISE_RATIO=0</code></li>
<li>Disable Pressure Advance: <code>SET_PRESSURE_ADVANCE ADVANCE=0</code></li>
<li>如果你已经将<code>[input_shaper]</code>分段添加到print.cfg中执行<code>SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0</code>命令。如果你得到"未知命令"错误,此时你可以安全地忽略它,继续进行测量。</li>
<li>Execute the command: <code>TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5</code> Basically, we try to make ringing more pronounced by setting different large values for acceleration. This command will increase the acceleration every 5 mm starting from 1500 mm/sec^2: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2 and so forth up until 7000 mm/sec^2 at the last band.</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1365,8 +1365,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1370,8 +1370,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1343,8 +1343,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1364,8 +1364,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1272,8 +1272,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -1513,7 +1513,7 @@
<nav class="md-footer__inner md-grid" aria-label="页脚">
<a href="Hall_Filament_Width_Sensor.html" class="md-footer__link md-footer__link--prev" aria-label="上一页: 霍尔耗材线径传感器" rel="prev">
<a href="Eddy_Probe.html" class="md-footer__link md-footer__link--prev" aria-label="上一页: Eddy 感应涡流探针" rel="prev">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
</div>
@@ -1522,7 +1522,7 @@
<span class="md-footer__direction">
上一页
</span>
霍尔耗材线径传感器
Eddy 感应涡流探针
</div>
</div>
</a>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1625,8 +1625,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>
@@ -2276,10 +2276,10 @@
</ul>
<h2 id="_2">温度传感器<a class="headerlink" href="#_2" title="Permanent link">&para;</a></h2>
<p>以下信息可在</p>
<p><a href="Config_Reference.html#bmp280bme280bme680-temperature-sensor">BME280 config_section_name</a>[htu21d config_section_name(Config_Reference.md#htu21d-sensor)<a href="Config_Reference.html#lm75-temperaturesensor">lm75 config_section_name</a><a href="Config_Reference.html#host-temperature-sensor">温度_主机config_section_name</a> <a href="Config_Reference.html#combined-temperature-sensor">温度_组合config_section_name</a> 对象:</p>
<p><a href="Config_Reference.html#bmp280bme280bme680-temperature-sensor">bme280 config_section_name</a>, <a href="Config_Reference.html#htu21d-sensor">htu21d config_section_name</a>, <a href="Config_Reference.html#sht31-sensor">sht3x config_section_name</a>, <a href="Config_Reference.html#lm75-temperature-sensor">lm75 config_section_name</a>, <a href="Config_Reference.html#host-temperature-sensor">temperature_host config_section_name</a> and <a href="Config_Reference.html#combined-temperature-sensor">temperature_combined config_section_name</a> objects:</p>
<ul>
<li><code>temperature</code>:上一次从传感器读取的温度。</li>
<li><code>hemidity</code><code>pressure</code><code>gas</code>:传感器上一次读取的值(仅在bme280htu21d和lm75传感器上</li>
<li><code>humidity</code>, <code>pressure</code>, <code>gas</code>: The last read values from the sensor (only on bme280, htu21d, sht3x and lm75 sensors).</li>
</ul>
<h2 id="temperature_fan">temperature_fan<a class="headerlink" href="#temperature_fan" title="Permanent link">&para;</a></h2>
<p><a href="Config_Reference.html#temperature_fan">temperature_fan some_name</a> 对象提供了以下信息:</p>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1521,8 +1521,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -449,8 +449,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1322,8 +1322,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -451,8 +451,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1336,8 +1336,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

View File

@@ -446,8 +446,8 @@
<li class="md-nav__item">
<a href="OctoPrint.md" class="md-nav__link">
None
<a href="OctoPrint.html" class="md-nav__link">
OctoPrint for Klipper
</a>
</li>
@@ -1269,8 +1269,8 @@
<li class="md-nav__item">
<a href="Eddy_Probe.md" class="md-nav__link">
None
<a href="Eddy_Probe.html" class="md-nav__link">
Eddy 感应涡流探针
</a>
</li>

File diff suppressed because one or more lines are too long

View File

@@ -2,267 +2,277 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-05</lastmod>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2024-09-06</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.