Connecting multiple peripherals, buttons, and LEDs

I was wondering what people have found to be the easiest way to connect multiple devices and interfaces with their TX2. For example: I have two USB devices, 9 buttons, 3 LEDs, and a GPS.

The downside is that the TX2 only has the two USB ports and 5 GPIO. I could try to configure the CAM bus, use an i2c expansion module, or use a microcontroller. But I was wondering what other people have used for their set ups!

I’m not sure if I have missed some obvious way to connect all of these devices.

If you need additional I/O lines from the devkit, personally I find it easy using Pololu Maestro series USB controllers for supporting additional channels of PWM and analog/digital GPIO. Easy to connect to devkit over USB and control from sw - see the user guide and simple driver I wrote for it on GitHub.

You can also use I2C or SPI expansion modules as you mentioned. If you are deploying the Jetson module, you can contact an ecosystem company about having the I/O integrated into the deployable carrier or using an M.2/mini-PCIe mezzanine with the I/O.