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 Current Inductive probe
</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 @@
angle/dump_angle
</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 @@
query_endstops/status
</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 Current Inductive probe
</a>
</li>
@@ -1676,6 +1697,20 @@
angle/dump_angle
</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 @@
query_endstops/status
</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>This endpoint is used to subscribe to <a href="Config_Reference.html#angle">angle sensor data</a>. Obtaining these low-level motion 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":"angle/dump_angle", "params": {"sensor": "my_angle_sensor", "response_template": {}}}</code> and might return: <code>{"id": 123,"result":{"header":["time","angle"]}}</code> and might later produce asynchronous messages such as: <code>{"params":{"position_offset":3.151562,"errors":0, "data":[[1290.951905,-5063],[1290.952321,-5065]]}}</code></p>
<p>初始查詢響應中的“header”字段用於描述在以後的“data”響應中找到的字段。</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="pause_resumecancel">pause_resume/cancel<a class="headerlink" href="#pause_resumecancel" title="Permanent link">&para;</a></h3>
<p>此端點類似於運行“PRINT_CANCEL”G 代碼命令。例如:<code>{"id": 123, "method": "pause_resume/cancel"}</code></p>
<p>與“gcode/script”端點一樣此端點僅在任何待處理的 G 代碼命令完成後才會完成。</p>
@@ -1837,6 +1885,119 @@ gcode:
<h3 id="query_endstopsstatus">query_endstops/status<a class="headerlink" href="#query_endstopsstatus" title="Permanent link">&para;</a></h3>
<p>該端點將查詢活動端點並返回它們的狀態。例如:<code>{"id": 123, "method": "query_endstops/status"}</code> 可能返回:<code>{"id": 123, "result": {"y": "open", "x": “打開”“z”“觸發”}}</code></p>
<p>與“gcode/script”端點一樣此端點僅在任何待處理的 G 代碼命令完成後才會完成。</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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>Required</em> The probed coordinate farthest 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>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="_10">校準<a class="headerlink" href="#_10" 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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 @@
Check for incrementing bytes_invalid counter
</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 Current Inductive probe
</a>
</li>
@@ -1416,6 +1423,13 @@
Check for incrementing bytes_invalid counter
</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>Some Linux kernel builds for embedded devices have been known to reorder CAN bus messages. It may be necessary to use an alternative Linux kernel or to use alternative hardware that supports mainstream Linux kernels that do not exhibit this problem.</li>
</ol>
<p>Reordered messages is a severe problem that must be fixed. It will result in unstable behavior and can lead to confusing errors at any part of a print.</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="obtaining-candump-logs">Obtaining candump logs<a class="headerlink" href="#obtaining-candump-logs" title="Permanent link">&para;</a></h2>
<p>The CAN bus messages sent to and from the micro-controller are handled by the Linux kernel. It is possible to capture these messages from the kernel for debugging purposes. A log of these messages may be of use in diagnostics.</p>
<p>The Linux <a href="https://github.com/linux-can/can-utils">can-utils</a> tool provides the capture software. It is typically installed on a machine by running:</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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,8 +1188,8 @@
</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>
@@ -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 Current Inductive probe
</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,8 +3282,8 @@
</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>
@@ -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">
@@ -4614,6 +4750,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>
@@ -4973,6 +5116,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>
@@ -5375,6 +5520,38 @@ z_offset:
# See the &quot;probe&quot; section for more information on the parameters above.
</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]
@@ -5623,6 +5800,59 @@ extruder:
# parameter.
</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 includes definitions for many types of temperature sensors. These sensors may be used in any config section that requires a temperature sensor (such as an <code>[extruder]</code> or <code>[heater_bed]</code> section).</p>
<h3 id="_19">常見熱敏電阻<a class="headerlink" href="#_19" title="Permanent link">&para;</a></h3>
@@ -5701,12 +5931,12 @@ sensor_pin:
# name in the above list.
</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:
@@ -5761,6 +5991,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
@@ -6345,6 +6589,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
@@ -6375,11 +6631,19 @@ run_current:
#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
#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
@@ -6464,6 +6728,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
@@ -6483,6 +6754,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
@@ -6605,6 +6881,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
@@ -6720,6 +7008,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
@@ -7374,6 +7674,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="_27">控制板特定硬體支援<a class="headerlink" href="#_27" 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>
@@ -7600,7 +7980,7 @@ cs_pin:
<nav class="md-footer__inner md-grid" aria-label="Footer">
<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>
@@ -7609,7 +7989,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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</a>
</li>

