Custom Bart Dring FluidNC controller

One thing that I became aware of recently is that there are two low side switched IO on the MOSFET section, and the high side voltage looks to come directly off the high side power supply. There appear to be overcurrent protection for the low sides, but it’s probably not a healthy thing to short the high side. Something I’ve always hated about low side switched circuits in general- a common potential trap

EDIT: Those aren’t polyfuses, they’re diodes- presumably for dealing with inductive load collapses.
Still not a good idea to ever short those high side pins.

@Britt

There’s no way that configuration is right.
It’s telling FluidNC that Z is to be homed by moving to a positive direction, and that when it triggers it is at position 200mm. That’s wrong.
First of all, there’s no positive direction limit switch defined in the config.
Second, I don’t believe LowRider 3s have a positive Z limit switch physically present.
This part of the config should get cleaned up.

1 Like

Hrmm… I believe that the current iteration of the LowRider includes a full suite of homing switches by default (rather than being an option). This includes dual Z switches (since there are two Z motors). And the default Z direction should be positive away from the work surface. This should all be configured in the default configuration from the V1 repo. And having the Z-pos be 200mm at home is perfectly reasonable, if his machine is truly set up where the stops are set to 200mm above the work surface.

I would note that best practices would still warrant re-homing Z to properly “zero” the bit to your work surface, or stock surface, depending on how you set up your CAM. The primary use for Z-homing with the switches is to “square” the gantry.

As a reminder, the limit switches are only used for homing/squaring, and the machine relies on “soft stops” in the firmware and/or the operator to provide sane CAM to avoid actually overrunning the physical limits of the machine.

Oh, and Ryan will correct me here in a second…

2 Likes

It isn’t but doesn’t matter, we do not home Z on an MPCNC. It can be changed to cycle = 0 but the way the instructions are set up it should not be needed as home before unlocking is not used either.

Correct, best not to short any pins if possible.

Do you think a design change is needed or just a note not to short pins, or do not connect or disconnect anything with the power on?

My take: Maybe that’s OK with a note… But, Polyfuses are cheap. Even a real fuse would seem better than just tying those to VMOT.
Its probably worthwhile to have a pro like @jono035 weigh in on this.

That means I’m going to have to build myself a LR3 one of these days…

1 Like

If I change it to cycle = 0, will that disable the HomeZ button?

No.

If you want a probe Z button you can make a macro.

1 Like

OK, I’m all caught up again with this thread. That’s not to be confused with saying I understood all that I read / scanned. :rofl:

3 Likes

I think it is about time to close this and start breaking out more specific topics.

2 Likes

With FETs that small, it might be a struggle getting the FET to survive the I2T let-through energy of the fuse before the FET smokes itself.

I’d say that if it’s going to be a fuse, it either needs to be in a carrier or be self-resetting like a polyfuse. If it’s a soldered on SMT fuse then you might as well just replace the FET anway.

Polyfuses are typically super slow, have a huge I2T energy let-through and have some pretty intense temperature sensitivity. Fuses can be somewhat better but the ultra-fast ones that are appropriate for protecting smaller silicon tend to be super expensive.

From looking at some specs, it appears the maximum safe instantaneous current for that FET is ~15A, so there’s a good chance a serious short on a power supply with a decent amount of capacitance will exceed that anyway, making it unprotectable. The FET is at 1.5V forward at that point, so around 1.5 ohms of resistance, which is very high impedance for a deliberate or accidental short. The safe operating area is around 1ms for a 15A resistance limited pulse so assuming we added 1.5 ohms of resistance in the PTC/fuse/etc then a dead 24V short would be survivable for 1ms.

By comparison, a Bel 1A hold SMD polyfuse will take around 40ms to trip at 20°C. At -20°C it trips at 60% higher current which means more than 60% longer trip time while at 60°C it trips at 60% trip current, so will likely nuisance trip even at 1A. They’re also $0.50 in the quantities that would be used here so would add $1 to the board for the 2 channels. The minimum trip time for the polyfuse is around 30ms so if I were determined to protect that FET from a dead short with a polyfuse, I’d need to limit the prospective short circuit current to probably around 6A or so. The lowest rated polyfuse from that series will trip at 30ms at 10A which is too much, so to match that up, I’d need to limit the PSCC more to maybe 3-4A and use a 300mA polyfuse. So that would take the ~4A, 50mR open drain output and turn it into a 300mA 6R open drain output. That’s without worrying about operating at anything other than 20°C which will push further away from those specs.

