No PWM signal on Jetson Nano

Hi everyone,
First of all, I’m kind of new to the Jetson Nano but something weird happened, to control a DC motor from a Python script I normally followed these steps:

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

Then I’ll configure pwm0 and pwm2 reboot and from Python:

import Jetson.GPIO as GPIO

GPIO.setmode(GPIO.BOARD)
GPIO.setup(32, GPIO.OUT)
GPIO.setup(33, GPIO.OUT)

p1 = GPIO.PWM(32, 100)
p2 = GPIO.PWM(33, 100)

p1.start(50)
p2.start(50)

And I’ll change duty cycles with px.ChangeDutyCycle(). This worked fine for me, but then I messed up the OS and had to re-flash the SD with a new image. The thing is that now no PWM signal is generated neither from pin 33 nor 32. Any ideas?

hello pedro.fontana.1996,

had you complete pin configuration to update it as SFIO?

Hi @JerryChang , thanks a lot for you response! Isn’t that done with sudo /opt/nvidia/jetson-io/jetson-io.py ? I mean, I did the configuration using sudo /opt/nvidia/jetson-io/jetson-io.py and then rebooted but no signal coming out neither pin 33 nor 32…

hello pedro.fontana.1996,

please see-also these topics for using Nano PWM.
Running two simple DC motors (5 Amp) Forward and Backward in Jetson Nano
Nano PWM C++ - #14 by spatra

Hi @JerryChang sorry to bother you (had a busy couple of days) I read what you sent but I did have the PWM working on my other SD image and I did not configured the pins via this pinmux nor did I needed to reflashed (I just configured as PWM outputs from opt/nvidia/jetson-io/jetson-io.py, this seem normal to you? I’m new to the Jetson Nano but do not understand why before it worked so nicely and now seems more tricky to enable the PWMs… Thanks in advance!

hello pedro.fontana.1996,

am I understand correctly that you actually have two Nano platforms, one is working (A), the other don’t (B).

are you going to taking the SD card image from (A) to (B) for testing?
if yes… since there’s board configurations, this may not works.

No no, only one Jetson Nano dev kit, 2 SDs. On my original SD I broke my linux kernel so I started from scratch on a new card, install all the necessary things for my project but PWM signals are not working… Did I messed up by changing the SDs?

Not sure if this output helps, this is what i get after configuring PWM pins via jetson-io.py

hello pedro.fontana.1996,

let’s check with register dumps.
for example, when you have enabled Pin 32 as PWM, you must see bit 0 of register 0x700031fc to be set. i.e. $ sudo busybox devmem 0x700031fc

Hi @JerryChang , this is the output of the command you sent

ottobot@ottobot-nano:~$ sudo busybox devmem 0x700031fc
0x00000001

So it seems that Pin 32 is enabled, though not signal coming out from Jetson.GPIO Python lib.
PD: I had to install busybox (as it seems is not pre-installed in the NVIDIA image) and got some ugly messages (I could execute the command though as showed above):

ottobot@ottobot-nano:~$ sudo apt-get install busybox -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  busybox
0 upgraded, 1 newly installed, 0 to remove and 47 not upgraded.
Need to get 367 kB of archives.
After this operation, 782 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 busybox arm64 1:1.27.2-2ubuntu3.4 [367 kB]
Fetched 367 kB in 2s (222 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package busybox.
(Reading database ... 243980 files and directories currently installed.)
Preparing to unpack .../busybox_1%3a1.27.2-2ubuntu3.4_arm64.deb ...
Unpacking busybox (1:1.27.2-2ubuntu3.4) ...
Setting up busybox (1:1.27.2-2ubuntu3.4) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for initramfs-tools (0.130ubuntu3.13) ...
update-initramfs: Generating /boot/initrd.img-4.9.253-tegra
WARNING: missing /lib/modules/4.9.253-tegra
Ensure all necessary drivers are built into the linux image!
depmod: ERROR: could not open directory /lib/modules/4.9.253-tegra: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
Warning: couldn't identify filesystem type for fsck hook, ignoring.
I: The initramfs will attempt to resume from /dev/zram3
I: (UUID=bf573cd3-4f1a-40eb-b708-d09f8df32057)
I: Set the RESUME variable to override this.
depmod: WARNING: could not open /var/tmp/mkinitramfs_62hMan/lib/modules/4.9.253-tegra/modules.order: No such file or directory
depmod: WARNING: could not open /var/tmp/mkinitramfs_62hMan/lib/modules/4.9.253-tegra/modules.builtin: No such file or directory
/sbin/ldconfig.real: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf.d/aarch64-linux-gnu_EGL.conf: No such file or directory
/sbin/ldconfig.real: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf.d/aarch64-linux-gnu_GL.conf: No such file or directory

hello pedro.fontana.1996,

please share the complete boot-up logs for reference.
you may setup serial console and gather them as single text file. thanks

hello pedro.fontana.1996,

here’re further suggestions,
could you please try configure pwm and gpio pins manually and check if any issue reported
meanwhile, please also share complete boot log for reference.
for example,

  1. Configure GPIO pin.
  2. Configure padctrl parameters (PM, pull_up/down, passthrough/tristate, SFIO etc.)
  3. Export and Configure PWM controller to generate PWM pulse (period, duty cycle, enable)

Hi @JerryChang , thanks for your answer and happy new year! Not completely sure on how to enable pwm pins manually with padctrl but will look into it, in the meantime, i leave you here the boot logs. Thanks a lot (I see some PWM logs but I do not understand if something is failing…)
log.txt (196.9 KB)

Hi @JerryChang , any follow ups on this?? Could you find something in the logs? Thanks in advance!

hello pedro.fontana.1996,

this issue should caused by OS has not installed properly.

Hi @JerryChang , unfortunately I tried reinstalling the OS (even previous versions) but PWM is not working… Really bothers me, it was working before (maybe a hardware component broke). Nonetheless, I cannot spend more time trying to fix it… Thanks anyways!

How have you determined PWM is not working? Connecting to LED or oscilloscope?

LED, unfortunately I do not possess an oscillo

Have you tried this example? as is
jetson-gpio/simple_pwm.py at master · NVIDIA/jetson-gpio (github.com)

yeap, nothing happens (I get a dim constant light on the LED connected to pin 33 but no
change in illumination)