@p8blr From what I've discovered, the duet firmware assumes the state of the error pin on startup is "not an error", but the best you can configure the teknic motors to do is treat the HLFB wire as "enabled & not in shutdown" or "disabled or maybe in shutdown", and because the servos aren't enabled on startup, the duet's assumption will always be wrong. Until this is configurable by Duet or Teknic, this can't work.
Here's my workaround: I added another expansion board!!! I wired the servos with the "sinking" output as Teknic recommends.
in config.g
M950 J16 C"^121.io0.in" ; assign input for X HLFB+
M950 J17 C"^6.io0.in" ; assign input for Y1 HLFB+
M950 J18 C"^6.io1.in" ; assign input for Y2 HLFB+
M950 J19 C"^6.io2.in" ; assign input for Z1 HLFB+
M950 J20 C"^6.io3.in" ; assign input for Z2 HLFB+
M950 J21 C"^6.io4.in" ; assign input for Z3 HLFB+
M950 J22 C"^6.io5.in" ; assign input for Z4 HLFB+
M581 P16:17:18:19:20:21:22 T2 S0 R1 ; configure external trigger 2, active to inactive, when printing
trigger2.g
if sensors.gpIn[16].value == 0 ; if x servo is disabled or in shutdown
M957 E"driver-error" D0 B121 ; raise driver error event, driver 0, CAN 121, P???
if sensors.gpIn[17].value == 0 ; if Y1 servo is disabled or in shutdown
M957 E"driver-error" D0 B0 ; raise driver error event, driver 0, CAN 0, P???
if sensors.gpIn[18].value == 0 ; if Y2 servo is disabled or in shutdown
M957 E"driver-error" D1 B0 ; raise driver error event, driver 1, CAN 0, P???
if sensors.gpIn[19].value == 0 ; if Z1 servo is disabled or in shutdown
M957 E"driver-error" D2 B0 ; raise driver error event, driver 2, CAN 0, P???
if sensors.gpIn[20].value == 0 ; if Z2 servo is disabled or in shutdown
M957 E"driver-error" D3 B0 ; raise driver error event, driver 3, CAN 0, P???
if sensors.gpIn[21].value == 0 ; if Z3 servo is disabled or in shutdown
M957 E"driver-error" D4 B0 ; raise driver error event, driver 4, CAN 0, P???
if sensors.gpIn[22].value == 0 ; if Z4 servo is disabled or in shutdown
M957 E"driver-error" D5 B0 ; raise driver error event, driver 5, CAN 0, P???
Any suggestions on improving the functionality? I've not created driver-error.g so the printer should just send a popup message in DWC and pause the print - which is essentially what I want when a servo goes into shutdown.
Also what does the P parameter do in M957? I was reading through the Events documentation and all it says is "Lower 16 bits of driver status word" and I have no idea what that means.
Thanks!