Skip to content

kasom/LoadCellZProbe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoadCellZProbe

Under bed load cell Z-probe. It’s somewhat a mixture of JohnSL's and palmer23's.

What’s needed:

  • STM32F103C8T6 board. I’m using a “black pill”. Any Arduino compatible board could be used, but those * pills board are really cheap. The STM32 is 3.3V matched the Duet board I'm using.
  • STLink v2 or USB to TTL (3.3v) adapter to program the board.
  • Arduino IDE + STM32duino
  • HX711-multi library
    • Edit HX711-multi.h by removing "HX711MULTI::" from line 49. (It won't compile if you don't remove it)
  • 3 load cells. I’m using 5 Kgs load cell.
  • 3 HX711 breakout board, set sampling rate to 80 samples per second.
  • Printed parts to mount the load cells & support the bed
  • Connectors, wires, screws, springs, etc.

How did it work?

  • Load cell output is linear. By using 3 load cell to support the build plate, the output of 3 load cells can be summed and then used to detect force (weight) applied to any point in the build plate. (Detect the nozzle press at any point in the build plate.)
  • The firmware collect the load cell's outputs (weight + noise) and use the range of noise as a trigger threshold.

How to use it?

  1. Flash the firmware into the STM32 board. Disconnect all wires.
  2. Connect the load cells to the HX711 boards.
  3. Connect GND and VCC pin of the HX711 boards to GND and +3V of the STM32 board.
  4. Connect all SCK (Clock) pin of the HX711 boads to pin PA7 of the STM32 board.
  5. Connect each DT (Data) pin of the HX711 boards to pin PA0, PA1 and PA2.
  6. Apply power to the STM32 board.
    1. The blue LED on the STM32 should light up for 10 seconds, indicating the noise learning phase. (It read 80 x 10 samples from every HX711).
    2. When the blue LED is off, indicate the untrigger state.
    3. The blue LED will light up again enought force is applited to the load cell. (A finger push on the tip of load cell should activate it).
  7. If all went well, disconnect the power source and then connect pin PB0 to Z probe input of your 3D printer board. (It's active high). After that apply power to the STM32 board and test your new Z-probe!

Trouble shooting

  • The USB of the STM32 board is a virtual serial port, use a USB cable to plug it into your computer.
  • Use your terminal program to connect the virtual serial to see the debug information.
  • The connection speed doesn't matter, you can use 9600, 115200, etc.
  • If you send any character through the terminal, it will trigger the noise learning phase.
  • To enable verbose output mode, connect pin PA9 of the STM32 board to GND.

Noise read enable pin (PA10)

Connecting the PA10 pin of STM32 board to GND (or send logic low from your 3D printer board) will activate the noise learning phase, similar to when the firmware start or when sending a character through the terminal. Except that it will read at least 80x10 samples, more if you continue to hold the pin low. It's useful if you want to let your 3D printer board control when to read the noise floor. For example, pull the pin low and then move the print head around (but make sure that it won't tuch the build plate) to let the firmware learn about the noise/vibration generated by the steppers.

Links

Releases

No releases published

Packages

No packages published

Languages