-
Notifications
You must be signed in to change notification settings - Fork 262
GPIO not working on Jetson Orin Nano Super Developer Kit #120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Please refer to |
You will need to change the pinmux for Jetson Orin Nano From the docs:
I suggest you dynamically change the pinmux first to make the GPIO output work first |
@anhmiuhv thanks for the reference to the documentation. I was able to dynamically change the registers and make the LED blink. I'll post more on that later so that others can use it but before that I have a question. How do we determine the mapping between the pins and the registers? Let's say I want to use the following pin (Board pin # 31): ![]() This corresponds to this register ![]() How exactly do we determine that? Although I was able to run the LED but that's only because I knew this pin <-> register mapping from the example given here: https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonOrinNxNanoSeries.html#changing-the-pinmux If you can guide me in the right direction, that'll be super helpful. Thanks again! |
Step 1: Check the carrier board spec sheet. As you can see here, you want to use Pin 31, which corresponds with PQ.06 Step 2: Open the corresponding pinmux spreadsheet for your device type. In this example, you use Jetson Orin Nano so we are going to use Jetson_Orin_NX_series_and_Orin_Nano_series_Pinmux_Config_Template.xlsm . You can find this file on the Jetson download center. Step 3: Find PQ.06 in the pinmux spreadsheet. You can see that in here PQ.06 and SOC_GPIO33 are in the same customer usage option Step 4: Find the corresponding PADCTL register for SOC_GPIO33 in the Orin Technical Reference Manual like what you do here: |
@anhmiuhv thanks. Much appreciated! |
@sarmadgulzar Hey! Can you share the step by step way to set GPIO pin bidirectional/Output. I am facing problems doing this. |
Sorry for bothering, I am now using Jetpack 6.0 with Jetson.GPIO == 2.1.7. Is that means dynamically change is to use jetson-io.py, so that I can use setup() in Jetson.GPIO? Or maybe I misunderstood what is dynamically change. Because I found that if I configured PINs with the Jetson-io.py, such as i2s2 (12, 35, 38, 40), these PINs can be set as GPIO inputs and outputs with setup() function provided by Jetson.GPIO, but not working properly (inspected by oscilloscope). But somebody says that setup() is conflicts with Jetson-io.py, it's so confusing. |
Dynamically change the pinmux mean using busybox devmem tool
You can read more about it in the documentation here |
So in JETPACK 6.x, after setup pins manually, can we still use Jetson.GPIO to enable functions? Does it only affect GPIO.setup()? |
Yes you can use Jetson GPIO to use GPIO after changing the pinmux |
Device: NVIDIA Jetson Orin Nano Super Developer Kit
OS: Ubuntu 22.04.5 LTS (Jammy Jellyfish) with Jetpack 6.2
SSD: Samsung 980 NVMe M.2
The LED is not blinking when I run the
samples/simple_out.py
Here's my code:
I've installed the library into the global Python installation:
I've setup the permissions as described here: https://github.com/NVIDIA/jetson-gpio?tab=readme-ov-file#setting-user-permissions
I've also run
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
as described in #116The positive leg of LED is connected to pin
12
on the board and the negative leg is connected to GND on pin6
. I can confirm that LED works if I connect the positive leg of the LED to pin1
which is3.3v
.Any ideas what I might be doing wrong?
The text was updated successfully, but these errors were encountered: