XM540 module with additional RS485 sensor

Hey everyone. I have some questions about adding a sensor into the RS485 line with a XM540-W150R as I’m not too hot on RS485 and could do with a little help if possible.

I need to add an absolute multi turn rotary encoder in very close proximity to the XM540 and cannot run cables back to the controller (openRB-150)

The encoder I would like to use is linked below it comes in either 12 or 14 bit RS485

Two questions

  1. can I use the external port power supply to run this encoder as the main line voltage on the bus will be 12v. It looks a little low at 3.3v as the encoder needs 3.8v or should I break out on the main line voltage and used a simple drop down to get to the 3.8v for the encoder - would this be acceptable?
  2. do you think this encoder be readable across the dynamixel protocol on the RS485 line when installed in the chain?

Thanks :pray:

Although……. I’ve just noticed that the encoder I would like to use comes in RS485, SPI or SSI.

So … i should be able to connect the SSI encoder to the external port and read the data over RS485?

Will need to work on the right voltage though for the encoder but it “might” function on 3.3v but will give it a try.

Sawwas,

Additional sensors can’t be integrated into the DYNAMIXEL network in this way. The network was not designed to have additional 3rd party components communicating over the same lines as the DYNAMIXELs.

The intended use of the external ports is to integrate an external sensors direct analog or digital output. To achieve the kind of operation it sounds like you want, you can connect a standard analog output encoder or potentiometer and access the analog value by reading the servo’s external port data register.

1 Like

Adding to Jonathon’s comments, to use the OpenRB-150 properly with the XM-540, you’ll need the DXL Communication Bridge module:

And from a CUIDRIVES Arduino example code I’ve found (as shown below), it looks like that you can use the SPI Comm. Pins (8, 9, 10) on the OpenRB-150 to program your encoder (also use Pin 7 for CS Pin):

https://www.cuidevices.com/product/resource/sample-code/amt22

But the SPI Pins on the OpenRB-150 operate at 3.3 V so you will need to use a Logic Level Shifter to bring the 3.3 V signal to 5 V as needed by your encoder:

1 Like

Thanks for the detail - it an absolute encoder I need to implement in the system as I’m using the motor in Extended Position Control Mode (Multi-turn), I need to be able to retain a shaft position through power cycles. It’s not a robot application so unfortunately I cannot add a reference prox/limit sensor etc, it must be a rotary absolute encoder

Ah great, thanks for the logic level shifter link :+1:

Yes I have the RS485 bridge at the moment but running with a XM430-W210 R but will buy the XM540 shortly to start testing.