Aller au contenu principal

Installation du capteur BD

Connectez le câble du capteur à la carte mère ou à la carte de tête d'outil CAN bus.

  • Veuillez noter que le SB2040 ne peut pas utiliser le capteur BD
  • Veuillez noter que le SHT36 nécessite de connecter le CLK/SCL du capteur BD (entrée) à l'entrée à haute tension et de mettre en place le cavalier
  • Les lignes CKL et SDA du capteur BD peuvent être connectées à n'importe quelle broche GPIO de la carte. Vous pouvez également connecter directement le câble du capteur BD au port Bltouch, par exemple :
BLtouch    |    Capteur BD
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
  • En raison du fait que certaines broches dans les connecteurs de la carte mère peuvent ne pas être directement connectées aux gpios de l'MCU (par exemple, elles peuvent avoir des condensateurs de filtrage ou être isolées par MOSFET, diodes ou coupleurs optiques, mais si elles sont isolées par des résistances ou des résistances pull-up/pull-down, elles peuvent être utilisées), elles ne peuvent pas être utilisées avec le capteur BD. Et le firmware signalera une erreur de connexion. Par exemple :

  • Les connecteurs des ventilateurs et des chauffages sont isolés par MOSFET,

  • Certains connecteurs des cartes utilisés pour les thermistances de température et les fins de course/sondes sont généralement connectés à la masse via des condensateurs de filtrage,

  1. Comme illustré ci-dessous, installez le capteur BD à proximité de l'extrémité chaude. STL de montage, STL_montage_VzBot_Goliath court

Installation du patch dans le firmware Klipper

  • Abandonnez les fichiers Klipper modifiés précédemment et mettez à jour Klipper

    cd
    cd ~/klipper
    git checkout .
    git pull
  • Clonez le dernier code du capteur BD

    cd && git clone https://github.com/markniu/Bed_Distance_sensor.git
  • Installation

    cd  ~/Bed_Distance_sensor/klipper/
    ./install_BDsensor.sh
  • Compilation du firmware

    cd ~/klipper/
    make menuconfig
    make clean
    make
  • Flashez le firmware sur le MCU ou la carte de tête d'outil CAN bus connectée au capteur BD

Si votre imprimante fonctionne avec Moonraker, ajoutez la section suivante à moonraker.conf, puis vous pourrez mettre à jour le capteur BD d'un simple clic via la page web ou l'écran Klipper.

[update_manager BDsensor]
type: git_repo
primary_branch: new
channel: dev
path: ~/Bed_Distance_sensor
origin: https://github.com/markniu/Bed_Distance_sensor.git
install_script: ./klipper/install_BDsensor.sh
is_system_service: False
managed_services: klipper
info_tags:
desc=Capteur de Distance de Lit

