RLS Orbis SPI support

Hot on the heels of BiSS-C encoder support intended for high end applications, I am excited to announce that moteus now supports the RLS Orbis SPI protocol for lower-end systems as of firmware version 1.0.0.

The RLS Orbis is an absolute magnetic encoder suited for use with diametric ring magnets and can be configured to use a number of different communication protocols. If you have a moteus-n1 or moteus-x1, then the newly released BiSS-C support already lets you communicate with them. However that left out the moteus-c1, which does provide the 5V necessary for an Orbis to function, but does not have a built-in RS422 transceiver.

Configuration is the same as most other SPI encoders. As an example for aux2 on the c1/n1/x1, you first configure the pins:

aux2.pins.0.mode 1  # spi
aux2.pins.1.mode 1  # spi
aux2.pins.2.mode 1  # spi
aux2.pins.3.mode 2  # spi_cs

Then you configure the SPI:

aux2.spi.mode 9  # rls orbis
aux2.spi.rate_hz 2000000  # this is the max supported by orbis

Finally, you need to connect it into motor_position in a way suited to your setup. If this is the only, primary encoder, you can set it as your first source.

motor_position.sources.0.aux_number 2
motor_position.sources.0.type 1     # spi
motor_position.sources.0.cpr 16384  # forced, so not technically required

If your firmware isn’t new enough, follow the instructions in the reference manual to update to the most recent: Flashing over CAN