Installation de BDsensor
Connecter le câble du capteur à la carte mère ou à la carte d'en-tête du bus CAN.
- Veuillez noter que le SB2040 ne peut pas utiliser BDsensor
- Veuillez noter que pour SHT36, il faut connecter l'entrée CLK/SCL (Input) de BDsensor à une entrée haute tension et de relier le cavalier (jumper)
- Les câbles CLK et SDA de BDsensor peuvent être connectés à n'importe quelle broche GPIO de la carte. Vous pouvez également connecter directement le câble du capteur BD à un port BLtouch, par exemple :
BLtouch | BDsensor
5V --> 5V
GND --> GND
S --> CLK/SCL (Input)
GND --> GND
Zmin --> SDA (Input/Output)
-
Certaines broches des connecteurs de la carte mère peuvent ne pas être directement reliées aux GPIO du microcontrôleur (elles peuvent par exemple comporter des condensateurs de filtrage ou être isolées via un MOSFET, une diode ou un coupleur optique, mais elles peuvent aussi être isolées par des résistances de tirage/pull-down), elles ne peuvent donc pas être utilisées avec BDsensor. Le firmware signalera alors une erreur de connexion. Par exemple :
-
Les connecteurs de ventilateur et de chauffage sont isolés via un MOSFET,
-
Certains connecteurs de carte pour thermistance de température et fin de course/probe sont souvent connectés à la masse (GND) via des condensateurs de filtrage,
-
Installer BDsensor à proximité de l'extrémité chaude comme indiqué sur l'image. STL du support, STL_mount_VzBot_Goliath short

Installer le correctif dans le firmware Klipper
-
Abandonner les anciennes modifications apportées aux fichiers Klipper et mettre à jour Klipper
cd
cd ~/klipper
git checkout .
git pull -
Cloner la dernière version du code BDsensor
cd && git clone https://github.com/markniu/Bed_Distance_sensor.git -
Installer
cd ~/Bed_Distance_sensor/klipper/
./install_BDsensor.sh -
Compiler le firmware
cd ~/klipper/
make menuconfig
make clean
make -
Flasher le firmware sur le MCU ou la carte d'en-tête CAN à laquelle BDsensor est connecté
Si votre imprimante utilise Moonraker, veuillez ajouter la section suivante à moonraker.conf, vous pourrez alors mettre à jour BDsensor en un clic via l'interface web ou Klipperscreen.
[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
Modifier printer.cfg
-
Copier cette section dans votre fichier printer.cfg et modifier les paramètres
sda_pinetscl_pinde[BDsensor]. N'oubliez pas de désactiver les autres sections de sondage comme BLtouch. Vous pouvez connecter BDsensor à la carte mère ou au module d'outil CAN. -
Dans
[BDsensor], modifierspeedà 0,8. Cela s'applique uniquement aux commandes z_tilt et PROBE_ACCURACY. Plus la valeur est faible, plus la précision est grande lors du sondage, car le MCU lit les données du capteur BD dans la boucle principale pendant le positionnement au point zéro, sans la réactivité d'un capteur normal.[BDsensor] -
Pour utiliser BDsensor comme fin de course lors du positionnement au point zéro de l'axe Z, remplacer
endstop_pindans[stepper_z]parendstop_pin: probe:z_virtual_endstop -
Vérifier que
[safe_z_home]est présent dans printer.cfg -
Remplacer la valeur dans
[bed_mesh]et[z_tilt]ou[quad_gantry_level]par 1 (recommandé entre 0,7 et 1,0 mm). La valeur par défaut de Klipper est de 5 mm, ce qui pourrait dépasser la plage du capteur. -
La hauteur de la buse doit uniquement être ajustée avec
z_adjust:. Les valeurs positives rapprochent la buse du plateau, les négatives l'en éloignent. Tout autre réglage pourrait provoquer des bugs. -
Activer le balayage rapide du plateau en supprimant le # devant
no_stop_probe:true -
Voici un exemple de configuration.
[BDsensor]
scl_pin:PC6 # Broche signal servo
sda_pin:PC3 # Broche signal fin de course
delay: 20 # 20 µs par impulsion, cette valeur doit être >=20 mais inférieure à 50
z_offset:0 # Cette valeur `z_offset` doit être réglée à 0.
z_adjust:0.0 # Ajustement de l'axe Z, remplace la fonction z_offset. Valeur entre -0,3 et 0,3 mm
x_offset: -34
y_offset: 0
#no_stop_probe:true # Activer pour un balayage rapide, la tête d'impression ne s'arrêtera pas sur les points de mesure.
position_endstop: 0.8 # L'axe Z s'arrêtera à cette position (en mm) lors du positionnement au point zéro. Valeur recommandée entre 0,4 et 1,0
#speed:0.8 # Cette vitesse n'est utilisée 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 Gcode suivantes
M102 S-1 # Lire les informations du capteur
M102 S-2 # Lire une valeur de distance
Vérifier la connexion
-
Envoyer
M102 S-1via la console. Voici un exemple de réponse. Si la réponse est vide ou contient d'autres caractères, vérifier la connexion et l'ordre des câbles.Send: M102 S-1
Recv: V1.0 pandapi3d.com
Calibrage
- Nettoyer la buse, puis déplacer manuellement l'axe Z via la console jusqu'à ce que la buse touche légèrement le plateau (BDsensor utilisera cette position comme zéro, il n'est donc pas nécessaire de régler
z_offset, d'où la valeur 0 dans la section[BDsensor]). - Envoyer la commande Gcode
M102 S-6via la console, l'imprimante déplacera lentement l'axe Z vers le haut par incréments de 0,1 mm jusqu'à atteindre 4 mm. Ne pas exécuterM102 S-6avant l'installation du capteur ni éteindre l'imprimante pendant le calibrage, sinon les données de calibrage précédentes seront supprimées. Dans ce cas, il suffit de recalibrer. - Ensuite, vous pouvez vérifier si BDsensor a été correctement calibré en envoyant la commande
M102 S-5, ce qui renverra les données brutes de calibrage stockées dans BDsensor.
Remarques importantes :
-
La vitesse de positionnement au point zéro de l'axe Z devrait idéalement être réglée à 5.
-
Si la première valeur brute renvoyée par
M102 S-5est supérieure à 400, cela signifie que le capteur est installé trop haut et doit être rapproché du plateau. La première valeur devrait idéalement être environ 100. Vérifiez également que la deuxième valeur est au moins 10 unités supérieure à la première.-
FAQ : Si les données de calibrage commencent par 1, la deuxième valeur est 9 et la troisième 24, qu'est-ce que cela signifie ?
-
Cela signifie que la résolution entre 0 et 0,1 mm est de 9 unités, et entre 0,1 et 0,2 mm, elle est de 15 unités. Il est donc recommandé de recalibrer pour obtenir une résolution supérieure à 10 unités pour la plage 0 à 0,1 mm.
-
-
N'oubliez pas d'ajuster la hauteur de l'axe Z après exécution de
G28ou avant utilisation des commandesZ_tiltetquad_gantry_level. -
Les noms des sections doivent respecter scrupuleusement la casse, sans quoi Klipper affichera l'erreur :
Unknown pin chip name 'probe'