Working documentation
This page is generated from the project's working notes. It records a real retrofit in progress, corrections included. Anything marked 🔴 or ⚠️ is unresolved or carries a caveat - read those before acting.
Servo control mode: step/direction vs analog velocity¶
Decision support for CLAUDE.md §5.2. Written 31 Aug 2026, before Pn000.1 was read.
✅ Update 2 Sep 2026: this question is CLOSED. The answer is analog velocity,
Pn000.1 = 0, and the drive settings stay as they are. Proved from the wiring diagram - see the section at the foot of this file, which is the part to read. The 7I77U was ordered (Mesa order «redacted») before the proof was in; the bet paid.The trade-off analysis below is kept because it is still the honest record of why Option B is the right build, and because it names what analog costs in commissioning (PID tuning per axis). Read it as background, not as an open decision.
What each actually does¶
Step/direction (position mode, Pn000.1 = 1). Mesa sends pulses; each pulse means "move one increment". The drive closes the position loop using its own encoder. LinuxCNC counts out pulses and trusts the drive to follow.
Analog velocity (Pn000.1 = 0). Mesa outputs a voltage meaning "run at this speed". The drive spins the motor at that speed. LinuxCNC closes the position loop, reading the encoder back itself.
The real difference is who is responsible for position - and therefore who notices when something goes wrong.
Trade-offs¶
| Step/direction (Option A) | Analog velocity (Option B) | |
|---|---|---|
| Wiring | Two differential pairs per axis | Analog pair per axis plus encoder feedback back to Mesa |
| Hardware | 7I76EU alone | 7I77 required |
| Does LinuxCNC know actual position? | No - only where it commanded | Yes - reads the encoder continuously |
| Following error detection | None. A stalled or faulted axis goes unnoticed | Real. Faults out when the machine does not follow |
| Tuning | None in LinuxCNC; the drive's loop is already tuned | A PID loop per axis. Real work, and fiddly |
| Noise immunity | Very robust - digital pulses on differential pairs | Analog is susceptible to noise, offset and drift. There is an 8 kW VFD in this cabinet |
| Speed ceiling | Pulse rate limits; high resolution and high speed can conflict | None - analog is continuous |
| Drive configuration | Must change Pn000.1 and set electronic gearing on three working drives |
Drives stay exactly as they are; only the command source changes |
| Commissioning effort | Less | More |
What tilts it for TuChop¶
- The drives already work. Whichever mode
Pn000.1reports has been running this machine for over a decade under Masterwood control, with following error confirmed negligible after homing. Changing mode means reconfiguring three proven drives - and if the machine then misbehaves, the cause is ambiguous between gearing, setup and a real fault. That is elective surgery on the healthiest part of the machine. - Following error detection matters here. 2800 mm of travel, 8 kW spindle, tool in the work. Under step/direction a drive that faults mid-cut leaves LinuxCNC counting pulses into empty air. Under analog it faults out.
- The 7I77 closes the output shortage anyway (see §5.4) - a board is needed either way, and the 7I77 solves both problems at once.
Recommendation¶
Go with whatever Pn000.1 already reports. The mode that has been running this machine successfully carries the fewest unknowns.
- If it reads 0 (analog velocity): buy the 7I77, wire encoder feedback back to Mesa, and budget commissioning time for PID tuning per axis. Evidence so far points here -
Risoluzione DAC=12 bitacross eight channels only means something if the controller commands by voltage. - If it reads 1 (step/direction): take it. Simpler, cheaper, no tuning, and the drives are already configured for it. Add a second 7I84U for the outputs. Do not convert a working step/direction machine to analog for theoretical benefits.
✅ ANSWERED 2 September 2026 - from the wiring diagram, not the drive panel¶
Pn000.1 = 0, speed control with analog reference. The drives are running in analog velocity mode now, and their settings should stay exactly as they are.
This is settled from the drawing alone. No panel reading was needed to get here, and no drive was touched.
The proof, in three parts¶
1. The analog reference is wired¶
CN1-5 (V-REF) and CN1-6 (SG) carry a dedicated individually screened pair, SCH 2x0.50, from pins 8 and 15 of the axis D-sub, on every one of X, Y and Z. Sheets 7-9 label them REFERENCE and 0V. Nobody runs a screened analog pair to a servo drive and then commands it some other way.
2. The pulse train is not wired - and physically cannot be¶
CN1-7, 8, 11, 12 (PULS, /PULS, SIGN, /SIGN) are the position reference inputs. They appear nowhere - not on sheets 7-9, not in the SGM axis connector schedules on pages 6-8.
More than that, there is no room for them:
| Pins used on the 15-way | 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 |
| Pins spare | 1, 2 and 14 - only three |
| Pins a step/dir pair needs | four |
| Conductors in the loom | SCH 2x0.50 (both used, the reference pair) + SCH 8x0.25 (seven of eight used, all encoder) |
| Conductors spare | one, in the encoder cable |
A pulse train could not reach these drives even if someone wanted it to. That is the part that makes this conclusive rather than merely persuasive.
3. The encoder is fed back to the controller¶
All three differential pairs - PAO/PBO/PCO on CN1-33/34, 35/36, 19/20 - run back into the cabinet. Under position mode the drive closes its own position loop and the controller has no need of them. Running all three back, screened, on every axis, only makes sense if the controller is closing the position loop. That is the definition of analog velocity mode.
Ruling out the other SGDH modes¶
Pn000.1 has more than two settings. The wiring eliminates every one of them:
| Mode | Ruled out because |
|---|---|
1 position (pulse train) |
The pulse inputs are not wired, and there is no conductor for them |
2 torque |
Torque control uses T-REF on CN1-9/10. Those are not wired; V-REF on 5/6 is |
3-9 internal-set-speed and switching modes |
All need extra sequence inputs (/SPD-A, /SPD-B, /C-SEL) allocated and wired. The only sequence inputs wired are /S-ON (40), /ALM-RST (44), P-OT (42) and N-OT (43) |
A speed with zero clamp |
Needs /ZCLAMP on a sequence input. Not wired, per the row above |
0 is the only setting the physical wiring supports.
The machine's own behaviour closes the loop¶
The machine currently powers up, homes repeatedly and jogs. If Pn000.1 were set to anything the loom cannot feed, the axes would not move at all. They do. The parameter therefore matches the wiring.
Corroborating evidence, now demoted to corroboration¶
C:\Windows\Mw310.inisetsRisoluzione DAC=12 bitacross eight DAC channels- DAC values appear on the MW310 homing screen
- The motor encoders are serial (
PS//PSonly, sheets 29-31), so the dividedPAO/PBO/PCOoutputs are the only position feedback available to any controller - and they are wired
🔴 What this does and does not license¶
Does: Pn000.1 stays as it is. Option B is confirmed as the build. The 7I77U was the right purchase. LinuxCNC closes the position loop, reads the drive's divided encoder, and commands +/-10 V. No drive parameter needs changing for the retrofit - the command source changes, the drive does not.
Does not: this tells us the mode. It does not tell us the scaling, and LinuxCNC needs the scaling to move an axis a known distance. Those still have to be read off the front panel:
| Parameter | Why LinuxCNC needs it |
|---|---|
Pn201 PG divider ratio |
Sets how many pulses per motor revolution come out of PAO/PBO. Feeds directly into the encoder scale. Without it, position is uncalibrated |
Pn300 speed reference input gain |
How many volts the drive expects for rated speed. Feeds directly into the analog output scale. Without it, the velocity command is uncalibrated |
Pn000.0 direction selection |
Which way positive volts turns the motor. Gets the sign right first time instead of by trial |
Pn100-Pn103 loop gains |
Not to be changed. Record them so a working machine can be restored if anyone ever does |
Pn50A, Pn50B input allocations |
Confirm on the panel what the drawing already shows about /S-ON, P-OT, N-OT, /ALM-RST |
⚠️ Read, do not assume, and do not use catalogue defaults. A machine builder sets Pn300 and Pn201 to suit the machine; TEA had every reason to. Guessing either one produces an axis that moves confidently to the wrong place.
The front panel job has changed shape, not gone away. It was: decide the control mode, which decides which board to buy. It is now: capture the scaling constants, which decide the LinuxCNC configuration. Same five minutes at the same three drives, still read-only, still nothing unplugged - but it is now calibration data rather than a decision, so it can wait until the rack is back in and the machine runs.