Pins choice for a 32 channels servo controller cape


As said in the PRU topic, I’m working on a 32 channels servo controller using PRUs. The aim of this controller will be to drive servos synchronously, ie they should start/stop at the same time. Like these dedicated boards do:

(I own the second one).

The question is: which pins should I use for the servos, and which ones should I keep for other purposes (future features)?

For example, I think I should keep:

  • 1x I²C bus

  • 1x SPI bus

  • 1x UART

  • a few PRU direct access GPIOs (for fast rd/wr, like pulse measurement…)

  • pins which can be used for timers/counters inputs

As far as I understand, UART0 can be used directly from PRUs. But UART0 is the one wired to the FTDI-compatible header; is it a good idea to use it for other purposes than debug the board?

What about the I²C 2 bus? It seems to be allocated; is it used by linux for some board chips access?

What other pins have usefull usage I should be aware of?

Thanks for feedback and suggestions.


I finally used the following pins for the servos outputs:

P8.8 to P8.19 and P8.26 to P8.45. (I'm not using hdmi).

I started to design the cape, and I'm wondering what other pins should I
bring out (mainly from P9), and how to group them?

Any suggestion?