Reading iSV57 Servo Encoder Position via RS232 — Any Protocol Documentation?

Hello everyone,

I have a StepperOnline iSV57T-090S integrated servo motor (NEMA 23 “Easy Servo”) that I’m driving from an Arduino using Step and Direction signals. The motor also has an RS232 interface for parameter tuning (through their ACHSeries software). I’d like to read the real-time encoder position from the motor over RS232 so I can do closed-loop monitoring from my Arduino.

Unfortunately, the manual I have only explains DIP switches and parameter configuration (Pr0.xx, Pr1.xx, etc.) but does not include details on the actual protocol for reading the encoder position (e.g., register addresses, command frames, CRC, etc.). I’ve tried searching for “Leadshine protocol” or “HBS/ES driver protocol,” but nothing definitive so far.

Has anyone successfully polled the iSV57 servo (or a similar integrated servo from StepperOnline/Leadshine) over RS232 to retrieve the real-time position?

  • If yes, could you share the byte-level command format or a reference to the documentation?
  • Or do you have code examples showing how you sent queries and parsed the response?

I’m currently using a MAX232 module and Arduino SoftwareSerial at 38,400 baud (per the motor’s default). Communication with the tuning software works fine on a PC, but I’d like to replicate that functionality in my Arduino sketch if possible.

Thanks in advance for any insights or links!

If it's anything like the iHSV57 servos, you might need to talk Modbus to it (even though it's over RS232). Modbus is it's own thing, and I don't really understand much about it. If it is Modbus, what I do know is your Arduino will need to be a Modbus client and you probably need to read holding registers. As to what the address of the holding registers you need is, none of the data available seems to give that - you might have to analyse the serial traffic to figure that out. Servo manufacturers don't seem to like sharing that information, even if they give you the names of the registers!