This may be a long shot, but I was wondering if the signals seen across a stepper motor's windings could indicate whether the stepper was being told to move over some short time period. This is in particular for the stepper used on extruders.
I've read that PWM in used in stepper drivers and controls current patterns to move the motor. And that a current must also be maintained through the windings if the motor is to hold its position. So it would seem that there is always a pulsing waveform across the windings whenever the stepper is energized, correct? When the motor is holding its position, is there anything distinctive about the waveform?
This is for a filament sensor I'd like to make. The sensor would be located at the extruder motor. It would monitor movement/flow of the solid filament. A lack of filament flow could be because of filament runout, tangled or caught filament, or non-extruding travel moves. I'd like to be able to tell the first two causes from the last one (when it's not supposed to be extruding for some hundreds of milliseconds or so). It would also be nice to tell 'no directed movement' from 'very slow movement' which would happen with small nozzles, slow speed or other slow extrusion situations.
I watched the waveforms with an oscilloscope while printing, but travel moves were quick and relatively rare, so I couldn't definitely see if there was something I could use during those times. Could I just filter the pulse waveform (what corner frequency?) to get an approximation of the current waveform going through the coils -- on the idea that the waveform should resemble a DC level during non-extruding but still energized times. Perhaps another low-pass filtering of that DC level, or a high-pass of the waveform to indicate directed extrusion? Using DSP on a micro, of course.
Are there any experts here on the subject of low-level stepper motor control?