Jetson.GPIO not detecting AGX devboard anymore

Hello,

At some point, we received the error mentioned here, but since it seems to be a hardware problem, can you please tell us how to debug this further? Strange thing is, it worked before…

Thank you!
R

jetson@agx:~$ sudo python3
Python 3.8.5 (default, Jul 28 2020, 12:59:40)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import Jetson.GPIO as GPIO
WARNING: Carrier board is not from a Jetson Developer Kit.
WARNNIG: Jetson.GPIO library has not been verified with this carrier board,
WARNING: and in fact is unlikely to work correctly.
>>> GPIO.JETSON_INFO
{'P1_REVISION': 1, 'RAM': '16384M', 'REVISION': 'Unknown', 'TYPE': 'Jetson Xavier', 'MANUFACTURER': 'NVIDIA', 'PROCESSOR': 'ARM Carmel'}
>>> GPIO.VERSION
'2.0.16'
>>>
jetson@agx:~$ cat /etc/nv_tegra_release
# R32 (release), REVISION: 5.0, GCID: 25531747, BOARD: t186ref, EABI: aarch64, DATE: Fri Jan 15 23:21:05 UTC 2021
jetson@agx:~$
jetson@agx:~$ cat /proc/device-tree/compatible
nvidia,galennvidia,jetson-xaviernvidia,p2822-0000+p2888-0001nvidia,tegra194
jetson@agx:~$ ls -l /proc/device-tree/chosen/plugin-manager/ids
total 0
-r--r--r-- 1 root root 25 Feb 25 21:40 2888-0004-400
-r--r--r-- 1 root root 25 Feb 25 21:40 framos-imx464-0
-r--r--r-- 1 root root  4 Feb 25 21:40 name
jetson@agx:~$

hello razvan.grigore,

had you seen this issue before, or this is a regression with l4t-r32.5 release?

Hey Jerry, yes, it worked before with Jetpack 4.5.

Any idea how to debug if this is a hardware problem?

hello razvan.grigore,

you may flash previous JetPack release versions to rule out it’s a software regression,
please check JetPack Archive for the page it includes access to previously released versions of JetPack.

for the steps to dig this further,
you may arrange hardware resources to probe the pin and measure the signaling,
thanks

Hey Jerry, as I said, it worked before with this new version of Jetpack, we also tried a fresh install, but still the same.

We did more tests today and we could find that the GPIO pins seems to be partially working: eg. we have 5V and 3V on the pins, including on 3 & 5 for I2C and we can see activity on the oscilloscope when we scan the i2c bus.

so actually our adafruit_pca9685 I2C device is detected, but there seems to be a problem in python

jetson@agx:~$ sudo i2cdetect -y -r 8
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --

how can we rule out a hardware problem? is there a way to understand why the devboard is not detected anymore?

Support on github says we should have

2822-0000-700  2888-0004-400

in /proc/device-tree/chosen/plugin-manager/ids but we only have:

2888-0004-400

what can be the reason? the devboard of AGX is clearly there, we can connect with USB and HDMI to it and it’s working fine.

Thank you!

Is this similar to your problem?

yes, exactly, but we tried different wires and also the same adafruit board on another nano (with the same wires) and it works fine.

if you are not able to read this address then the eeprom is not getting detected
i2cdump -y 0 0x56

2888 and 2822 , both are on bus 0

if you can read it and the data is different from 2822, then you have written in that eeprom and thus sw is not recognizing it.

please share the complete boot log which you get over uart

Yes! I guess this is the problem, since we used a script from Framos that writes into the EEPROM to use their CSI cameras.

Is there a way to revert the EEPROM values to defaults?

The content and CRC is described in product documentation, but we do not provide a utility to re-write it. The serial number and part number information should be accessible from the barcode sticker on the module and user can use standard i2ctools utilities for writing it.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/jetson_eeprom_layout.html

Thank you!

Then maybe we can only fix the part-number address, can you tell us what should be in here for Jetson AGX devboard 32GB? Can we get the values from the box sticker?

jetson@agx:~$ i2cdump -y 0 0x56
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
10: ff ff ff ff cc 66 72 61 6d 6f 73 2d 69 6d 78 34    ....?framos-imx4
20: 36 34 2d 30 00 ff ff ff ff ff ff ff ff ff ff ff    64-0............
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
jetson@agx:~$

carrier board has only board number serial info.
example is this:

tegra@agx:~$ i2cdump -y 0 0x56
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 01 00 ff 00 06 0b 00 00 06 44 00 00 00 00 00 00 ?..??..?D…
10: 00 01 16 0d 36 39 39 2d 38 32 38 32 32 2d 30 30 .???699-82822-00
20: 30 30 2d 36 30 30 20 44 2e 30 00 00 00 00 00 00 00-600 D.0…
30: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff …
40: ff ff ff ff ff ff ff ff ff ff 30 34 32 33 37 31 …042371
50: 38 30 36 33 33 35 30 00 00 00 00 00 00 00 00 00 8063350…
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
90: 00 00 00 00 00 00 46 46 46 46 ff ff 46 46 ff ff …FFFF…FF…
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff …
b0: ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a …j
indent preformatted text by 4 spaces

hmm, any idea in which format to write that back? we have the serial on the box I guess.

Shouldn’t we write 2822-0000-700 there somehow? the devboard part-number I think.

yes, pasting the value to be written

10: 00 01 16 0d 36 39 39 2d 38 32 38 32 32 2d 30 30 .???699-82822-00
20: 30 30 2d 37 30 30 20 44 2e 30 00 00 00 00 00 00 00-700 D.0…

Worked, now the board is detected by Jetson.GPIO (warning is gone) but unfortunately the i2c device still does not work 🙁 should I open a new topic regarding this, or you think the other missing bytes in the EEPROM could cause this? Do I have to also put the serial in there?

jetson@agx:~$ i2cdump -y 0 0x56
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
10: 00 01 16 0d 36 39 39 2d 38 32 38 32 32 2d 30 30    .???699-82822-00
20: 30 30 2d 37 30 30 20 44 2e 30 00 00 00 00 00 00    00-700 D.0......
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
jetson@agx:~$ ls -al /proc/device-tree/chosen/plugin-manager/ids
total 0
drwxr-xr-x 2 root root  0 Mar  4 13:05 .
drwxr-xr-x 7 root root  0 Mar  4 13:05 ..
-r--r--r-- 1 root root 25 Mar  4 13:05 2822-0000-700
-r--r--r-- 1 root root 25 Mar  4 13:05 2888-0004-400
-r--r--r-- 1 root root 25 Mar  4 13:05 framos-adapter
-r--r--r-- 1 root root  4 Mar  4 13:05 name
jetson@agx:~$

generate the crc of the data and append it as mentioned in the documentation, then it should work

Hello @razvan.grigore , I am one of the FAEs at FRAMOS. I was wondering if this is an issue that FRAMOS team could help resolve.

Do you have a contact at FRAMOS that you are communicating, please? If not, please let me know where you are based and how you came to use the FRAMOS adapter so we can get you in touch with appropriate team member.

Hello, yes, we are in contact with David usually.

The most important feedback we have here is to update your write_eeprom.sh script to prevent writing on address 0x56 on I2C bus 0, since this will override the jetson eeprom, not the adapter or camera modules of Framos.

Unfortunately we did not see the bus 30 as in documentation and we thought it’s maybe on 0…

Glad to hear that you are already in communication with my colleague, David. I will communicate your feedback to our engineering team as well.

Thanks.