Aller au contenu principal

Installation de BDsensor-m

Connecter le câble du capteur à l'interface EXP1 de la carte mère

  • Si le câble du capteur est trop court, vous pouvez utiliser la rallonge fournie dans l'emballage
  • Les lignes CKL et SDA du BDsensor-m 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    |    BDsensor-m
5V --> 5V
GND --> GND
S --> CLK/SCL (Entrée)
GND --> GND
Zmin --> SDA (Entrée/Sortie)
  • En raison du fait que certaines broches des connecteurs de la carte mère peuvent ne pas être directement connectées aux gpios du MCU (par exemple, elles peuvent avoir des condensateurs de filtrage ou être isolées par MOSFET, diode ou coupleur optique, mais si elles sont isolées par résistance ou résistance pull-up/pull-down, cela peut fonctionner), elles ne peuvent pas être utilisées avec BDsensor-m. Le firmware signalera une erreur de connexion. Par exemple :
  • Les connecteurs des ventilateurs et des chauffages sont isolés par MOSFET,
  • Certains connecteurs de cartes utilisés pour les thermistances de température et les fins de course/les sondes sont généralement connectés à la GND via des condensateurs de filtrage.
  1. Comme illustré ci-dessous, installez le capteur BD près de l'extrémité chaude. STL du support, STL_mount_VzBot_Goliath_court

Installer le patch dans le firmware Klipper

  • Ne faites que ce qui est mentionné dans le tutoriel

  • Abandonnez les modifications précédentes des fichiers Klipper et mettez à jour Klipper

    cd
    cd ~/klipper
    git checkout .
    git pull
  • Dans le répertoire de l'utilisateur, exécutez la commande git suivante pour cloner le dernier code du capteur BD

    cd && git clone https://github.com/markniu/Bed_Distance_sensor.git
  • Ensuite, exécutez la commande suivante pour l'installation

    cd  ~/Bed_Distance_sensor/klipper/
    ./install_BDsensor.sh

Ici, compilez le firmware si le message d'incohérence entre le firmware de l'hôte et celui de la carte apparaît, alors compilez un nouveau firmware Klipper

  • Compilez le firmware en suivant le tutoriel de compilation de votre firmware

  • Compilation du firmware

    cd ~/klipper/  # Allez dans le répertoire de Klipper
    make menuconfig # Commande pour entrer dans l'interface de compilation de Klipper
    make clean # Commande de nettoyage
    make # Commande de compilation
  • Flashez le firmware sur la carte mère à laquelle le capteur BD est connecté

Si votre imprimante utilise Moonraker, ajoutez la section suivante à moonraker.conf, puis vous pourrez mettre à jour BDsensor en un clic via une page web ou l'écran de 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=Bed Distance Sensor

Éditer 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 de Z-tilt et PROBE_ACCURACY. Plus la valeur est petite, plus la précision est élevée lors de la sonde, car le MCU lit le capteur BD dans le circuit principal lors de la mise à zéro, et ce n'est pas aussi rapide qu'un fin de course normal. [BDsensor]

  • Pour utiliser le capteur BD comme fin de course lors de la mise à 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 position_endstop dans [bed_mesh] et [z_tilt] ou [quad_gantry_level] à 1 (recommandé entre 0.7 et 1.0mm). La valeur par défaut de Klipper est de 5mm, sinon cela pourrait dépasser la plage du capteur

  • L'ajustement de la hauteur de la buse ne doit être effectué que dans z_adjust:. Un nombre positif rapproche la buse du lit, un nombre négatif l'éloigne. Toute autre configuration pour ajuster la hauteur de la buse pourrait causer des bugs

  • Pour activer la sonde rapide, supprimez le # avant no_stop_probe:true

  • Voici un exemple de configuration.

    [BDsensor] 
    scl_pin:PC6 # Port de signal du servo
    sda_pin:PC3 # Port de signal de fin de course
    delay: 20 # 20us par impulsion, cette valeur doit être >=20 mais doit être 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 cela 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 de la mise à zéro de z, valeur recommandée entre 0.4 et 1.0
    #speed:0.8 # cette vitesse ne fonctionne que pour la commande de tilt z 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 gcode suivantes

M102   S-1     # Lire les informations du capteur
M102 S-2 # Lire une valeur de distance

Vérification de la connexion

  • Via la console, envoyez M102 S-1, voici un exemple de message retourné, si vous recevez une réponse vide ou une autre chaîne, vérifiez la connexion et l'ordre des fils

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

Calibration

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

Notes:

  • La vitesse de mise à zéro de l'axe Z est préférable à 5

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

    • FAQ : Que signifie si les données de calibration commencent par 1, la deuxième valeur est 9 et la troisième est 24 ?

    • Cela signifie que la résolution entre 0 et 0.1mm est seulement de 9, tandis que celle entre 0.1 et 0.2mm est de 15. Il est donc recommandé de recalibrer pour obtenir une résolution initiale 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

  • La partie du nom doit être correctement en majuscules et minuscules, sinon Klipper signalera Unknown pin chip name 'probe'