I tried the Jetson.GPIO module until learning that’s no longer supported in Jetson 6. I have a new board I successfully to Jetson 6. I am now trying the gpiod module to no success. I can connect an LED to Physical pin 17 and get light. Moving the LED to Physical pin 15, sending a “1” to GPIO12 and no light. This is a brand new Orin Nano Development Kit (8gb). Not the “Super”.
*** Please note that this reply is generated by LLM automatically ***
To address your issue with using the gpiod module on the Jetson Orin Nano Development Kit 8GB, running Jetson 6, let’s break down the key points and provide a comprehensive approach to troubleshooting and potentially resolving the problem.
Understanding the Hardware and Software
- Jetson Orin Nano Development Kit 8GB: This is a developer kit designed for AI applications, featuring the Jetson Orin Nano module. It’s essential to note that the kit you’re using is not the Super version.
- Jetson 6: This refers to the software stack, including the operating system and various libraries, optimized for the Jetson family of devices.
- gpiod Module: The
gpiodmodule is a Linux library that provides access to GPIO devices. It’s a replacement for older GPIO access methods and is designed to be more flexible and efficient.
Troubleshooting Steps
Given your experience with connecting an LED to physical pin 17 and successfully turning it on, but failing to do so when moving the LED to physical pin 15 and attempting to control it via GPIO12, here are some steps to consider:
-
Verify GPIO Pin Numbers: Ensure that you’re using the correct GPIO pin numbers according to the Jetson Orin Nano’s pinout diagram. The physical pin numbers on the board do not directly correlate to the GPIO numbers used in software. For example, physical pin 15 might not be GPIO12 as expected. Consult the official NVIDIA documentation or the board’s datasheet for the correct mapping.
-
Check GPIO Configuration: Use the
gpiodcommand-line tools to check the configuration of the GPIO lines. Specifically, you can usegpiodetectto list all GPIO lines, andgpioinfoto get detailed information about each line, including whether it’s already in use by another part of the system. -
Export and Set GPIO Direction: Before attempting to set a GPIO high or low, ensure that the direction of the GPIO line is set correctly. You can use
gpiosetandgpiogetcommands to manipulate and read the state of GPIO lines, respectively. For example, to set GPIO12 as an output and then set it high, you would first need to ensure that the line is not already in use and then configure it as an output. -
Kernel and Device Tree: Sometimes, issues with GPIO access can be related to the kernel version or the device tree configuration. Ensure that your Jetson Orin Nano is running the latest kernel and that the device tree is correctly configured for your specific hardware setup.
-
Compare with JetsonGPIO Module: Although the JetsonGPIO module is no longer supported in Jetson 6, comparing the API and usage between JetsonGPIO and
gpiodmight provide insights into how GPIO lines are accessed and controlled. This could help in identifying any differences in configuration or usage that might be causing the issue. -
Consult Official Documentation and Forums: NVIDIA provides extensive documentation and community forums for the Jetson series. Checking these resources for known issues, examples, or discussions related to GPIO access on the Jetson Orin Nano could be invaluable.
Conclusion
Troubleshooting GPIO issues on the Jetson Orin Nano involves a systematic approach to verifying hardware connections, software configurations, and ensuring that the gpiod module is used correctly. By following these steps and consulting official resources, you should be able to identify and potentially resolve the issue preventing you from successfully controlling GPIO lines on your device.
*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***
Hi nuremguru,
What’s the exact Jetpack version in use?
Please run cat /etc/nv_tegra_release on your board and share the result
Where do you get this information? As my understanding, sysfs to control GPIO is deprecated but Jetson.GPIO should still work with Jetpack 6.
Do you mean the PIN17 and PIN15 from 40-pins expansion header?
Have you configured the their pinmux before use?
Please provide the detailed commands you used to control them.
I tried running jetson-io.py. The screen flashes real quick like the app is opening then it closes immediately. Probably a deeper issue here.
For Pins 17 and 15 that I referenced, yes, from the 40-pin expansion header. I found out that physical pin on the my board is actually GPIO 85.
But, nonetheless. I am still unable to light up the led.
~$ cat /etc/nv_tegra_release
# R36 (release), REVISION: 4.4, GCID: 41062509, BOARD: generic, EABI: aarch64, DATE: Mon Jun 16 16:07:13 UTC 2025
# KERNEL_VARIANT: oot
TARGET_USERSPACE_LIB_DIR=nvidia
TARGET_USERSPACE_LIB_DIR_PATH=usr/lib/aarch64-linux-gnu/nvidia
So, do you mean Jetson.GPIO or Jetson-IO?
Jetson.GPIO is a python library allowing you to control the pin.
Jetson-IO is used to configure the pinmux and enable some functions.
It seems you want to control the LED through GPIO from 40-pins header.
Let me take PIN15 of J12 as example.
You can find the following information in Jetson Orin Nano Developer Kit Carrier
Board Specification.
![]()
It is GPIO12, GP88_PWM1, PN.01.
You have to configure it in pinmux spreadsheet as following and refer to Jetson Orin NX and Nano Series — NVIDIA Jetson Linux Developer Guide to apply the change.
![]()
Please run the following command to control this pin.
$ sudo su
# gpioset --mode=wait `gpiofind "PN.01"`=0
# gpioset --mode=wait `gpiofind "PN.01"`=1
I mean jetson-io.py, the utility to configure the pinmux. As suggested in the first human response that I should make sure pinmux is set. So I ran jetson-io.py. I figured that was logical. However, the utility does not stay open suggesting a deeper problem.
Moving on. the result of the gpioset commands was nothing. I ctrl-c to quit both times with an off LED.
I also reflashed my system since my ML stack seemed screwy.
Jetson-IO can only work to enable the SFIO function like SPI, UART, I2C..etc.
If you want to use the pin as GPIO output, please configure it through pinmux spreadsheet.
Do you mean the gpioset command I shared can not toggle the LED you connected?
If so, please remove LED and use scope to check its signal.
For Jetpack 6.x, you may also need to apply the change from 40hdr - SPI1 gpio padctl register bit[10] effect by gpiod tools in JP6 - #20 by KevinFFF
Sure, my regular oscilloscope is at home, but luckily my backup is in the car. Hmmmm… it says I should just return it to the store while it’s in the window. I’ll buy an nvidia graphics card instead and use an arduino as a dummy. Those babies just work.
Please help to clarify if you can control GPIO after removing LED.