Mitsubishi OSE104 Serial Encoders

Revision as of 10:01, 10 January 2020 by Fdarling (talk | contribs) (added more protocol notes)

Overview

Proprietary serial encoders made by Mitsubishi meant to work with their MELDAS CNC controllers. It uses 2.5 Mbaud RS-422 to communicate with the controller. The protocol has been partially reverse engineered, and is supported by Rene Hopf's STMBL servo drive.

Specifications

Page 195 (III-58 in the PDF) of the BNP-C3000C(ENG) manual details the specifications for different variants.

Wiring Diagram

Wire Color Circular Pin Mini-D Pin Function
green N (shield) (case GND)
gray L 17 RQ-
orange K 7 RQ+
yellow J 16 SD-
red E 9 (battery)
blue H 6 SD+
black R 1,11 0V
white S 10,19,20 +5V

Bill of Materials

MC34051 RS-422 transceiver chip.

Protocol

The encoder uses a full duplex RS-422 UART to connect to the host:

Baud Rate 2,500,000
Data Bits 8
Stop Bits 1
Parity none

For interacting with the encoder from a PC, a USB to serial supporting a higher than usual baudrate must be used. A convenient converter that also has native RS-422 support is a MaxLinear XR21B1420IL28-0A-EVB USB to RS-232/422/485 Evaluation Board.

Requests from the host seem to be a single byte, and the response is multi-byte with a checksum. For recognized commands the response's first byte is the request byte echo'd back, and it seems for unrecognized commands it has a default response. Here is a list of known commands:

Request Response Length Description
0x02 7 angle, 0x90?
0x1A 11 angle, 0x02?, full revolutions, 0x00?, 0x90?
0x2A 9 angle, full revolutions, 0x90? (same as 0xA2?)
0x32 9 angle, full revolutions, 0x90? (same as 0xA2?)
0x4A 11 multiple values related to the angle?
0x52 11 multiple values related to the angle?
0x62 9 multiple values related to the angle?
0x7A 3 empty response?
0x8A 6 full revolutions, 0x90?
0x92 4 0x02?
0xA2 9 angle, full revolutions, 0x90?
0xBA 7 angle, 0xBA?
0xC2 11 multiple values related to the angle?
0xDA 11 multiple values related to the angle?
0xEA 9 angle, 0x00?, 0x90?, 0x00?
0xF2 3 empty response?
0xF4 3 empty response?

Other possible commands are: 0x0A 0x22 0x3A 0x42 0x5A 0x6A 0x72 0x82 0x9A 0xAA 0xB2 0xCA 0xD2 0xE2 0xF3 0xF5-0xFF

Online Resources

Mitsubishi MELDAS MDS-C1 Series AC Servo/Spindle Specifications Manual

stmbl/encm.c at master · rene-dev/stmbl