Finally got the BLTouch V3 working properly. Trick? ICSP pins.
After pulling most of my hair out trying to set the damn thing up, I finally got it.
It appears that the capacitor C7 on the ZMin stop plug is preventing the Z stop signal from getting recognized properly. I didn't want to desolder anything so instead I figured "hey I already have a boot loader on this thing why not use the ICSP pins?" and went that way.
So, for the 3pin BLTouch connector, I pulled +5V and GND from the ICSP connector as shown here: https://www.th3dstudio.com/wp-content/uploads/2019/03/NoQy9AVXAXKvQiE_4kUrM2QEh1t-LVaMXA-1024×768.jpg
I then plugged the orange wire (control wire — the one that controls the plunger to come up and down) to MOSI (PB5 in AVR terms) on the ICSP header.
Then on the 2 pin connector, I plugged the white wire (sensor wire — simulates the Z stop) to SCK (PB7) on the ICSP header. Left the black wire disconnected as it doesn't matter (it's just another GND and the 3 pin connector already has one).
This way you can install the BLTouch via only the ICSP header and don't have to solder or desolder anything. You also get to keep the buzzer as a bonus. The only downside is that if you don't have a bootloader you'll need to remove the BLTouch wiring to install one, but it takes mere seconds so it shouldn't matter.
By the way, to convert between AVR pin naming and Sanguino/Arduino numbering you can refer here: https://camo.githubusercontent.com/53c057cbf8ec1f640fd366b17ae249c36f072bbe/68747470733a2f2f692e696d6775722e636f6d2f654949624137372e6a7067
On the same line you can see: AVR style pin naming, Arduino style numbering and what the pins are configured to do.
You're looking for the MISO/MOSI/SCK lines for the ICSP header. Leave the RESET pin alone.
I then installed Klipper firmware while I was at it (since I already had an OctoPi setup) and configured PB7 as pull-up to 5V. I then added
[bltouch] config and also added custom homing to reset and stow the BLTouch, and also pull Z axis up 10mm before homing so it wouldn't hit anything.
Edit: If you want to use Marlin you should disable "probe ZMin plug uses endstop plug" and instead define the pin number where the white wire is connected (7 for me) then you would also add
#define SERVO0_PIN 5 (or the number for whatever ICSP pin you connect the orange wire to) somewhere in the config but Klipper is so awesome that I'm not going back so this isn't tested.
Next up is Z offset calibration. Klipper has this on lockdown for sure — just grab a piece of paper and go to https://www.klipper3d.org/Probe_Calibrate.html and follow the instructions. Nailed Z down in two minutes.
So all my homing/leveling issues are now solved, and as a result my prints are coming off almost perfectly. I got a large one running right now, but I'll update with pictures once it's done. Also can send my Klipper config if anyone needs it.
TLDR: Install Klipper firmware and connect the BLTouch using only the ICSP header. Works like a charm!
Submitted June 11, 2019 at 05:42AM by VonThing
via reddit http://j.mp/2wMjeQr