BL Touch Success
Grimsrude last edited by
So, maybe a bit unconventional for this sub-forum, but after a few days (and thinking I fried something what felt like 12 different times) I finally got my BL Touch wired up and working on my older Duet Wifi 1.0, latest FW (2.01(RTOS)) following the instructions from a combination of the DuetWiki and betrue3d's guide - some things like switching the probe type / mode from 5 to 9 though I'm unsure if that ultimately made a difference. The printer is a coreXY (TronXY X5S gutted with Titan Aero, specifically).
Anyways, I wanted to actually lay out several what seemed like odd and unrelated issues I had while getting this setup and what I think the solution(s) ended up being.
When first wiring up the BL Touch, everything seemed to be testing OK. Cut the trace so it would run on 3.3V, snipped up some extended cables, etc. Then I started testing homing instructions and got really weird erratic behavior.
An example would be the A motor run fine but any movements needing the B motor would skip steps, and randomly the Z axis would have "low steps/mm" in that it would move very fast and much farther than intended. Also during several of the tests I would get undervoltage errors and motor current errors. I fiddled around with motor connections thinking they maybe got loose, I tested my PSU (24V), tried adjusting it's voltage around, I tried probing the 3.3V and 5V rails on the duet - nothing was working, but everything looked fine.
I figured I had messed up my wiring on the BL Touch because it was the only change I made so I tried moving it to a different PWM channel. At this point, even after confirming all the gcode was updated to reflect the change, and confirming my wiring again, I was still having issues and even worse, now the BL Touch stopped responding to commands.
Thinking I must have somehow borked and fried the BL Touch completely, I pulled it, applied my backed up config files, and back to square one - everything worked again just no probe. I figured that the BL Touch was just too much hassle for the Duet and actually threw the thing in my bin. I noticed I had a inductive sensor laying around and wired that up - got a couple prints out of it before needing to swap to a glass bed.
Long story short, I got annoyed with the inductive sensors restrictions on build surfaces and went back to the BL Touch in the trash. I decided, before all else, to see if it even works at all. I used a razer blade and cute the organgish-yellow header off carefully, preserving the connector as best I could. I then plugged the sensor into the Duet without any extra wiring - just as you see in the wiki. Lone behold it worked. And even better - I tried homing(without the probe attached to the hot end carriage) and all the motors functioned.
So the BL Touch wasn't fried and somehow shorting something causing the issues - but then what was?
I took a look at the wiring extension I have made and there was a short on the 5V and possibly even to the PWM pin. Here is the kicker - when I measured the voltage, it still read 5V. But all of the symptoms were telling me something was shorting out and draining my available power.
After redoing the cable extensions, I was able to get everything going. Ran several mesh bed test runs, homed a few dozen times. Now I'm running an extended print with what looks like a near perfect first layer.
So anyways, the moral of all of this is you can get some really weird problems setting up the BL Touch, and when I was googling over the past week, I rarely found the exact problems I was having, and when I did no relevant answers. Ultimately, the setup headaches were half my fault, so if anyone having issues reads this, I suggest the following:
- Don't bother with the reprap configurator for the BL Touch itself - I found that even when importing json configs, I basically had to reread the whole config to check it anyways - I had it decide my Y endstop was at max and not min, despite tabbing back to the endstop page and it showing min. I was so confused when my motor was "stalling" but it was actually just trying to go from y330 to y150 even though it was in the y0 position. It also did inconsistent settings for the BL Touch specific settings. It's a great baseline, and I suggest using it for the base config, then going in and follwing the Wiki and betrue3d's write-up on the configuration.
- Check, check again, and triple check your wiring. My initial wire-up was shoddy and bit me in the real over just properly crimping new connectors and wires.
- For the config, especially if you are using both guides and even more-so if you used the reprap configurator, be careful of the terminology to relating to the PWM / servo enable pin. I'm not sure what the reprap configurator is referencing with using E0-E6 instead of H1-H7 indicating which heater your replacing (and relevant to which number you'll see in config). The wiki states "For example, if the E2Heat output is unused, you can use heater 3 which corresponds to the PWM1 connector." which doesn't really bring any light to why it's E2 -> H3 and P3. Especially when in the configurator, you see expansion board PWM numbers. When using the configurator, just be mindful that E2 will be heater3 pin, and E6 will be heater7 pin on the board.
- The betrue3d guide uses mode 5 instead of mode 9 for the BL touch in the M558 command. I've not noticed a difference between 5 and 9, but in case for whatever reason it's not triggering, it may be worth trying that and to lower the trigger value. reprap configuator set my trigger value to 5000 at one point and therefore wouldn't trigger at all.
If an edit could be made to the configurator, a simple change from "what heater are you replacing" to "Which pin will you be using" with options being HEATER3 (H3) through the rest would be great, since that directly correlates to both the pinout on the board as well as the value H and even P will be in the deploy and retrack probe gcode files.
Now my journey to set up independent Z axis and auto bed leveling beings ...
Thanks for the write up. The BLTouch is definitely one of the trickier probes to get working.
I think the main difference for mode 9 versus mode 5 is that it has faster response time to a trigger. It should also work more smoothly with the deploy and retract macros since you can use m401 and m402 which allows the firmware to keep track of whether the probe is deployed or not.
Wiring for the BLTouch is also commonly a problem since it has its own short leads with DuPont connectors and there are 5 wires. Lots of crimps and lots of ways to get wires crossed. Couple that with multiple valid ways to connect it and different configuration options needed for each way.
Oh and there are a bunch of clones and versions which help to confuse the situation even further.
Glad you got it working in the end. It is a good probe once it's working.