What pins can be used for PWM control except 33 in samples

Hi, I am trying to use Nano for controlling 2 motors from a wheelchair base.
In the sample code, pin 33 is good for PWM output. But I can not find another pin for PWM.
An error message shows “the channel is not available”
2 pins are needed for 2 motors in my project.
Can anyone suggest which another pin can be used? Thank you!

Or how can I find out another 2 pins?

Hi, pin 32 can be for PWM output.

hi Jackchen

Did your PWM No.33 worked ? Did you got the pulse ?
I haven’t got any pulse from no.33 port yet…


Hi. Thank you all for the updates.

Actually, I run the simple_pwm.py. It works. I didn’t check the pulse.

But when I change the pin 33 to another pin number. Error messages show “The channel is unavialable” or “The channel is occupied”.
What can I do next?

Hello, I also want a PWM output on the Jetson Nano to connect a servo. My sample program runs fine and pretends to control pin 33 via PWM, but there is no signal. I think the GPIO library has an error.

There’s one more thing I remember: During the setup my brother used a PWM-controlled fan and could regulate the speed. So the PWM connector on the fan works, I guess.

Thank you for the updates.

I cannot get signal from 33.

Yes, that’s what I thought. For my little project, I will switch to the PCA9685-board, which will be connected by I2C, which hopefully works. It’s a pity to use hardware to get around a software bug, but its my pragmatic way to get results.
Right now, I’m watching “Jetson Nano I2C PWM Servo Motors” from “JetsonHacks” on youtube.


I think we have to change pinmux settings (no.32 and 33).
Maybe you can find in this forum with searching keyword “pinmux” or “PWM” or “spreadsheet”.

I changed the pinmux settings, But There is no pulse.

I think I can’t use PWM with Jetson Nano now. We should wait for JetPack’s updates.

I think so too, Mr.Emitter.
We can use I2C, so PCA9685 is good at using PWM.



Could you share which pin you modified in pinmux?
Also, what are the steps you are using to generate pulse?

hello WayneWWW.

I tried with No.33.





And I haven’t did this new protocol yet.

"Jetson Nano Developer Kit 40-Pin Expansion Header Configuration "

Maybe I should do it ? (U-boot and C-boot settings)

No pulse was detected in the ossiloscope from pin 33.
And I did not find another pin for the simple_pwm.py in the samples.

Another thing is: the HIGH output of the pins cannot drive the PWM input on my driver MDD10A. So frustrated!


Someone did.

Could you share the full steps here for what you did for pin#33 instead of pasting the link?

Just want to make sure we are on the same page.

IMO, what you need to do is

  1. change the gpio pin to pwm pin in pinmux spreadsheet
  2. generate the dtsi
  3. Use this dtsi to rebuild the dtb.
  4. Use this dtb to reflash the board
  5. Use the debugfs to control the pwm.

Thank you for the update.
I gave up using PWM in Nano.

hello WayneWWW.

The details about my operation is previous post URL link.



And Next, I tried it.
"Jetson Nano Developer Kit 40-Pin Expansion Header Configuration "

Then the PDF shows Last command,

cd Linux_for_Tegra/
sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1

All of my Jetson Nano’s data was disappeared.

SD card data was crashed. (U-Boot console said that ‘bad sd card’! )
(I don’t know why this happened.)

Maybe I will try it one more again after JetPack’s update…


Hi devemin,

I am still not sure what did you do. In your first link, I saw your comment said you are tying pin #22. Pin#22 is using for either gpio or spi input. It cannot be a pwm pin…

And I tried it. "Jetson Nano Developer Kit 40-Pin Expansion Header Configuration "

Yes, please tell us what did you modify in this spreadsheet. After that, you should need to follow up all the steps from the app note.

All of my Jetson Nano’s data was disappeared.
Yes, sorry for that. It is expected… full flash would erase the data.

Hi WayneWWW.

Oh you are too kind man! Thanks for reply!

In first Link, EnriqueR said that No.22 is correct, But He was wrong.

I tried it about both of No.33 & No.22.

And I will send my cofigration files in attachment file in this post.

I forgot detail about a week ago, maybe I change 40pin Header No.7, 33, 32, 38, 40, 35, 12, 19, 21, 23, 24, 26
Usage and GPIO Input/Output in spreadsheet. (PWM, I2S, SPI)
I didn’t change in other column…maybe. (But ‘INT PD/PU’ is uncertain. I forgot, sorry.)

In dtsi file, I add the sentence.

suspend_gpio: system-suspend-gpio {
 			status = "okay";
 			gpios = <
 				TEGRA_GPIO(A, 6) 0



[This file was removed because it was flagged as potentially malicious] (417 KB)

I think we should narrow down this issue since we are only discussing the pwm pin #32 or #33. Could you just change one pin (#32 or#33) in spreadsheet and follow up the steps from document?