The symptom is rounded corners, excessive following error, or vibration after replacing an analog servo system. The number that matters is the position error produced while current demand, mechanical compliance, and loop delay act together. For a Delta ASD-A2 retrofit using LinuxCNC 2.7, gmoccapy, Mesa 5i20, 7i33, and 7i37 hardware, retain the drive’s internal motor loop and command it through the 7i33 as an analog velocity drive. Close the machine position loop in LinuxCNC with the encoder signal returned through the drive.
Velocity and position command paths
Two architectures fit the stated hardware: analog velocity command or step/direction position command. Both leave the ASD-A2 responsible for commutating the motor and closing its encoder-based internal loop. The difference is where trajectory position error becomes a corrective command.
| Approach | Drive mode | LinuxCNC output | Position feedback | Engineering consequence |
|---|---|---|---|---|
| Analog velocity | Velocity | Analog output from the 7i33
|
Drive-regenerated encoder signal to the 7i33
|
LinuxCNC closes the machine position loop and can apply FF0, FF1, FF2, and PID correction directly. |
| Step/direction | Position | Step and direction signals | Drive closes commanded-position loop; external feedback architecture must be defined separately | The drive receives incremental position commands, moving more position-loop behavior into the drive. |
Use analog velocity mode for this retrofit. It matches the analog command architecture already associated with the Bosch Servodyn system and uses the 7i33 for its intended analog-command and encoder-feedback roles. Step/direction remains a workable alternative when the control hardware supplies the required pulse interface and the complete feedback arrangement is deliberately redesigned.
Current, heat, and loop timing
A cornering error is a torque and timing problem before it is a display problem. Acceleration demands motor current; current produces torque and winding heat. If the position loop reacts too slowly or too weakly, the axis falls behind the trajectory. Raising gain can reduce that error, but excessive gain excites motor, coupling, ballscrew, or gantry compliance.
This is heat, not logic when repeated acceleration pushes the motor or drive toward a thermal or current limit. Read actual current, commanded current, following error, and drive status during the same move. The evidence supplies no motor rating, drive rating, current limit, or thermal threshold, so take those limits from the installed motor and ASD-A2 documentation rather than assigning generic values.
| Quantity | Why it decides the case | Where to read it |
|---|---|---|
| Following error | Shows how far actual axis position trails the commanded trajectory | LinuxCNC position-command and position-feedback signals |
| Servo execution period | Sets the interval between LinuxCNC control updates | Configured servo_period and real-time latency results |
| Motor or drive current | Separates torque saturation from a purely tuning-related lag | ASD-A2 monitor or diagnostic display |
| Command saturation | Shows whether the analog velocity request has reached its configured range | LinuxCNC command signal and drive input monitor |
| Mechanical motion | Reveals gantry racking, compliance, backlash, or resonance | Indicator measurements and observation under controlled motion |
Nested-loop mechanism
The ASD-A2 motor encoder communicates with the drive, allowing the drive to regulate the motor internally. In velocity mode, LinuxCNC compares commanded axis position with returned encoder position. Its PID calculation produces a velocity request, the 7i33 converts that request to an analog signal, and the drive supplies motor current to reach the requested velocity.
The regenerated encoder output lets LinuxCNC observe motor-derived position without taking over motor commutation. This preserves the drive’s internal control functions while retaining a CNC-level position loop. Drive autotuning and vibration-suppression filters can contribute only when they are available, enabled, and applicable to the selected drive mode; confirm their state in the ASD-A2 setup interface.
Motor feedback does not measure every mechanical error after the motor. An external encoder coupled to the motor, ballscrew, or machine axis changes what the outer loop observes. A ballscrew or linear-axis measurement can detect transmission error that motor feedback cannot, but it also places backlash and structural compliance inside the position loop and requires more careful tuning.
Preconfiguration diagnostic checks
- Record the current
servo_period, computer hardware, and real-time latency behavior. A non-deterministic control period appears as variable correction delay and limits usable loop gain. - Trend commanded position, encoder position, following error, and analog output during straight moves, corners, acceleration, and deceleration. Identify whether the error peaks with acceleration, reversals, or steady speed.
- Check whether the analog output saturates when following error grows. Saturation points toward insufficient command scaling, a configured velocity ceiling, torque/current limiting, or an undersized motion demand.
- Inspect the central-screw gantry for racking or crab motion. A single central drive can allow the two sides of a flexible gantry to deflect differently; more electronic gain cannot remove structural compliance.
- Review the existing PID and feed-forward terms, including
FF0,FF1, andFF2. Determine which terms are active before changing hardware. - Confirm encoder direction, analog-command polarity, enable behavior, fault handling, and feedback counts per machine unit at low energy before closing the position loop.
Analog velocity commissioning
- Configure the ASD-A2 for velocity command operation using its analog input. Set command scaling from the installed drive documentation and the required machine velocity; the evidence provides no safe universal scale.
- Connect the 7i33 analog command channel to the corresponding drive analog input using the drive’s specified reference and shielding arrangement.
- Connect the drive’s regenerated encoder output to the 7i33 encoder input. Verify electrical compatibility from both hardware manuals before energizing the interface.
- Map encoder feedback into the LinuxCNC axis or joint position feedback path. Verify that positive commanded motion produces positive feedback. An inverted loop can command immediate acceleration away from the target.
- Match encoder scaling to measured machine travel. Command a controlled displacement, measure physical travel, and compare it with the displayed position.
- Start with conservative velocity, acceleration, and PID action. Tune the drive’s internal velocity behavior first, then tune the LinuxCNC outer position loop.
- Apply feed forward deliberately.
FF1commonly addresses velocity-related following error, while PID correction removes remaining error; use trend data to judge the effect. TreatFF0andFF2as separate terms whose need must be demonstrated by the error shape. - Configure following-error limits and drive fault inputs so either controller can stop motion when control is lost.
Verification and recurring pitfalls
Repeat the same test path at progressively higher velocity and acceleration. Plot position command, feedback, following error, and analog command on a shared time base. A sound result shows correct direction, repeatable scaling, no sustained command saturation, and following error that returns toward zero after acceleration events without growing oscillation.
Rounded squares alone do not prove that the Bosch Servodyn hardware is defective or that the ASD-A2 will remove the symptom. Insufficient PID action, missing feed forward, command saturation, loop-period jitter, and gantry compliance can produce similar geometry. Separate them by correlating error with acceleration, control output, drive current, and measured mechanical deflection.
Do not use higher gains to force a flexible gantry through resonance. If vibration frequency remains tied to the structure while current and following error oscillate, correct the mechanical stiffness or command profile before further electronic tuning.
FAQ
How do I connect a Delta ASD-A2 to LinuxCNC with a Mesa 7i33?
Configure the drive for analog velocity command, connect the 7i33 analog output to the drive input, and return the drive’s regenerated encoder output to the 7i33. Verify signal compatibility, polarity, scaling, enable logic, and fault handling from the installed hardware documentation.
How do I choose between velocity mode and step/direction mode?
Use velocity mode when LinuxCNC will close the machine position loop from encoder feedback through the 7i33. Choose step/direction only when the pulse interface and feedback architecture have been explicitly designed around the drive’s position mode.
How do I reduce rounded corners and following error?
Trend command, feedback, error, analog output, and drive current through acceleration events. Correct scaling or saturation first, verify servo_period behavior, then tune PID and the applicable FF0, FF1, and FF2 terms.
How do I keep ASD-A2 autotuning and vibration filters?
Leave the drive responsible for its internal motor loop and select the required control functions in the drive setup. Confirm in the ASD-A2 documentation that each function applies in analog velocity mode and verify the result with following-error, current, and vibration measurements.
Stop commissioning if the axis runs away, feedback is unstable, the drive repeatedly reaches a current or thermal limit, or the required electrical interface cannot be verified. Escalate to official Delta Electronics or Mesa support with the wiring diagram, ASD-A2 configuration, servo_period, fault records, signal traces, and motor/drive nameplate data.