After struggling a few days, I finally got a ws281x/Neopixel LED-strip to work on a Jetson TX2 NX module in slot 1. Driving these LED's on Jetson is possible by using the SPI and Adafruit libraries (https://learn.adafruit.com/circuitpython-libraries-on-linux-and-the-nvidia-jetson-nano/neopixels-with-spi). Connecting the DIN of the LED-strip to the MOSI of the hardware SPI should do the trick, however, finding the correct pin on the GPIO header seemed to be the biggest challenge. As I noticed the mapping is off for almost every pin, I decided to map out the other pins as well.
As NVIDIA's documentation and pin/GPIO naming conventions are very confusing, I decided to share my findings as these may be helpful for others who want to use a Jetson TX2 NX's GPIO's through the 40 pin header.
The middle columns represent the 40-pin header on the TuringPi2 and their labels. Next to them are the 4 'modes' used by the jetson.gpio library to refer to the GPIO's (https://github.com/NVIDIA/jetson-gpio)
The first two should enable you to map the pin to the relevant GPIO:
- Board: pin number on the official dev board
- BCM: Broadcom SoC number. This corresponds to the printed GPIO-number on the Turing. e.g. pin 11 is indicated as GPIO17 (on RPI). On a Jetson TX2 NX board this pin is mapped to BCM GPIO8 (D8). For my use case, the TX2 NX's SPI0 MOSI uses (BCM) GPIO10 so connecting the dataline of the ws281x leds to pin 36 on the turingboard made them work perfectly.
You will notice some descriptions are missing. I suspect pins 3,5 and 27-28 are i2c but I didn't test these yet.