Édition de printer.cfg

  • Copiez cette section dans votre printer.cfg et modifiez sda_pin et scl_pin de [BDsensor], et n'oubliez pas de désactiver les autres sections de sondes comme BLtouch. Vous pouvez connecter le capteur BD à la carte mère ou au module CAN de la tête d'outil,

  • Dans [BDsensor], modifiez speed à 0.8. Cela ne s'applique qu'aux commandes Z TILT et PROBE_ACCURACY. Plus la valeur est faible, plus la précision est élevée lors de la détection, car le MCU ne lit pas le capteur BD en temps réel comme un interrupteur de fin de course. [BDsensor]

  • Pour utiliser le capteur BD comme interrupteur de fin de course lors du retour à zéro de l'axe Z, changez endstop_pin dans [stepper_z] pour endstop_pin: probe:z_virtual_endstop

  • Assurez-vous que printer.cfg contient [safe_z_home]

  • Modifiez la valeur de z_offset dans [bed_mesh] et [z_tilt] ou [quad_gantry_level] à 1 (0.7-1.0mm recommandé), la valeur par défaut de Klipper est de 5 mm, sinon le capteur pourrait dépasser sa portée

  • L'ajustement de la hauteur de la buse ne doit être fait que dans z_adjust: où un nombre positif rapproche la buse du lit et un nombre négatif l'éloigne. Tout autre réglage de la hauteur de la buse pourrait causer des bugs

  • Pour activer le balayage rapide du lit, retirez le # devant no_stop_probe:true

  • Voici un exemple de configuration.

    [BDsensor] 
    scl_pin:PC6 # Broche de signal de servo
    sda_pin:PC3 # Broche de signal de fin de course
    delay: 20 # 20us par impulsion, cette valeur doit être >=20 mais inférieure à 50
    z_offset:0 # cette `z_offset` doit être réglée à 0.
    z_adjust:0.0 # Ajustement de l'axe Z, remplace la fonction z_offset. entre -0.3 et 0.3mm
    x_offset: -34
    y_offset: 0
    #no_stop_probe:true # activez ceci pour une sonde rapide, la tête d'outil ne s'arrêtera pas au point de sonde.
    position_endstop: 0.8 # l'axe Z s'arrêtera à cette position (mm) lors du retour à zéro de Z, valeur recommandée entre 0.4 et 1.0
    #speed:0.8 # cette vitesse ne fonctionne que pour les commandes z tilt et PROBE_ACCURACY.

    [stepper_z]
    endstop_pin: probe:z_virtual_endstop
    #position_endstop: 0.5
    homing_speed: 5
    second_homing_speed: 0.8

    [bed_mesh]
    speed: 200
    horizontal_move_z:1
    algorithm: bicubic

    [quad_gantry_level]
    horizontal_move_z:1

Après l'installation, vérifiez en envoyant les commandes G-Code suivantes

M102   S-1     # Lecture des informations du capteur
M102 S-2 # Lecture d'une valeur de distance

Vérification de la connexion

  • Envoyez M102 S-1 via la console pour obtenir un exemple de message de retour, si vous recevez un message vide ou une autre chaîne, vérifiez la connexion et l'ordre des fils

    Send: M102 S-1
    Recv: V1.0 pandapi3d.com

Étalonnage

  • Nettoyez la buse, puis déplacez l'axe Z via la console jusqu'à ce que la buse touche à peine le lit (le capteur BD utilisera cette position comme position zéro, donc pas besoin de z_offset, c'est pourquoi la valeur dans la section [BDsensor] est à 0)
  • Envoyez la commande G-Code M102 S-6 via la console, l'imprimante déplacera l'axe Z lentement vers le haut de 0.1mm à chaque fois jusqu'à atteindre 4mm. Ne lancez pas M102 S-6 avant l'installation du capteur, et ne coupez pas l'alimentation de l'imprimante pendant l'étalonnage, sinon les anciennes données d'étalonnage seront effacées. Dans ce cas, recalibrez simplement
  • Ensuite, vous pouvez vérifier si le capteur BD a été correctement étalonné avec M102 S-5, ce qui renverra les données d'étalonnage brutes stockées dans le capteur BD.

Notes :

  • La vitesse de retour à zéro de l'axe Z devrait être de préférence de 5

  • Si le premier ensemble de données d'étalonnage retourné par M102 S-5 est supérieur à 400, cela signifie que le capteur est installé trop haut et doit être repositionné plus près du lit, la valeur recommandée pour le premier ensemble de données est de 100. Assurez-vous également que la deuxième valeur est supérieure de plus de 10 à la première.

    • FAQ : Si les données d'étalonnage commencent par 1, la deuxième valeur est de 9 et la troisième de 24, qu'est-ce que cela signifie ?

    • Cela signifie que la résolution entre 0-0.1mm est seulement de 9, tandis que celle entre 0.1-0.2mm est de 15. Il est donc recommandé de recalibrer pour obtenir une résolution de 0-0.1mm supérieure à 10.

  • N'oubliez pas d'ajuster la hauteur de l'axe Z après avoir exécuté G28 ou pour les commandes Z_tilt et quad_gantry_level

  • Les noms de sections doivent être correctement en majuscules et minuscules, sinon Klipper signalera Unknown pin chip name 'probe'