@o_lampe I2C is polled by the MCU, so it's up to the MCU to decide when to read. If using interrupts from a encoder the cpu would be forced to handle every pulse when it pulses. This is why i previously stated that a high interrupt count may be problematic for the MCU.
The I2C standard do support multiple masters on the same bus, but that depends on all masters listening for the clock and not trying transfers when another master is communicating. They would also need to handle collisions on the I2C bus.
If the Duet FW has strict timing of when it needs data that might also be an issue. Second issue would be to figure out how fast the FOC algo needs to get feedback after moving the motor, and 40ms is only 25 updates per second. If reading the filament sensor there would also be quite a large lag between moving the motor and the filament moving but not sure if that's a huge problem at the speeds needed here. (25 updates per second at 1rpm = 14 degrees)
If we get to a point of a working PoC i might do a spin of the simplefoc-mini and embed a tiny MCU that can do CAN-bus and/or i2c to keep all the motor-control/monitoring in the same place.
I'm running my smarteffector together with a Manta M8P on a DIY delta so have a bit more freedom myself.
My main knowledge related to this subject is in electronics and embedded development.
I'm not affiliated with Duet3D so cannot make any official statement, just interested in the extruder.