Controlling ODrive S1 GPIOs via CAN

I would like to control the GPIO pins on my ODrive S1 via CAN. I would like to do something along the lines of set_gpio(9, True) but over the CAN bus. The CAN protocol documentation lists arbitrary parameter access as an option which does seem to expose the set_gpio function which has a uint32 argument and a bool argument- but my understanding is that this would require 9 bytes of data on the CAN message- 1 for read/write, 2 for endpoint ID, 1 byte reserved, and then 4 bytes for the uint32 argument and 1 for the boolean. My setup only supports classic CAN so I can only have 8 bytes per frame. I wanted to see if I had understood the problem correctly and if there are any solutions? Is there any other way that the ODrive exposes the GPIOs over CAN for me to control?

Hi! Yes, you can definitely control over CAN. The protocol for >32-bit function calls is a bit different – are you controlling this from a Linux system, Arduino, etc?