1519
zh-Hant/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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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>當啟用 <a href="Config_Reference.html#z_tilt">z_tilt config section</a> 時,以下命令可用。</p>
<h4 id="z_tilt_adjust">Z_TILT_ADJUST<a class="headerlink" href="#z_tilt_adjust" title="Permanent link">&para;</a></h4>
<p><code>Z_TILT_ADJUST [HORIZONTAL_MOVE_Z=&lt;value&gt;] [&lt;probe_parameter&gt;=&lt;value&gt;]</code>: This command will probe the points specified in the config and then make independent adjustments to each Z stepper to compensate for tilt. See the PROBE command for details on the optional probe parameters. The optional <code>HORIZONTAL_MOVE_Z</code> value overrides the <code>horizontal_move_z</code> option specified in the config file.</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 Current Inductive probe
</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 Current Inductive probe" rel="next">
<div class="md-footer__title">
<div class="md-ellipsis">
<span class="md-footer__direction">
下一頁
</span>
贊助商
Eddy Current Inductive probe
</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 Current Inductive probe
</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#can-i-run-klipper-on-something-other-than-a-raspberry-pi-3">常見問題</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 設置由將存儲在 Raspberry Pi 上的“打印機配置文件”確定。通常可以通過在 Klipper <a href="https://github.com/Klipper3d/klipper/blob/master/config/">config directory</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/">config file</a>。這些示例打印機板文件應該允許您成功完成初始安裝,但需要進行一些自定義才能獲得完整的打印機功能。</p>
<p>也可以從頭開始定義新的打印機配置。但是,這需要有關打印機及其電子設備的大量技術知識。建議大多數用戶從適當的配置文件開始。如果創建新的自定義打印機配置文件,請從最接近的示例 <a href="https://github.com/Klipper3d/klipper/blob/master/config/">config file</a> 開始,並使用 Klipper <a href="Config_Reference.html">config reference</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>複製到樹莓派。</p>
<p>可以說設置 Klipper 配置文件的最簡單方法是使用支持通過“scp”和/或“sftp”協議編輯文件的桌面編輯器。有支持此功能的免費工具例如Notepad++、WinSCP 和 Cyberduck。在編輯器中加載打印機配置文件然後將其保存為 pi 用戶主目錄中名為“printer.cfg”的文件即 /home/pi/printer.cfg)。</p>
<p>或者,也可以通過 ssh 直接在 Raspberry Pi 上複製和編輯文件。這可能類似於以下內容(確保更新命令以使用適當的打印機配置文件名):</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 Web 終端中發出“重新啟動”命令以加載配置。如果成功讀取 Klipper 配置文件並且成功找到並配置了微控制器,則“狀態”命令將報告打印機已準備就緒。</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</a>
</li>
@@ -2354,7 +2354,7 @@ probe_points: ...
<div class="highlight"><pre><span></span><code>TEST_RESONANCES AXIS=Y
</code></pre></div>
<p>這將生成 2 CSV 文件(<code>/tmp/resonances_x_*.csv</code> <code>/tmp/resonances_y_*.csv</code>)。可以使用 Raspberry Pi 上的獨立腳本處理這些文件。為此,請運行以下命令:</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 Current Inductive probe
</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 Current Inductive probe
</a>
</li>

1537
zh-Hant/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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</a>
</li>
@@ -1663,7 +1663,7 @@
<p>首先,測量<strong>振紋頻率</strong></p>
<ol>
<li>如果 <code>square_corner_velocity</code> 參數已更改,請將其恢復為 5.0。使用input shaper時不建議增加它因為它會導致零件更平滑 - 最好使用更高的加速度值。</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>禁用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>執行命令: <code>TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5</code> 基本上,我們嘗試通過設置不同的大加速度值來使環紋更加明顯。此命令將從 1500 mm/sec^2 開始每 5 mm 增加加速度1500 mm/sec^2、2000 mm/sec^2、2500 mm/sec^2 等等,直到 7000 mm/sec^2最後一個區域。</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</a>
</li>
@@ -1513,7 +1513,7 @@
<nav class="md-footer__inner md-grid" aria-label="Footer">
<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 Current Inductive probe" 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 Current Inductive probe
</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 Current Inductive probe
</a>
</li>
@@ -2276,10 +2276,10 @@
</ul>
<h2 id="_3">溫度感測器<a class="headerlink" href="#_3" title="Permanent link">&para;</a></h2>
<p>以下資訊可在</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#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>
<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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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 Current Inductive probe
</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.