Aller au contenu principal

Installation BDsensor

Connectez le câble du capteur au contrôleur mère ou à la carte d'interface CAN.

  • Notez que SB2040 ne peut pas utiliser Bdsensor
  • Notez que SHT36 nécessite que l'horloge/le SCL (entrée) du Bdsensor soit connecté à l'entrée haute tension et que le pont soit posé
  • Les lignes CKL et SDA du Bdsensor peuvent être connectées à n'importe quel broche GPIO sur la carte de circuit. Vous pouvez également connecter directement le câble du capteur Bds à la prise Bltouch, par exemple :
BLtouch    |    Bdsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (entrée)
GND --> GND
Zmin --> SDA (entrée/sortie)
  • En raison de certains connecteurs sur le contrôleur mère qui peuvent ne pas être directement connectés aux gpios de l'MCU (par exemple, ils peuvent avoir des condensateurs de filtrage ou être isolés par un MOSFET, un diode ou un couplage optique, mais ils peuvent aussi être isolés par une résistance ou une résistance de tirant/pull-down), ils ne peuvent pas être utilisés avec Bdsensor. Et le firmware signalera une erreur de connexion. Par exemple

  • Les connecteurs pour les ventilateurs et les chauffe-éléments sont isolés par MOSFET,

  • Certains circuits imprimés ont des connecteurs pour les thermistances de température et les interrupteurs/sondes qui sont généralement connectés au GND par des condensateurs de filtrage,

  1. Installez le capteur Bds près de l'extrémité chaude comme indiqué dans la figure ci-dessous. STL de montage, STL de montage VzBot_Goliath court

Appliquez le correctif au 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 Bdsensor

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

    cd  ~/Bed_Distance_sensor/klipper/
    ./install_BDsensor.sh
  • Compilez le firmware

    cd ~/klipper/
    make menuconfig
    make clean
    make
  • Branchez le firmware sur le MCU ou la carte d'interface CAN auquel est connecté le Bdsensor

Si votre imprimante fonctionne avec Moonraker, ajoutez la section suivante à moonraker.conf, puis vous pouvez mettre à jour Bdsensor via le web ou KlipperScreen en un clic.

[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=Bedsensor

Éditez le fichier printer.cfg

  • Copiez cette partie dans votre fichier printer.cfg et éditez [Bdsensor] sda_pin scl_pin, n'oubliez pas non plus de désactiver les autres sections de sonde, comme Bltouch. Vous pouvez connecter le Bdsensor au module CAN sur la carte mère ou sur la carte d'interface

  • Dans [Bdsensor], modifiez speed en 0,8. Cela ne s'applique qu'à la commande z_tilt et PROBE_ACCURACY. Plus la valeur est petite, plus la précision est élevée lors de la détection car l'MCU lit le capteur Bds dans le circuit principal lors du retour à l'origine, pas en temps réel comme un arrêteur normal. [Bdsensor]

  • Pour utiliser le Bdsensor comme limiteur de position pour l'axe Z lors du retour à l'origine, modifiez endstop_pin dans [stepper_z] en endstop_pin: probe:z_virtual_endstop

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

  • Modifiez la valeur de [bed_mesh] et [z_tilt] ou [quad_gantry_level] en 1 (recommandé entre 0,7 et 1,0 mm). La valeur par défaut dans Klipper est de 5 mm, sinon le capteur risque de dépasser sa plage

  • La hauteur de la buse ne convient que si elle est définie dans z_adjust:. Un nombre positif signifie près du lit chaud, un nombre négatif signifie loin du lit chaud, toute autre modification de la hauteur de la buse entraînera des bugs

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

  • Voici un exemple de configuration.

    [Bdsensor] 
    scl_pin:PC6 # broche de signal servo
    sda_pin:PC3 # broche de signal limite
    delay: 20 # 20us par impulsion, cette valeur doit être >=20 mais inférieure à 50
    z_offset:0 # cet `z_offset` doit être défini à 0.
    z_adjust:0.0 # ajustement de l'axe Z, remplace la fonction z_offset. dans -0.3 à 0.3mm
    x_offset: -34
    y_offset: 0
    #no_stop_probe:true # activez ceci pour le balayage rapide, la tête d'impression ne s'arrêtera pas au point de détection.
    position_endstop: 0.8 # l'axe Z s'arrêtera à cette position (mm) lors du retour à l'origine, valeur recommandée est 0,4~1,0
    #speed:0.8 # cette vitesse ne s'applique qu'à la commande 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 gcode suivantes

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

Vérification de la connexion

  • Envoyez M102 S-1 via console. Voici un exemple de message de retour. Si le retour est 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 plateau (le Bdsensor utilisera cette position comme zéro, c'est pourquoi la valeur de z_offset est de 0 dans la section [Bdsensor])
  • Envoyez la commande gcode M102 S-6 via console, l'imprimante déplacera lentement l'axe Z de 0,1 mm à chaque fois jusqu'à atteindre 4 mm. N'exécutez pas M102 S-6 avant l'installation du capteur, et n'éteignez pas l'imprimante pendant la calibration, sinon les anciennes données de calibration seront supprimées. Si cela se produit, recalibrez simplement.
  • Après cela, vous pouvez vérifier si le Bdsensor a été correctement calibré en envoyant M102 S-5, ce qui renvoie les données de calibration stockées dans le Bdsensor.

Remarques:

  • La vitesse de retour à l'origine de l'axe Z est préférable à 5

  • Si la première donnée de calibration brute retournée par M102 S-5 est supérieure à 400, cela signifie que le capteur est trop haut, il faut le réinstaller plus près du lit. La valeur recommandée pour la première donnée est de 100. Assurez-vous également que la deuxième donnée est supérieure de plus de 10 à la première donnée

    • FAQ: Si les données de calibration commencent par 1, la deuxième valeur est 9 et la troisième est 24, que signifie-t-il ?

    • Cela signifie que la résolution entre 0 et 0,1 mm est de 9, et celle entre 0,1 et 0,2 mm est de 15. Il est donc recommandé de recalibrer afin que la première résolution entre 0 et 0,1 mm soit supérieure à 10.

  • N'oubliez pas de régler la hauteur de l'axe Z après l'exécution de G28 ou pour les commandes Z_tilt et quad_gantry_level

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