Jetson Nano GPIO example problem

It would be great to have such nuances more explicitly noted in the documentation.
This is the first SoC where I see such strange GPIO configuration procedures, tricks and unclear documentation about that, and all this to use the basic functionality.

Jetson Nano Developer Kit 40-Pin Expansion Header Configuration appnote:
“The Jetson Nano Developer Kit carrier board includes a 40-pin expansion header. By default, all interface signal pins are configured as GPIO inputs, except pins 3 and 5 and pins 27 and 28, which are I2C SDA and SCL, and pins 8 and 10, which are UART TX and RX.”

Image is trivial and i dont see much choice, “Jetson Nano Developer Kit SD Card Image”, latest one at Jetson Download Center | NVIDIA Developer with keyword Jetson Nano .
I go inside of “Jetson_Nano_Developer_Kit_User_Guide.pdf”, and it is stated as well there:

"[J41] 40-pin expansion header includes:
•Power pins. Two 3.3V power pins and two 5V power pins. These are not switchable; power is always available when the developer kit is connected to power.Two 5V pins can be used to power the developer kit at 2.5A each.
•Interface signal pins.
All signals use 3.3V levels. By default, all interface signal pins are configured as GPIOs, except pins 3 and 5 and pins 27 and 28, which are I2C SDA and SCL, and pins 8 and 10, which are UART TX and RX. "

Thats clear, GPIO should work, isn’t it?

The Jetson Nano carrier board uses TXB0108 bidirectional voltage-level translators on the GPIOs to go from the module’s 1.8 V levels to the headers 3.3 V levels. The data sheet for the TXB0108 states “With regard to capacitive loads, TXB translators are designed to drive up to 70 pF without issue.” The capacitance of my test leads is above 70 pF, so I tried an oscilloscope with 10 MΩ, 16 pF probes and the Jetson Nano outputs work fine. With both the multimeter and oscilloscope connected, I get a 56 MHz oscillation on the outputs. The multimeter reads the average, which is ~1.55 V.

The TXB0108 also has a 4 kΩ output impedance. That combined with the 70 pF capacitance limit means that any load on the Jetson Nano’s GPIOs should be both high impedance and low capacitance.

2 Likes

Sure enough, it seemed to be the capacitance of the multimeter leads causing the issues for me. It was exactly as @PinballWizard described.

When applying the multimeter directly to the output pins, the multimeter will read the ~1.5V. The MOSFET that I was also using to test the GPIO had a capacitance of approximately 500nF. As such, nothing was working as expected.

However, I happened to have a 74HC04 hanging around that has a capacitance of only 10nF. Hooked it up and measured with the multimeter on the output side. The signals were exactly as expected.

Thank you very much for the help, this was a huge pain during the last few days. Hopefully others can learn from this as well.

Thank you again!

1 Like

Interesting observation, i noticed my multimeter/scope shows in voltage reading proper voltages, and in scope mode it shows garble.
Probably different capacitance… but then Jetson Nano, frankly, harder to name as a raspberry replacement. Yes, not a bad computational power, but using GPIO is much more difficult and unpredictable.

1 Like

How many mAmp supports (input) or sends (output) the GPIO pins of the Jetson Nano? I would appreciate sending specification sheet. Thank you.

Hi, it’s typical +/- 1mA. Please refer to spec: [url]http://developer.nvidia.com/embedded/dlc/jetson-tx1-tx2-developer-kit-carrier-board-spec-20180618[/url]

With the Jetson Xavier its really easy to find the current limit for any of the Pins on the 40pin Expansion header by looking on Page 29 of the Jetson Xavier Developer Kit Carrier Board Specification.

https://static5.arrow.com/pdfs/2018/12/12/12/23/1/848262/nvda_/manual/jetson_xavier_developer_kit_carrier_board_specification.pdf

But, I can’t find that for the Jetson Nano.

Should we assume that the 40pin Expansion header is the same for the Jetson Nano, Xavier, and TX2?

For Jetson Nano, you can take board spec of Tx1/Tx2 as the linked doc in comment #17.

Actually Jetson works in two power modes i.e., LOW and HIGH. To set Jetson in low power mode type the following command-
$ sudo nvpmodel -m1
$ sudo nvpmodel -q

As you enter these commands your Jetson will start working in LOW Power mode and now you can easily control the GPIOs

serkanturkkolu
How you resolved your issue ??

I am getting the same high-frequency ‘noise’ as referenced above with the voltage ranging from 1V to 2V on the oscilloscope running the simple_out.py sample code. The ringing is about 50MHZ in my case using standard scope probes. I can’t believe I am unable to drive an oscilloscope!!! What is going on here???

I am trying to configure DPDT toogle switch to jetson nano to toggle between two directions of switch and readign the input of GPIO pins in both the directions. Unable to read the correct input value from the GPIO pins. Tried with wait_for_edge, event_detected functions of jetson nano. Please suggest us I am doing in correct way or not. some times event is detected and GPIO value is set to that only and not getting it to 0.

When using Multimeter, the GPIO will measure ~1.6 (high) or ~1.58V (low). However when use with logic IC, it is ok. Can trigger high or low without Multimeter. Looks like Jetson Nano GPIO has very low tolerance on capacitive loading…I see spec is around 70pF.

@serkanturkkolu,

This Paul McWhorter tutorial will walk you though using a transistor to control an LED with the Nano GPIO pins: AI on the Jetson Nano LESSON 56: Using the GPIO Pins on the Jetson Nano - YouTube
Regards,
TCIII

1 Like

Hey!

I’ve got a device that takes in a 3.3V signal; however I am experience the same issues as described here. Based on what you have describe, I’m thinking that this device has a high internal capacitance. Is there anyway to add some circuitry between the GPIO and the signal line to avoid this issue?

Thanks

1 Like

Please help to open a new topic for your issue. Thanks

I have read every comments but I could not find any real solution about gpio problem. I see approximately 1.5 V from oscilloscope even when I made them high from terminal with “echo”. So I need help why do I see absurd signal from output ?

1 Like

Hi berk.yildiz,

Please help to open a new topic for your issue. Thanks

berk.yildiz, We had success after switching our oscilloscope probe to 10x. This will help reduce capacitive loading.

For AGX Xavier only - and assuming you have jumper 514 set to pins 1 and 2:

The docs and io tools ‘imply’ that any unused pins on the 40 pin header can be used interchangeably for GPIO. A little exploration and examination of Developer Kit Carrier Board docs show that this is not true.

I found that only pins sourcing 1 ma or more reliably provide 3.3v as outputs. These are pins 11, 16, 29, 31, 32, 33, and 37. All the rest of potential GPIO pins (7,12,13,15,18,19,21,22,23,24,26,35,28, and 40] source 20 micro amps - just not enough to drive a realistic load. For example, my multi meter never shows the voltage on these pins above ~3.0.

Finally, pin 36 does not seem to source any useful current. I have not tried it on the scope but multimeter shows it as ~0 v regardless of output state. Docs list ‘-’ as potential drive current.