IONI firmware plans



A small thing, that should enable more SSI encoders to be used right away: position readout offset. Instead of starting position readout from bit 0, definable number of bits (1, 2 or more) that effectively offsets the start of SSI binary message. The end of the encoder position value (least significant bit) is definable already by FBST “Single turn bits” value. This would allow somewhat universal support for different SSI encoders.
To illustrate it - first 2 bits to be ignored, marked with red:


That’s definitely doable. Do you know encoders where it would be needed? I haven’t found any that would require discarding first bits.


Hi Mika,

when you say reduce lag, is this ffb lag, or input lag?
And what about the new FastUpdateCycle in the ioni firmware, is that anything to do with it?

Tero, have you seen my thread

Do you know of any changes between 1.7.1 & 1.7.2 that would cause any differences like this?



Of course both.

It has only to do with support of max. 30-bit encoder resolution and absolute encoders.


The Zettlex encoders are my prime example :slight_smile: but this kind of offset would universally allow almost any variation of SSI protocol to be used right away, as long sequential position data exists (cases with special bit between multiturn and position data, leading zeros etc).


Ah indeed, those are the odd encoders :slight_smile:

But we’re planning some changes in serial encoder support to make it more complete. Your idea fits well in the goals. I’ll write a note to our dev team to give it serious consideration.


That is nice to hear, thank you! Can gladly test it out when time comes :).


Good to know that! Is there some urgent need for that? It might be easy enough to hard-code some bit skipping in custom firmware just for you if needed.


That is really generous offer! You have pretty much THE best support there can be for Granite Devices products, I have to say :). I did set up quick test with INC-4-100-211001-SSI2-RFC6-5-AN I have at hand, this is 21 bit resolution encoder, using 22 bit position sequence, the most significant bit (first red bit from left on the previous bit skip picture) always 0.

Tested with:
Serial encoder type [FBS]: SSI
Single turn bits [FBST]: 18
Multi turn bits [FBMT]: 0
After initialization random movements.

Tested with:
Serial encoder type [FBS]: SSI
Single turn bits [FBST]: works up to 21 bit
Multi turn bits [FBMT]: 1
My temporary setup instability and inductive encoder peculiarity allows to confirm working with motor up to 18…19 bit at the moment. Just angular readout works up to 21 bit, so apparently the multiturn bit can be substituted as bit skip in this specific case as the first bit is always 0. So Zettlex SSI2 version is working already…

Datasheet for the all the Zettlex SSI protocol variations can be found here:

(page 33).


Thanks for testing! I confirm that “multiturn bits” parameter can be used to skip leading bits of data without significant side effects. Current firmware uses multiturn data only in one situation: when [HAP] (apply absolute feedback device reading) is enabled in homing. So if that’s disabled, then multiturn bits are ignored and can be used for skipping leading bits.