Deploying to gh-pages from @ Klipper3d/klipper@3417940fd8 🚀

This commit is contained in:
KevinOConnor
2023-12-19 00:04:07 +00:00
parent bc70664085
commit 128f06b0a6
78 changed files with 695 additions and 695 deletions

View File

@@ -13,7 +13,7 @@
<title>CANBUS Troubleshooting - Documentation Klipper</title>
<title>Dépannage du CANBUS - Documentation Klipper</title>
@@ -74,7 +74,7 @@
<div data-md-component="skip">
<a href="#canbus-troubleshooting" class="md-skip">
<a href="#depannage-du-canbus" class="md-skip">
Aller au contenu
</a>
@@ -106,7 +106,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
CANBUS Troubleshooting
Dépannage du CANBUS
</span>
</div>
@@ -623,7 +623,7 @@
<li class="md-nav__item">
<a href="Axis_Twist_Compensation.html" class="md-nav__link">
Axis Twist Compensation
Compensation de torsion de l'axe
</a>
</li>
@@ -1158,7 +1158,7 @@
<li class="md-nav__item">
<a href="Bootloader_Entry.html" class="md-nav__link">
Bootloader Entry
Entrée du bootloader
</a>
</li>
@@ -1172,7 +1172,7 @@
<li class="md-nav__item">
<a href="CANBUS.html" class="md-nav__link">
CANBUS
BUS CAN
</a>
</li>
@@ -1195,12 +1195,12 @@
<label class="md-nav__link md-nav__link--active" for="__toc">
CANBUS Troubleshooting
Dépannage du CANBUS
<span class="md-nav__icon md-icon"></span>
</label>
<a href="CANBUS_Troubleshooting.html" class="md-nav__link md-nav__link--active">
CANBUS Troubleshooting
Dépannage du CANBUS
</a>
@@ -1219,30 +1219,30 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#verify-can-bus-wiring" class="md-nav__link">
Verify CAN bus wiring
<a href="#verifier-le-cablage-du-bus-can" class="md-nav__link">
Vérifier le câblage du bus CAN
</a>
</li>
<li class="md-nav__item">
<a href="#check-for-incrementing-bytes_invalid-counter" class="md-nav__link">
Check for incrementing bytes_invalid counter
<a href="#verification-de-laugmentation-du-compteur-octets_invalide" class="md-nav__link">
Vérification de l'augmentation du compteur octets_invalide
</a>
</li>
<li class="md-nav__item">
<a href="#obtaining-candump-logs" class="md-nav__link">
Obtaining candump logs
<a href="#obtenir-les-journaux-candump" class="md-nav__link">
Obtenir les journaux 'candump'
</a>
<nav class="md-nav" aria-label="Obtaining candump logs">
<nav class="md-nav" aria-label="Obtenir les journaux 'candump'">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#parsing-klipper-messages-in-a-candump-log" class="md-nav__link">
Parsing Klipper messages in a candump log
<a href="#analyser-les-messages-klipper-dans-un-journal-candump" class="md-nav__link">
Analyser les messages Klipper dans un journal candump
</a>
</li>
@@ -1253,8 +1253,8 @@
</li>
<li class="md-nav__item">
<a href="#using-a-logic-analyzer-on-the-canbus-wiring" class="md-nav__link">
Using a logic analyzer on the canbus wiring
<a href="#utiliser-un-analyseur-logique-sur-le-cablage-canbus" class="md-nav__link">
Utiliser un analyseur logique sur le câblage canbus
</a>
</li>
@@ -1344,30 +1344,30 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#verify-can-bus-wiring" class="md-nav__link">
Verify CAN bus wiring
<a href="#verifier-le-cablage-du-bus-can" class="md-nav__link">
Vérifier le câblage du bus CAN
</a>
</li>
<li class="md-nav__item">
<a href="#check-for-incrementing-bytes_invalid-counter" class="md-nav__link">
Check for incrementing bytes_invalid counter
<a href="#verification-de-laugmentation-du-compteur-octets_invalide" class="md-nav__link">
Vérification de l'augmentation du compteur octets_invalide
</a>
</li>
<li class="md-nav__item">
<a href="#obtaining-candump-logs" class="md-nav__link">
Obtaining candump logs
<a href="#obtenir-les-journaux-candump" class="md-nav__link">
Obtenir les journaux 'candump'
</a>
<nav class="md-nav" aria-label="Obtaining candump logs">
<nav class="md-nav" aria-label="Obtenir les journaux 'candump'">
<ul class="md-nav__list">
<li class="md-nav__item">
<a href="#parsing-klipper-messages-in-a-candump-log" class="md-nav__link">
Parsing Klipper messages in a candump log
<a href="#analyser-les-messages-klipper-dans-un-journal-candump" class="md-nav__link">
Analyser les messages Klipper dans un journal candump
</a>
</li>
@@ -1378,8 +1378,8 @@
</li>
<li class="md-nav__item">
<a href="#using-a-logic-analyzer-on-the-canbus-wiring" class="md-nav__link">
Using a logic analyzer on the canbus wiring
<a href="#utiliser-un-analyseur-logique-sur-le-cablage-canbus" class="md-nav__link">
Utiliser un analyseur logique sur le câblage canbus
</a>
</li>
@@ -1401,35 +1401,35 @@
</a>
<h1 id="canbus-troubleshooting">CANBUS Troubleshooting<a class="headerlink" href="#canbus-troubleshooting" title="Permanent link">&para;</a></h1>
<p>This document provides information on troubleshooting communication issues when using <a href="CANBUS.html">Klipper with CAN bus</a>.</p>
<h2 id="verify-can-bus-wiring">Verify CAN bus wiring<a class="headerlink" href="#verify-can-bus-wiring" title="Permanent link">&para;</a></h2>
<p>The first step in troubleshooting communication issues is to verify the CAN bus wiring.</p>
<h1 id="depannage-du-canbus">Dépannage du CANBUS<a class="headerlink" href="#depannage-du-canbus" title="Permanent link">&para;</a></h1>
<p>Ce document fournit des informations sur le dépannage des problèmes de communication lors de l'utilisation de <a href="CANBUS.html">Bus CAN avec Klipper</a>.</p>
<h2 id="verifier-le-cablage-du-bus-can">Vérifier le câblage du bus CAN<a class="headerlink" href="#verifier-le-cablage-du-bus-can" title="Permanent link">&para;</a></h2>
<p>La première étape pour résoudre les problèmes de communication est de vérifier le câblage du bus CAN.</p>
<p>Be sure there are exactly two 120 Ohm <a href="CANBUS.html#terminating-resistors">terminating
resistors</a> on the CAN bus. If the resistors are not properly installed then messages may not be able to be sent at all or the connection may have sporadic instability.</p>
<p>The CANH and CANL bus wiring should be twisted around each other. At a minimum, the wiring should have a twist every few centimeters. Avoid twisting the CANH and CANL wiring around power wires and ensure that power wires that travel parallel to the CANH and CANL wires do not have the same amount of twists.</p>
<p>Verify that all plugs and wire crimps on the CAN bus wiring are fully secured. Movement of the printer toolhead may jostle the CAN bus wiring causing a bad wire crimp or unsecured plug to result in intermittent communication errors.</p>
<h2 id="check-for-incrementing-bytes_invalid-counter">Check for incrementing bytes_invalid counter<a class="headerlink" href="#check-for-incrementing-bytes_invalid-counter" title="Permanent link">&para;</a></h2>
<p>The Klipper log file will report a <code>Stats</code> line once a second when the printer is active. These "Stats" lines will have a <code>bytes_invalid</code> counter for each micro-controller. This counter should not increment during normal printer operation (it is normal for the counter to be non-zero after a RESTART and it is not a concern if the counter increments once a month or so). If this counter increments on a CAN bus micro-controller during normal printing (it increments every few hours or more frequently) then it is an indication of a severe problem.</p>
<p>Incrementing <code>bytes_invalid</code> on a CAN bus connection is a symptom of reordered messages on the CAN bus. There are two known causes of reordered messages:</p>
<p>Les câbles CANH et CANL doivent être torsadés. Les torsades ne doivent pas être espacées de plus de quelques centimètres. Évitez de torsader les câbles CANH et CANL avec les fils de puissance et assurez-vous que les fils de puissance placés à côté du bus can n'aient pas le même nombre de torsades.</p>
<p>Vérifier que toutes les fiches et sertissages sur le câblage CAN sont entièrement sécurisés. Le mouvement de la tête d'outil d'imprimante peut faire bouger le câblage de bus CAN et provoquer des faux contacts - source d'erreurs de communication aléatoires.</p>
<h2 id="verification-de-laugmentation-du-compteur-octets_invalide">Vérification de l'augmentation du compteur octets_invalide<a class="headerlink" href="#verification-de-laugmentation-du-compteur-octets_invalide" title="Permanent link">&para;</a></h2>
<p>Le fichier journal de Klipper affiche une ligne <code>Stats</code> une fois par seconde lorsque l'imprimante est active. Ces lignes "Stats" ont un compteur <code>bytes_invalid</code> pour chaque microcontrôleur. Ce compteur ne devrait pas augmenter au cours de l'utilisation normale de l'imprimante (il est normal que le compteur soit non nul après un RESTART et ce n'est pas une préoccupation si le compteur augmente une fois par mois). Si ce compteur augmente sur un microcontrôleur de bus CAN pendant un fonctionnement normal (s'il augmente toutes les heures ou plus fréquemment) alors c'est une indication d'un problème grave.</p>
<p>L'augmentation du compteur <code>bytes_invalid</code> sur une connexion de bus CAN est un symptôme de messages réémis sur le bus CAN. Il existe deux causes connues de réémission de messages :</p>
<ol>
<li>Old versions of the popular candlight_firmware for USB CAN adapters had a bug that could cause reordered messages. If using a USB CAN adapter running this firmware then make sure to update to the latest firmware if incrementing <code>bytes_invalid</code> is observed.</li>
<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>
<li>Les anciennes versions du micrologiciel candlight ont un bug qui peut causer des réémissions de messages. Si vous utilisez un adaptateur USB CAN qui exécute ce micrologiciel, assurez-vous de mettre à jour le dernier micrologiciel si vous remarquez une incrémentation anormale du compteur <code>bytes_invalid</code>.</li>
<li>Certains noyaux Linux destinés à des périphériques embarqués sont connus pour réémettre les messages de bus CAN. Il peut être nécessaire d'utiliser un autre noyau Linux ou d'utiliser du matériel qui prend en charge les noyaux Linux courants qui ne présentent pas ce problème.</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="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>
<p>La réorganisation des messages est un problème grave qui doit être résolu. Cela entraînera un comportement instable et peut conduire à des erreurs déroutantes à n'importe quelle partie d'une impression.</p>
<h2 id="obtenir-les-journaux-candump">Obtenir les journaux 'candump'<a class="headerlink" href="#obtenir-les-journaux-candump" title="Permanent link">&para;</a></h2>
<p>Les messages de bus CAN envoyés au microcontrôleur sont gérés par le noyau Linux. Il est possible de capturer ces messages à des fins de débogage. Le journal de ces messages peut être utile lors des diagnostics.</p>
<p>L'outil Linux <a href="https://github.com/linux-can/can-utils">can-utils</a> fournit le logiciel de capture. Il peut être installé en exécutant:</p>
<div class="highlight"><pre><span></span><code>sudo apt-get update &amp;&amp; sudo apt-get install can-utils
</code></pre></div>
<p>Once installed, one may obtain a capture of all CAN bus messages on an interface with the following command:</p>
<p>Une fois installé, on peut obtenir une capture de tous les messages de bus CAN sur une interface avec la commande suivante:</p>
<div class="highlight"><pre><span></span><code>candump -tz -Ddex can0,#FFFFFFFF &gt; mycanlog
</code></pre></div>
<p>One can view the resulting log file (<code>mycanlog</code> in the example above) to see each raw CAN bus message that was sent and received by Klipper. Understanding the content of these messages will likely require low-level knowledge of Klipper's <a href="CANBUS_protocol.html">CANBUS protocol</a> and Klipper's <a href="MCU_Commands.html">MCU commands</a>.</p>
<h3 id="parsing-klipper-messages-in-a-candump-log">Parsing Klipper messages in a candump log<a class="headerlink" href="#parsing-klipper-messages-in-a-candump-log" title="Permanent link">&para;</a></h3>
<p>One may use the <code>parsecandump.py</code> tool to parse the low-level Klipper micro-controller messages contained in a candump log. Using this tool is an advanced topic that requires knowledge of Klipper <a href="MCU_Commands.html">MCU commands</a>. For example:</p>
<p>On peut lire le fichier journal résultant (<code>mycanlog</code> dans l'exemple ci-dessus) pour voir chaque message de bus CAN brut qui a été envoyé et reçu par Klipper. Comprendre le contenu de ces messages nécessite une connaissance de bas niveau de Klipper : <a href="CANBUS_protocol.html">Protocole CANBUS</a> et <a href="MCU_Commands.html">Commandes MCU</a>.</p>
<h3 id="analyser-les-messages-klipper-dans-un-journal-candump">Analyser les messages Klipper dans un journal candump<a class="headerlink" href="#analyser-les-messages-klipper-dans-un-journal-candump" title="Permanent link">&para;</a></h3>
<p>Il est possible d'utiliser l'outil <code>parsecandump.py</code> pour analyser les messages microcontrôleur Klipper de bas niveau contenus dans un journal candump. L'utilisation de cet outil nécessite la connaissance de Klipper <a href="MCU_Commands.html">MCU commands</a>. Par exemple :</p>
<div class="highlight"><pre><span></span><code>./scripts/parsecandump.py mycanlog 108 ./out/klipper.dict
</code></pre></div>
@@ -1437,13 +1437,13 @@ resistors</a> on the CAN bus. If the resistors are not properly installed then m
tool</a>. See the documentation for that tool for information on generating the Klipper micro-controller data dictionary.</p>
<p>In the above example, <code>108</code> is the <a href="CANBUS_protocol.html#micro-controller-id-assignment">CAN bus
id</a>. It is a hexadecimal number. The id <code>108</code> is assigned by Klipper to the first micro-controller. If the CAN bus has multiple micro-controllers on it, then the second micro-controller would be <code>10a</code>, the third would be <code>10c</code>, and so on.</p>
<p>The candump log must be produced using the <code>-tz -Ddex</code> command-line arguments (for example: <code>candump -tz -Ddex can0,#FFFFFFFF</code>) in order to use the <code>parsecandump.py</code> tool.</p>
<h2 id="using-a-logic-analyzer-on-the-canbus-wiring">Using a logic analyzer on the canbus wiring<a class="headerlink" href="#using-a-logic-analyzer-on-the-canbus-wiring" title="Permanent link">&para;</a></h2>
<p>The <a href="https://sigrok.org/wiki/PulseView">Sigrok Pulseview</a> software along with a low-cost <a href="https://en.wikipedia.org/wiki/Logic_analyzer">logic analyzer</a> can be useful for diagnosing CAN bus signaling. This is an advanced topic likely only of interest to experts.</p>
<p>One can often find "USB logic analyzers" for under $15 (US pricing as of 2023). These devices are often listed as "Saleae logic clones" or as "24MHz 8 channel USB logic analyzers".</p>
<p>Le journal candump doit être généré avec les arguments de ligne de commande <code>-tz -Ddex</code> (par exemple: <code>candump -tz -Ddex can0,#FFFFFF</code>)) Afin de pouvoir être utilisé avec l'outil <code>parsecandump.py</code>.</p>
<h2 id="utiliser-un-analyseur-logique-sur-le-cablage-canbus">Utiliser un analyseur logique sur le câblage canbus<a class="headerlink" href="#utiliser-un-analyseur-logique-sur-le-cablage-canbus" title="Permanent link">&para;</a></h2>
<p>Le logiciel <a href="https://sigrok.org/wiki/PulseView">Sigrok Pulseview</a> associé à un analyseur logique à bas coût <a href="https://en.wikipedia.org/wiki/Logic_analyzer">logic analysisr</a> peut être utile pour le diagnostic de signal de bus CAN. C'est un sujet avancé qui n'intéressera probablement que les experts.</p>
<p>On peut trouver des « analyseurs logiques USB » pour moins de 15 $ (prix américain de 2023). Ces appareils sont souvent nommés « Saleae logic clone » ou « analyseur logique USB 24MHz 8 canaux ».</p>
<p><img alt="pulseview-canbus" src="img/pulseview-canbus.png" /></p>
<p>The above picture was taken while using Pulseview with a "Saleae clone" logic analyzer. The Sigrok and Pulseview software was installed on a desktop machine (also install the "fx2lafw" firmware if that is packaged separately). The CH0 pin on the logic analyzer was routed to the CAN Rx line, the CH1 pin was wired to the CAN Tx pin, and GND was wired to GND. Pulseview was configured to only display the D0 and D1 lines (red "probe" icon center top toolbar). The number of samples was set to 5 million (top toolbar) and the sample rate was set to 24Mhz (top toolbar). The CAN decoder was added (yellow and green "bubble icon" right top toolbar). The D0 channel was labeled as RX and set to trigger on a falling edge (click on black D0 label at left). The D1 channel was labeled as TX (click on brown D1 label at left). The CAN decoder was configured for 1Mbit rate (click on green CAN label at left). The CAN decoder was moved to the top of the display (click and drag green CAN label). Finally, the capture was started (click "Run" at top left) and a packet was transmitted on the CAN bus (<code>cansend can0 123#121212121212</code>).</p>
<p>The logic analyzer provides an independent tool for capturing packets and verifying bit timing.</p>
<p>L'image ci-dessus a été prise en utilisant Pulseview avec un analyseur logique "Saleae clone". Le logiciel Sigrok et Pulseview ont été installés sur une machine de bureau (il faudra aussi installe le microligiciel "fx2lafw" si il est fourni séparément). La broche CH0 sur l'analyseur logique doit être connectée à la ligne CAN Rx, la broche CH1 à la ligne CAN Tx, GND doit être connecté avec GND. Pulseview doit être configuré pour n'afficher que les lignes D0 et D1 (icône rouge 'probe' au centre de la barre d'outils). Le nombre d'échantillons a été fixé à 5 millions (barre d'outils) et le taux d'échantillonnage à 24Mhz (barre d'outils). Le décodeur CAN a été ajouté (icône bulle jaune et verte sir la barre d'outils en haut à droite). Le canal D0 étiqueté comme RX et défini pour être déclenché sur un front descendant (cliquez sur l'étiquette D0 noire à gauche). Le canal D1 a été étiqueté comme TX (cliquez sur l'étiquette D1 brune à gauche). Le décodeur CAN a été configuré à une vitesse de 1Mbit (cliquez sur l'étiquette CAN verte à gauche). Le décodeur CAN a été déplacé en haut de l'écran (cliquez et faites glisser l'étiquette CAN verte). Enfin, la capture a été commencée (cliquez sur "Run" en haut à gauche) et un paquet a été transmis sur le bus CAN (<code>cansend cans0 123#121212121212</code>).</p>
<p>L'analyseur logique fournit un outil indépendant pour capturer les paquets et vérifier la chronologie.</p>
</article>
@@ -1462,7 +1462,7 @@ id</a>. It is a hexadecimal number. The id <code>108</code> is assigned by Klipp
<nav class="md-footer__inner md-grid" aria-label="Pied de page">
<a href="CANBUS.html" class="md-footer__link md-footer__link--prev" aria-label="Précédent: CANBUS" rel="prev">
<a href="CANBUS.html" class="md-footer__link md-footer__link--prev" aria-label="Précédent: BUS CAN" 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>
@@ -1471,7 +1471,7 @@ id</a>. It is a hexadecimal number. The id <code>108</code> is assigned by Klipp
<span class="md-footer__direction">
Précédent
</span>
CANBUS
BUS CAN
</div>
</div>
</a>