fellesverkstedet / fabricatable-machines

Motion systems for flexible digital fabrication and research. Easy to fabricate and customize. Documentation: https://github.com/fellesverkstedet/fabricatable-machines/wiki
163 stars 35 forks source link

Add spindle stall detection functionality #29

Closed Jaknil closed 4 years ago

Jaknil commented 5 years ago

I think it might be relatively easy to detect a stalled spindle and make it automatically stop the milling job.

We already monitor all 4 stepper motor drivers and if one of them throws and alarm signal we stop the job by triggering the ABORT pin on the grbl controller. It would be great if the spindle could do this too.

I have primarily looked at the Windward BLDC-DZZ 36V Spindle driver but there might well be similar possibilities on other spindle drivers, see links to manuals below.

We have observed that the BLDC driver detects a stalled spindle and gives an error message "F3" on it's display. I think it also sends a 5V signal on pin 13 marked as "Emergency stop signal out" We should measure its voltage and if it goes HIGH or LOW relative to pin 14 (signal GND) or pin 8 (signal source) when the spindle stalls.

HRBL card We should add extra ALARM inputs on the controller card to avoid mixing the signal circuits. I have drawn up a schematic that fits these into the cable that already goes to the spindle driver. I managed this with minimal changes, everything fitted inside the cables and ICs we already planned to have on the card. I don't think there are any risks with adding this function here.

Unshielded electronics For the machines that does not use a dedicated controller it could possibly be wired straight onto the ABORT pin if the grounds are shared. Possibly it needs to be inverted.

DIY AC detection, if needed If the driver lacks means of telling us if it has stalled, we could make a very simple circuit that converts the AC output to a 5V signal (falstad simulation of circuit)[https://github.com/fellesverkstedet/fabricatable-machines/blob/master/hrbl-shield/dev_files/circuit-20190701-1734.circuitjs.txt] Then we would need to compare it to the Spindle ENABLE signal to see if it should be on or not. Either with logic componentes/transistors or with a second microcontroller. I think another cheap controller (2$) for flexibility is best. Otherwise we might quickly run into problems with start up delays etc. (Please note that it is normally much better if the spindle driver just tells us if the spindle is stalled instead of building detectors.)

References:

BLDC

image

image

Summary: I hope we can listen for an error signal from the spindle driver the same way we listen for stepper driver errors on our next generation HRBL boards. It looks very promising.

Jaknil commented 4 years ago

I added support for an extra optional alarm source on the latest version of the HRBL card.

alarms

See the full schematic for more details