Duet 3 Mini 5+ 5V supply capacitive load limits
I have another off-the-beaten-path question regarding the Mini 5+. I am currently troubleshooting an occasional random BL Touch behaviour. In my installation the BL Touch is wired using approximately 1.5 meter length of 26 AWG conductors. I have done a lot of work using an oscilloscope to minimize the electrical noise and coupling that the Bl Touch sees - it used to be 0.85V p-p and now it's below 190mV p-p.
I would like to also add a low-ish impedance Nichicon PW power supply decoupling capacitor in the proximity of the BL Touch. What would be a sensible maximum capacitance that the Mini 5+ can tolerate on its 5V internal regulator? I tried with a 33uF capacitor and everything is working perfectly but I would like to go a it higher, if possible.
dc42 administrators last edited by
@rext3d what is the random behaviour that you are trying to cure?
Please post your config.g file.
@dc42 Thanks for your response.
The board is running Klipper, not RRF, but I know that the setup & configuration is just fine. Note that I am using IO_2 pins 2, 3, 4 & 5 for BL Touch interfacing.
The issue itself is multi-fold and very random in nature: once every few days Klipper randomly fails to establish comms with BL Touch posting "failed to verify sensor state". Several times it also failed to recognize the pin near state during homing, which resulted in a hot end crash (good thing I home with very reduced stepper current). Between these events the printer works fine for days with no issues - including multiple multi-probe 10x10 grid bed geometry measurements with all heaters and steppers on.
It all seems quite random in nature and my prime suspect is EMI & electrical noise due to coupling. I was really shocked to see 0.85V p-p noise on the BL Touch 5V power and SIG lines when the steppers are powered-up, even when not moving. I separated heater & stepper wiring from the signal wiring to reduce any potential coupling. This dropped the noise magnitude to 190 mV p-p. I also switched the BL Touch (v3.1) to 5V mode to improve the noise margin. I don't want to go totally nuts and start using shielded BL touch wiring, so the cap in proximity to BL Touch is meant to be additional "goodness" so that I can start trusting the printer again...
dc42 administrators last edited by dc42
@rext3d make sure that you haven't enabled the internal pullup resistor on the IO2_IN pins, because doing so will worsen the noise margin.
There should be no need to add extra capacitance to the 5V rail, because the 5V regulator can respond to changes in load very quickly.
@dc42 Thanks very much for your suggestion! The Klipper config does indeed use '^' to enable the internal pull-up and describes how the pull-up is required by BL Touch. But of course only for boards that do not provide external pull-up! This also explains why the 'voltage low' level was reading unusually high in my installation (I cannot remember the exact value but it was around 1V I believe. Combine that with .8V noise and just over 3V for 'voltage high' and there was really not much wiggle room left!
I now disabled the internal pull-up and reverted the BL Touch to default factory setting. I will keep my eye on it for the next few weeks.
Thanks again for your help!
Quick update: after many prints and countless hours of me trying to purposefully trigger BL Touch misbehaviour, I can confirm that everything has been working perfectly.
In the end I did four separate things:
- Routed the heater and stepper wiring in one bundle (high current & noise) and the BL Touch, fans, thermistor and stop switches in a second bundle, both spaced at least 2 inches apart.
- Added a ground reference wire between the main 24V printer supply and the dedicated MeanWell Raspberry Pi 5V supply that I use. The original setup worked flawlessly with the Creality Atmega board for almost a year, but I suspect that everything became more noisy with the high performance Duet and referencing the grounds through the USB cables just seems wrong. Even though, everyone who is using Klipper and an external Raspberry Pi power supply does exactly that.
- I disabled the internal pull-up resistor as discussed.
- I decided to retain the 33 uF capacitor near the BL Touch. I feel that it will provide a good reservoir for the initial inrush current associated with BL Touch pin movements.