Custom Carrier Board Jetson Orin Nano, Cannot Access GPIO
Issue Overview
Users are experiencing difficulties accessing the GPIO (General Purpose Input/Output) pins on the SEEED-Studios custom Industrial Jetson Orin Nano (J3011) when using Jetpack 6. The issue manifests specifically when attempting to control digital input/output (DI/DO) functionality, which worked without problems under Jetpack 5.1.1.
Symptoms:
- Users report that commands such as
gpioset --mode=wait 0 51=1
do not execute successfully under Jetpack 6, whereas they functioned correctly with Jetpack 5.1.1. - The output of the
gpiolist
command appears different between the two versions, although this observation is not confirmed.
Context:
- The problem occurs during the usage of Jetpack 6, specifically when trying to manipulate GPIO pins on a custom carrier board.
- The issue has been noted to be consistent across attempts to access output pins only.
Hardware and Software Specifications:
- Hardware: SEEED-Studios custom Industrial Jetson Orin Nano (J3011)
- Software: Jetpack 6 (with previous success on Jetpack 5.1.1)
Impact:
The inability to access GPIO pins significantly hampers user experience and functionality, particularly for applications reliant on GPIO for control and signaling.
Possible Causes
-
Software Bugs or Conflicts: The transition from Jetpack 5.1.1 to Jetpack 6 may have introduced bugs affecting GPIO access.
-
Driver Issues: Changes in driver support or configurations between the two versions could lead to incompatibilities with the custom board.
-
Configuration Errors: If the pinmux settings or GPIO configurations were altered or not properly set up in Jetpack 6, this could prevent successful GPIO access.
-
Lack of Documentation: The absence of pinmux files from SEEED for the custom board may hinder proper configuration under the new software version.
Troubleshooting Steps, Solutions & Fixes
Step-by-Step Instructions:
-
Verify Software Version:
- Confirm you are running Jetpack 6 by executing:
cat /etc/nv_tegra_release
- Confirm you are running Jetpack 6 by executing:
-
Check GPIO Access:
- Use
gpiod
tools to check GPIO pin status:gpiodetect gpiolist
- Use
-
Test with libgpiod:
- As suggested in forum replies, switch to using
libgpiod
tools instead of traditional sysfs methods. Install it if not already present:sudo apt install gpiod
- As suggested in forum replies, switch to using
-
Run Diagnostic Commands:
- Execute the following command to test output on a specific pin:
gpioset <chip> <line>=<value>
- Replace
<chip>
and<line>
with appropriate values from yourgpiolist
.
- Execute the following command to test output on a specific pin:
-
Compare Outputs:
- Compare outputs of
gpiolist
between Jetpack versions to identify discrepancies.
- Compare outputs of
-
Downgrade as Last Resort:
- If issues persist and are critical, consider downgrading back to Jetpack 5.1.1 temporarily to restore functionality while further investigating.
Additional Recommendations:
-
Consult Documentation: Review any available documentation from SEEED regarding GPIO access on their custom board for any updates or notes specific to Jetpack 6.
-
Community Support: Engage with community forums or support channels for SEEED or Nvidia for additional insights or shared experiences regarding similar issues.
Best Practices:
-
Regularly check for updates from SEEED regarding their custom board and any associated software compatibility notes.
-
Maintain backups of working configurations when upgrading software versions to facilitate easier rollbacks if issues arise.
Unresolved Aspects:
Further investigation may be needed into whether there are underlying changes in the GPIO handling within Jetpack 6 that affect compatibility with custom hardware configurations like that of SEEED’s board.