I would start looking at
- encoders. With the current stm32f407 the quadrature counters are tied to certain pins, and max 4 such hardware counters. Code is in E3000, would copy that.
- EtherCAT chip, would base it on LAN9252 (which most of the cards use) due to Ax58100 limit of 2x16 pdos. Don't know of a limit for LAN9252, it's not less than 2x16.
- Opto-couplers, would revisit.
If you are thinking of stepper generator with encoder inputs, say for four of them, would base it on E3000 for the user code and extend to four encoders, code is already there. soes library from E7000. Hardware will be based on E3000 around stm32, around E7000 for EtherCAT.
One can think of one card supporting 1 drive. Or 2 stepper drives. And use multiple cards
In linuxcnc 2.10 there is 64-bit integers, so no risk for encoders overflowing. 32-bit isn't quite enough at least for spindles.
Is it just an idea, or are you going to do it?
.