Issue with PWM with Jetson.GPIO and Orin Nano

Hi there,

i have a problem getting PWM working with the Jeton Orin Nano Developer Kit and the Jeson.GPIO Python library.

I have a scope connected to pin 33 on the Jetson Orin Nano board and try to run the following example i’ve got from github:

import RPi.GPIO as GPIO
import time

output_pins = {
    'JETSON_XAVIER': 18,
    'JETSON_NANO': 33,
    'JETSON_NX': 33,
    'CLARA_AGX_XAVIER': 18,
    'JETSON_TX2_NX': 32,
    'JETSON_ORIN': 18,
    'JETSON_ORIN_NX': 33,
    'JETSON_ORIN_NANO': 33
}
output_pin = output_pins.get(GPIO.model, None)
print(output_pin)
if output_pin is None:
    raise Exception('PWM not supported on this board')


def main():
    # Pin Setup:
    # Board pin-numbering scheme
    GPIO.setmode(GPIO.BOARD)
    # set pin as an output pin with optional initial state of HIGH
    GPIO.setup(output_pin, GPIO.OUT, initial=GPIO.HIGH)
    p = GPIO.PWM(output_pin, 50)
    val = 25
    incr = 5
    p.start(val)

    print("PWM running. Press CTRL+C to exit.")
    try:
        while True:
            time.sleep(0.25)
            if val >= 100:
                incr = -incr
            if val <= 0:
                incr = -incr
            val += incr
            p.ChangeDutyCycle(val)
    finally:
        p.stop()
        GPIO.cleanup()

if __name__ == '__main__':
    main()

If i run the code everything seems to look good, no errors whatsoever but if i look onto my scope, i don’t see any output. I have also tried to output the PWM on pin 15, which according to following site should also be a PWM capable pin:

With pin 15 i get the same result. No error if i run the code but nothing on the scope.

I have tried the PWM example with Linux JetPack 5.1.1 and with my own yocto image, both gave me the same result.

Do you guys can help me out or do i miss something?

Regards

Hi kai.kral,

Have you used Jetson-IO to enable PWM pins?

You could refer to the following topic about the usage for Jetson.GPIO with Orin Nano devkit.
Jetson.GPIO lib - PWM not working on Orin Nano Dev Kit - Jetson & Embedded Systems / Jetson Orin Nano - NVIDIA Developer Forums

Thanks for your input.

If i try to run jetson-io i get following error:

image

But the file /boot/tegra234-p3767-0000-p3509-a02-hdr40.dtbo is present.

Do you run Jetson-IO with sudo?

$ sudo /opt/nvidia/jetson-io/jetson-io.py

Yes, i have run Jetosn-IO with root permissions.

Could you decompile this dtbo manually?

$sudo dtc -I dtb -O dts -o jetson-io-overlay.dts /boot/tegra234-p3767-0000-p3509-a02-hdr40.dtbo

Thanks, it worked now. No idea what i did wrong the first few times.
PWM seems to work now.

Can anybody point me in the right direction, how i can integrate this into my yocto image?

Sorry that we don’t support yocto project and it is also not verified from us.