FormLabs Form 1+ Stepper Motor Control
I have a broken FormLabs Form 1+ laser resin 3D printer and I've been figuring out how to operate subcomponents for potential repurposing in the future. I just got a basic (if imprecise and incomplete) understanding of how to operate its 64mW 405nm laser, which I considered the most challenging component. Now that's done, I'll wrap up my Form 1+ exploration by looking at what I considered the least challenging component: its two stepper motors.
The larger of these motors operate the Z-axis, the smaller one operates the resin tilt tray. Both of those have four-wire connector to the printer mainboard, with pins labeled A+/A-/B+/B-. This identifies them as bipolar stepper motors popular in the field of FDM 3D printers and thus quite familiar to me. In order to repurpose these motors elsewhere, I just need to know two parameters: their operating voltage and current limits.
To determine these values, I started by finding the existing stepper motor driver chip which was placed close to the two stepper motor connectors. It is a Texas Instruments DRV8821 dual stepper motor driver chip. The chip itself is capable of handling up to 32V and 1.5A but configured for lower values for use in this printer.
Voltage was easier to determine, as I looked up position of motor voltage (VM) pins on the chip and probe them while the printer is active. They measured 24V DC. Finding the current limit took a bit more work. DRV8821 datasheet section 7.3.2 Current Regulation gave the formula: (Current Limit) = (Reference Voltage) / (5 * Current Sensing Resistor). There are four current sensing resistors wired on the circuit board, so I had to figure out which motor is wired to which pins on the driver. Probing for continuity, I found the following:
Motor | Mainboard label | DRV8821 label | DRV8821 pin# |
---|---|---|---|
Z | A+ | AOUT1 | 5 |
Z | A- | AOUT2 | 3 |
Z | B+ | BOUT1 | 48 |
Z | B- | BOUT2 | 46 |
Tilt | A+ | COUT1 | 27 |
Tilt | A- | COUT2 | 25 |
Tilt | B+ | DOUT1 | 22 |
Tilt | B- | DOUT2 | 20 |
This tells me the current sensing resistors AISEN (DRV8821 pin 4) and BISEN (47) are associated with the Z-axis motor. Both are labeled R100 which I decoded to mean 0.1 Ohm. CISEN (26) and DISEN (21) are then for tilt motor which are labeled R200, for 0.2 Ohm. Probing the circuit while powered-up, I found the voltage dividing resistors supplying reference voltages and measured it at 0.5V for both ABVREF (17) and CDVREF (18).
Using DRV8821 datasheet formula, I calculate the following:
- Z-axis stepper motor can be driven with 24V DC at a maximum of 0.5/(5*0.1) = 1A.
- Tilt stepper motor can be driven with 24V DC at a maximum of 0.5/(5*0.2) = 0.5A.