LIRC (Infrared Remote Control) Not Available on Jetson Orin Nano
Issue Overview
Users are experiencing difficulties enabling and using LIRC (Linux Infrared Remote Control) functionality on the Jetson Orin Nano developer kit. Specifically:
- The /dev/lirc0 device is not present after installation attempts
- There is no built-in infrared PWM pin available on the 40-pin header
- LIRC cannot be activated using standard methods that work on other platforms like Raspberry Pi
- This issue affects all versions of JetPack, including 6.0 and 6.1
The lack of LIRC support is limiting users’ ability to implement infrared remote control functionality in their Jetson-based projects, forcing them to rely on additional hardware like ESP8266/ESP32 boards.
Possible Causes
- Missing kernel module: The LIRC kernel module may not be included in the Jetson Linux kernel by default.
- Hardware limitations: The Jetson Orin Nano developer kit may lack dedicated infrared hardware support.
- Software configuration: JetPack may not include LIRC packages or have them properly configured.
- Driver incompatibility: Existing LIRC drivers may not be compatible with the Jetson Orin Nano’s hardware architecture.
- GPIO configuration: The necessary GPIO pins for IR functionality may not be properly configured or exposed.
Troubleshooting Steps, Solutions & Fixes
-
Check LIRC installation:
- Attempt to install LIRC using the command:
sudo apt-get install lirc
- If installation is successful, check for the presence of /dev/lirc0:
ls /dev/lirc0
- Attempt to install LIRC using the command:
-
Verify kernel module:
- Check if the LIRC kernel module is available:
lsmod | grep lirc
- If not present, try loading it manually:
sudo modprobe lirc_dev sudo modprobe lirc_rpi
- Check if the LIRC kernel module is available:
-
GPIO configuration:
- Identify a suitable GPIO pin on the 40-pin header for IR functionality.
- Configure the chosen pin for PWM output using the Jetson GPIO library or device tree overlays.
-
Custom LIRC implementation:
- As a workaround, consider implementing a custom LIRC solution using available GPIO pins:
- Use a GPIO pin for IR transmission (output)
- Use another GPIO pin for IR reception (input)
- Implement software-based PWM for IR signal generation
- As a workaround, consider implementing a custom LIRC solution using available GPIO pins:
-
Alternative IR solutions:
- If native LIRC support is not feasible, consider using external IR modules:
- Connect an IR transmitter/receiver module to the Jetson’s GPIO pins
- Use I2C or SPI-based IR modules for improved compatibility
- If native LIRC support is not feasible, consider using external IR modules:
-
Community resources:
- Check the NVIDIA Developer Forums for updated information or community-developed solutions.
- Look for third-party libraries or drivers that may provide IR functionality for Jetson platforms.
-
Feature request:
- Submit a feature request to NVIDIA through official channels, emphasizing the importance of LIRC support for automation and IoT projects.
-
Temporary workaround:
- As mentioned in the discussion, using an ESP8266 or ESP32 board as an IR interface can be a temporary solution:
- Connect the ESP board to the Jetson via UART or USB
- Implement IR functionality on the ESP board
- Control the ESP board from the Jetson to manage IR operations
- As mentioned in the discussion, using an ESP8266 or ESP32 board as an IR interface can be a temporary solution:
-
Kernel customization (Advanced):
- For advanced users, consider building a custom kernel with LIRC support:
- Clone the Jetson Linux kernel source
- Enable LIRC-related kernel configurations
- Build and install the custom kernel
- Note: This approach requires significant technical expertise and may affect system stability
- For advanced users, consider building a custom kernel with LIRC support:
It’s worth noting that as of the latest information available, native LIRC support on the Jetson Orin Nano is not officially available. Users may need to rely on alternative methods or wait for potential future updates from NVIDIA that address this functionality.