Introduction: How to Install BDsensor on EBB36 CAN Board 3d Printer,klipper

Here is an example of how to install BDsensor on the EEB36 with USB connection

Supplies

Before you have install BDsensor on the EBB36, I assume you have installed/run the EBB36 before or have read the document of the EBB36 user menual.

Step 1: Install Hardware

Hardware connection:

Probe    |    BDsensor
GND --> GND
5V --> 5V
PB9 --> CLK
GND --> GND
PB8 --> SDA


Step 2: Install the Software of BDsensor

Clone And Install The Software Of BDsensor 

cd  ~
git clone https://github.com/markniu/Bed_Distance_sensor.git
./Bed_Distance_sensor/klipper/install_BDsensor.sh

Step 3: Config Firmware

Compile and flash the firmware into the CANbus toolhead board which the BDsensor connected.

cd ~/klipper/
make menuconfig

Here I use the USB port instead of CAN port for the comunication while do menuconfig.

Different board has different configuration in the step make menuconfig and the setp of flash firmware , please read the document of the board from the factory, we didn't change any of that.


Step 4: Compile Firmware

make

please make sure there is BD_sensor.o on there , else please check the step2

Step 5: Flash Firmware

This step is also the same as the document from EBB36 factory

Step 6: Configure BDsensor

Here is the example of the configure for my printer

please refere to Installing for Klipper · markniu/Bed_Distance_sensor Wiki (github.com)

Step 7: Check Connection

Check the connection by M102 S-1. Here is an example of the return message


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

please check the connection and wire order if it return blank.

Step 8: Calibrate

  • Clean the nozzle
  • Send command SET_KINEMATIC_POSITION Z=50  then move the Z axis down in the menu until the nozzle just touches the bed plate, the BDsensor will use this position as the zero position.
  • Sending gcode command M102 S-6.
  • After that you can check whether the BDsensor has been calibrated successful by M102 S-5 that will return the raw calibration data which stored in the BDsensor. If the first raw calibration data returned by the M102 S-5 is greater than 400, that means the sensor is mounted too high and needs to be remounted closer to the bed, the recommend value of first data is around 100. also make sure that the value of second data is greater than the first data by more than 10, else adjust the height of z and do calibarte again.


Step 9: Check Accuracy

Move the z axis to 1mm after homing then read the distance value from BDsensor by M102 S-2, the returned value should be about 1mm too, e.g. 0.98~1.02mm.

G28
G1 Z1

waiting the toolhead stops then

M102 S-2


Check if the zero position is as expected by G1 Z0 after G28, if not please calibrate again.

G28
G1 Z0


Gcode Command for BDsensor:

BDSENSOR_VERSION                   # equals M102 S-1 , read the version of BDsensor
BDSENSOR_CALIBRATE # equals M102 S-6 , calibrate the BDsensor
BDSENSOR_READ_CALIBRATION # equals M102 S-5 , read the raw calibrate data
BDSENSOR_DISTANCE # equals M102 S-2 , read the distance value measured by BDsensor
BDSENSOR_SET # set value, now only for setting z_adjust, for example BDSENSOR_SET z_adjust=0.1