A Littelfuse 1A rated very-fast carrier fuse will trip in 3ms at 15A which is still too long. A 500mA one will blow in 1ms at 10A which is probably the closest I’d be willing to go. The specs are also WAY more stable across temp, with it being +/- 5% in trip current from -20°C to 80°C. That would actually be likely to protect the FET but would result in a 500mA rated output with 1.5R of resistance. These parts cost more like $2 each for fuse and carrier so ~$4 per board.

So trying to protect those FETs from a short is going to cost a lot of ruin their performance. A better option would be to move to bigger FETs with more capability and more thermal mass so their safe operating area is larger.

I typically prefer to use open-drain outputs for stuff like this because they need less protecting. A wiring short to ground can’t hurt them, it just results in the output being always on and is far more likely than a short to Vcc, outside them being miswired or trying to power a dead component, both of which can happen with high side switches as well. They’re also dramatically cheaper to implement and typically higher performance to boot.

My approach would be to put a warning in, point out that it’s possible to replace the FET if it dies and you’re ok with SMT soldering and call it a day. Even with the protection measures above, I suspect it would be a net negative for all involved. They’re expensive enough that unless 10% of boards were dying in this fashion, it wouldn’t be worth it.

If it proves to be an issue, moving to a bigger FET that’s easier to replace would probably be my first port of call for a board this cheap/simple.

2 Likes

The thing is, the FET Isn’t involved in a scenario when shorting the VMOT pins. They’re just the low side switch of a circuit formed when the downstream device is connected to VMOT. If the pin is shorted, it’s an external return path and not through the FET.


image

If someone shorts one of those, it’ll either burn a trace on the board, put the input power supply into protection, or similar. VMOT is always hot, and tied directly to jackpot board incoming power on TB1

1 Like

Ah, I see what you mean. In that case, this is why DIY stuff should always use a decent power supply with current limit, or be fused upstream. I would never fuse at that point specifically.

For something running at relatively low DC voltages, I wouldn’t anticipate a short direct from Vmot to ground to be something that’s all that dangerous, at least no more so than anything else on a CNC router/laser engraver etc.

Edit: It’s a 3mm trace feeding that, so probably 10A+ to burn one off. Not impossible, but not something I’d personally concern myself with. It’s a conductor thermal failure mode so much easier to protect that than the FET, for sure. Having an automotive fuse on an in-line holder would be a decent option. Adding holders for a mini-auto fuse to the main input on the board would also be a possible change, although I’d still want to spend some time considering the cost vs reward of doing so.

All my stuff is on a 40W 24V supply, so even with a dead short, I’m not smoking anything.

1 Like

Maybe if there was protection to be added it would be between TB1 and the run over two TB2. You said a polyfuse as around $.50 for this? It seems like a worthy feature for a hobbyist board.

Though, I bet the BTT and all the other manufacturers sell a LOT of replacement boards because of dumb design decisions like leaving +5V pins exposed on limit switch wiring. Something that I think Ryan did very correctly and which will make this a notably more robust solution for DIY use.

2 Likes

Yeah, that’s definitely dumb. Always better to be pulled-high with high impedance and then switched low with low impedance where possible. In this case I think that’s from Bart’s original design.

Given the relatively slow speed of smoking something on the board in that failure mode, it could well be worth it. For protecting the entire input of the board, especially if it’s driving something that’s potentially 3-4A, that’s a pretty meaty polyfuse. That’s heading more into the through-hole disc versions. If it were something that were sized for say 6A hold, that’s probably 30A to reliably trip it. At that point, you’ve got a 700W power supply, which doesn’t seem particularly likely.

Honestly, I think all of this is solved by recommending that people choose reasonably sized power supplies. Saves them money, as well.

4 Likes

That’s a good recommendation.

5 Likes

Thank you both for taking a deep look!

2 Likes

@jamiek The new 3.7.7, New setting, “$STA/SSDP/Enable This allows you to disable SSDP and mDNS to save memory”, If I am shipping these out set to AP mode should I change anything?

I am actually shipping them out in fall back to AP mode, so maybe I just need to set AP mode not fallback and this is not a concern?

Any other changes you made to this one I should set by default? I know you poked around behind the scenes quite a bit.

1 Like

It only makes a difference for STA mode, so AP mode won’t see a difference. I would suggest turning off SSDP for STA mode and just use a static IP or MAC based DHCP rule, because memory is a little scarce to begin with, and unpredictable memory consumption is dangerous.

The other changes are mostly minor. One change that should help things is the “runaway messages” fix, where a low memory warning can consume a little memory and generate another low(er) memory warning. This used to produce bursts of messages and eat up a lot more memory than necessary.

4 Likes

Thank you!

1 Like