Skip to content

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.

SGDH drive parameters — the capture

Started 5 September 2026. Read off the drives' own panel operators, one axis at a time. This is the record that lets a working machine be restored, and it is the source of the two numbers LinuxCNC needs for scaling.

⚠️ Read-only exercise. Nothing here is to be changed. If a value is on screen, do not press UP/DOWN; back out with DATA/⬅.

How to read one

MODE/SET cycles mode: Status → FnPnUn
UP / DOWN change the number on display
DATA/⬅ tapped shifts the flashing digit left (use it to jump hundreds)
DATA/⬅ held ~1 s switches between the parameter number and its value

🔴 Never press DATA/⬅ while an Fn number is showing, and never hold MODE/SET. Fn executes things, including parameter initialisation.

✅ Verified on the Z drive, 5 Sep 2026 — the tap-shifts / hold-shows behaviour is as described.

Display format — and an honest caveat about it

There is no parameter called Pn000.1 on the drive. You cannot navigate to it. Pn000 is a single parameter that displays as n.####, and those four digits are four independent settings packed into one number. Yaskawa names them Pn000.0 through Pn000.3 by digit position.

✅ The convention is CONFIRMED — leftmost is .3, rightmost is .0

Neither manual on Drive states it directly (both text layers are truncated — the user's manual at page 131, the Linear supplement at page 91). But it can be proved from this machine's own readings against two defaults the manual does state:

Pn50A.3 P-OT Signal Mapping — Default Setting: 2 Pn50B.0 N-OT Signal Mapping — Default Setting: 3

Both read at factory default on all three drives: Pn50A = 2100, Pn50B = 6543.

Rightmost = .0 Leftmost = .0
Pn50A = 2100.3 2 ✅ matches 0 ❌
Pn50B = 6543.0 3 ✅ matches 6 ❌

Two independent checks, both passing one way and failing the other. So:

n. 3 2 1 0        <- digit position
n. 2 1 0 0        <- Pn50A as read
      └─────────── Pn50A.0 = 0

⚠️ This was an assumption until 5 September and is now settled. Everything below that depends on digit position — the direction bits, the brake allocation, the overtravel modes — is confirmed rather than inferred.

n.0 0 0 0
    │ │ │ └── .0
    │ │ └──── .1
    │ └────── .2
    └──────── .3

The capture

Parameter What it is Z X Y
Pn000 Basic switches: .0 direction, .1 control mode 0 1 1
Pn001 Application switches 1: stop modes 0 20 20
Pn002 Application switches 2: .2 absolute encoder usage 0 0 0
Pn100 Speed loop gain 90 40 40
Pn101 Speed loop integral time constant 1000 2000 2000
Pn102 Position loop gain 40 40 40
Pn103 Inertia ratio 400 689 305
🔴 Pn201 PG dividing ratio → encoder scale 2000 2000 2000
Pn202 Electronic gear numerator 4 4 4
Pn203 Electronic gear denominator 1 1 1
🔴 Pn300 Speed reference input gain → analog scale 500 475 477
Pn406 Emergency stop torque — live on X and Y only 800 (inert) 800 800
Pn50A Input signal allocations 1 2100 2100 2100
Pn50B Input signal allocations 2 6543 6543 6543
Pn50E Output signal allocations 1 0 3211 3211
Pn50F Output signal allocations 2 — .2 is /BK 200 0 0
Pn506 Brake reference, servo-OFF delay 50
Pn507 Brake reference output speed level 100
Pn508 Brake timing during motor operation 50

Read them in the order listed — it is ascending, so the DATA/⬅ digit shift takes you from one to the next with the fewest presses.

Pn506-Pn508 are Z only — X and Y have no brake. Pn406 is X and Y only — it is inert on Z (see Pn001.1 below).

🔴 How to actually capture these without going mad

The drive shows one value at a time on a small LED, so photographing each one is about fifty photos per pass and no faster to read back.

Print this page, fill the table in with a pen, then photograph the sheet once.

That is better than a spreadsheet for three reasons: it is one source of truth rather than two, your handwriting is on the record so a mis-read digit can be spotted later, and it needs no screen at the machine.

⚠️ Do not build a parallel table in Excel. This page is the record, it is version-controlled, and a second copy will drift from it.

If a pen is not practical, a voice memo works well — hands stay on the buttons, read each one aloud as you go. Transcribing afterwards is quick and the audio survives as the raw record.


Decoded so far

🔴 The four findings that matter

1. ✅ Pn201 = 2000 on all three — the encoder scale

2000 pulses per motor revolution on the PAO/PBO/PCO outputs, identical on X, Y and Z.

LinuxCNC counts quadrature edges, so 8000 counts per motor revolution. Combine with the measured axis travel (survey item 2) and the scale falls straight out.

2. 🔴 Pn300 differs per axis, and none of them is the default

Units are hundredths of a volt at rated motor speed.

Pn300 Volts at rated speed
X 475 4.75 V
Y 477 4.77 V
Z 500 5.00 V

The factory default is 600 (6 V). Not one axis is on it. X and Y differ from each other by 2 counts — that is a calibration trim, someone dialling out a scaling error axis by axis.

⚠️ Had we assumed the default, every axis would have been ~26% out and X and Y would have disagreed with each other by a whisker. This single row justifies the whole capture.

For the Mesa 7I77U, whose output is ±10 V, this sets the per-axis output scaling directly.

3. 🔴 Pn000.0 — X is standard, Y and Z run REVERSED

Pn000 .0 direction .1 control mode
X 0 0 — standard, forward = CCW from the load 0
Y 1 1Reverse Rotation Mode, forward = CW 0
Z 1 1Reverse Rotation Mode, forward = CW 0

Pn000.1 = 0 on all three — speed control, analog reference, confirmed on every drive. The 7I77U choice holds.

✅ Both readings now confirmed

Pn000.1 = 0 on all three — speed control, analog reference. X is 0000 and Y and Z are 0001, so the second digit from the right is 0 in every case. This held under either convention and is now doubly settled.

🔴 Pn000.0 = 1 on Y and Z — Reverse Rotation Mode, CONFIRMED. X is standard. The drives are flipping the sign for two of three axes, and the manual notes the encoder output phasing flips with it, so command and feedback stay consistent within each drive.

This does not tell you which way the machine moves — the ballscrew hand and motor mounting still sit between the drive and the axis. But it does mean the drives are not uniform, so the direction check (survey item 3) must be done on all three independently.

This does not tell you which way the machine moves. It tells you the drives are not uniform, so the direction check (survey item 3) must be done on all three axes independently and none of them can be inferred from another.

4. ✅ Pn50F = 200 on Z — the brake is confirmed on SO2

Read right to left, Pn50F.2 = 2 on Z, and 0 on X and Y.

Pn50F.2 is the /BK allocation, and 2 means output SO2CN1-27/28. That is exactly the pin the wiring diagram showed feeding -KAF.

🔴 So the Z brake story is now closed end to end, from the drive parameter through the relay to the motor:

Pn50F.2 = 2  →  /BK on SO2 (CN1-27)  →  -KAF coil  →  KAF contacts  →  -FR.Z motor brake

And Pn50E = 0 on Z against 3211 on X and Y: Z has its other sequence outputs turned off entirely, because SO2 is committed to the brake. X and Y keep the factory default allocation.

The brake timing, no longer needing a stopwatch:

Z Meaning
Pn506 50 Brake reference — servo-OFF delay
Pn507 100 Brake reference output speed level, rpm
Pn508 50 Brake timing during motor operation

⚠️ Pn506 and Pn508 are in units of 10 ms on this drive family, so 50 reads as 500 ms — worth confirming against Appendix B, which our copy of the manual does not reach.


Pn000 = n.0000 (X) — the control mode is CONFIRMED ON THE DRIVE

Pn000.1 = 0 — speed control, analog reference.

This was established on 2 September from the wiring alone, three independent ways: the V-REF pair wired on all three axes, the pulse inputs not wired and no spare pins to carry them, and all three encoder pairs fed back. It is now read off the drive's own panel, which is the last word.

🔴 The Mesa 7I77U was the right card. The whole hardware choice rested on this one digit, and the order was placed before it could be read directly. It holds.

Pn000.0 = 0 — standard direction. From the manual: "Forward rotation is defined as counterclockwise (CCW) rotation as viewed from the load. (Standard setting)"

Two things follow:

  • The drive is not inverting anything. Whichever way an axis physically moves for a + command is down to the ballscrew hand and the motor mounting, not the drive. The eyeball check (survey item 3) is still needed, but the drive is ruled out as a source of a sign flip.
  • Encoder phasing follows direction. The manual shows the PAO/PBO phase relationship flipping with Pn000.0, so command sign and feedback sign stay consistent. LinuxCNC will not see a mismatch between what it commanded and what it counts.

.2 and .3 both read 0. Their definitions are not in our copy of the manual.

The gains, for the record

Z X Y
Pn100 speed loop gain 90 40 40 Z is more than twice as stiff
Pn101 speed loop integral 1000 2000 2000 Z integrates twice as fast
Pn102 position loop gain 40 40 40 Inert — position loop is unused in speed control
Pn103 inertia ratio 400 689 305 X carries the gantry, and it shows

🔴 Z's stiffer tuning is worth noting against Grant's point about the ram. The cut reaction pushes the carriage up through a backdriveable ballscrew and the brake is released throughout every cut, so what resists it is the speed loop — and whoever commissioned this machine set Z's gain to more than double X and Y's. That looks deliberate, and it is the target to match when LinuxCNC takes over.

Pn202/Pn203 (electronic gear 4:1) and Pn102 only apply under position control, so all three are inert here. Recorded for restoration, not for use.

Pn50A = 2100 and Pn50B = 6543 are the factory defaults on all three. Pn50A.0 = 0 is the standard input-signal allocation mode rather than user-defined, so /S-ON, P-OT, N-OT and the rest sit on their standard CN1 pins — which is what the wiring diagram shows. These two are also what proved the digit convention above.

⚠️ Pn406 = 800 on Z as well, not absent as an earlier version of this table said. It is present but inert, because Pn001.1 = 0 on Z and the manual says Pn406 is "valid when Pn001.1 is 1 or 2".

Pn002 = 0 on all three: incremental encoders, not absolute. So LinuxCNC must home on every power-up, as the Tecnos does.

🔴 The three drives are NOT configured alike

Pn001 is the first parameter read on all three, and X and Y already differ from Z.

Pn001 Pn001.1
Z n.0000 0
X n.0020 2
Y n.0020 2

⚠️ So nothing can be read on one drive and assumed for the others. Every parameter has to be read three times. That is worth knowing at parameter two rather than at parameter twenty.

Pn001.1 — Overtravel Stop Mode, straight from the manual

Value Manual text
0 "Stops the servomotor the same way as turning the servo OFF (according to Pn001.0)."
1 "Decelerates the servomotor to a stop at the preset torque, and then locks the servomotor in Zero Clamp Mode." Torque: Pn406
2 "Decelerates the servomotor to a stop at the preset torque, and puts the servomotor in coast status." Torque: Pn406

So on a hard overtravel:

What happens
X and Y Controlled deceleration at the Pn406 torque, then coast
Z Stops the way a servo-off stops — no deceleration ramp

That is a deliberate choice, and it makes sense. X is the 2800 mm axis, the fastest and by far the most inertia; Y is the next. Slamming either to a dynamic-brake stop from full rapid would be violent. Z is short, slow, and has a holding brake, so it does not need the ramp.

🔴 Pn406 (Emergency Stop Torque) is therefore LIVE on X and Y — the manual says it is "Valid when Pn001.1 is 1 or 2". It is inert on Z. Added to the capture list for X and Y.

What this means for the retrofit

The controlled overtravel stop is done by the drive, not by the controller. So it carries over to LinuxCNC for free, as long as Pn001.1 is left alone — which is another reason this capture is read-only.

It also sets expectations: if X or Y ever runs into P-OT/N-OT under LinuxCNC, it will ramp down and coast rather than stopping dead. Do not read that as the limit switch having failed.

Pn001 = n.0000 (Z) — all defaults

Digit Value Meaning
.0 0 Servo-OFF / alarm stop mode. ⚠️ The definition table is not in our copy of the manual, but the accompanying figure shows Pn001.0 = 0 as stop by dynamic brake
.1 0 Overtravel stop mode — see above. Z alone uses the plain stop
.2 0 AC/DC power input selection. Not in our copy of the manual
.3 0 Warning code output selection. Not in our copy of the manual

X and Y read n.0020, differing only in .1.


  • sgdh-drive-reference.md — what Pn201 and Pn300 mean, and the panel safety rules
  • servo-control-mode.md — why Pn000.1 should read 0
  • pre-strip-survey.md item 17 — where this sits in the survey