I’m using the Bus 1 of the Jetson Nano to interface with blue robotics Bar 30 pressure sensor using the MS5837 python library. The code works fine most of the times but suddenly it fails with Error 121: Remote I/O error after running for some time or sometimes during the initialization itself. The other devices on the same bus work fine.
I found the same issue listed in the issues section of the ms5837 library without being resolved.
Please point me towards what is wrong.
Hardware: Jetson Nano Developer Kit, Blue Robotics Bar 30 Sensor
Software: Python M
10.792115] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 12.928074] ip6_tables: (C) 2000-2006 Netfilter Core Team
[ 13.207989] Bridge firewalling registered
[ 13.226812] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[ 13.400006] Netfilter messages via NETLINK v0.30.
[ 13.405400] ctnetlink v0.93: registering with nfnetlink.
[ 13.510023] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready
[ 13.556512] R8188EU: assoc success
[ 13.565530] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 13.594288] virbr0: port 1(virbr0-nic) entered blocking state
[ 13.594293] virbr0: port 1(virbr0-nic) entered disabled state
[ 13.594438] device virbr0-nic entered promiscuous mode
[ 13.934171] virbr0: port 1(virbr0-nic) entered blocking state
[ 13.934176] virbr0: port 1(virbr0-nic) entered listening state
[ 14.103630] virbr0: port 1(virbr0-nic) entered disabled state
[ 14.785106] tegradc tegradc.0: unblank
[ 14.785351] tegradc tegradc.1: blank - powerdown
[ 16.285847] fuse init (API version 7.26)
[ 19.133656] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 19.133666] Bluetooth: BNEP socket layer initialized
[ 21.486916] tegradc tegradc.0: unblank
[ 21.486927] tegradc tegradc.1: blank - powerdown
[ 31.871563] vdd-fan: disabling
[ 31.871567] vdd-usb-vbus: disabling
[ 31.871569] vdd-usb-vbus2: disabling
[ 31.871579] vddio-sdmmc3-ap: disabling
[ 31.871736] avdd-io-edp-1v05: disabling
[ 31.871739] vdd-usb-hub-en: disabling
[ 87.783156] tegra-i2c 7000c400.i2c: no acknowledge from address 0x30
[ 87.802662] tegra-i2c 7000c400.i2c: no acknowledge from address 0x31
[ 87.833695] tegra-i2c 7000c400.i2c: no acknowledge from address 0x32
[ 87.859202] tegra-i2c 7000c400.i2c: no acknowledge from address 0x33
[ 87.888042] tegra-i2c 7000c400.i2c: no acknowledge from address 0x34
[ 87.908129] tegra-i2c 7000c400.i2c: no acknowledge from address 0x35
[ 87.926492] tegra-i2c 7000c400.i2c: no acknowledge from address 0x36
[ 87.940874] tegra-i2c 7000c400.i2c: no acknowledge from address 0x37
[ 87.970385] tegra-i2c 7000c400.i2c: no acknowledge from address 0x50
[ 87.992040] tegra-i2c 7000c400.i2c: no acknowledge from address 0x51
[ 88.035181] tegra-i2c 7000c400.i2c: no acknowledge from address 0x52
[ 88.050330] tegra-i2c 7000c400.i2c: no acknowledge from address 0x53
[ 88.071196] tegra-i2c 7000c400.i2c: no acknowledge from address 0x54
[ 88.102101] tegra-i2c 7000c400.i2c: no acknowledge from address 0x55
[ 88.127254] tegra-i2c 7000c400.i2c: no acknowledge from address 0x56
[ 88.144093] tegra-i2c 7000c400.i2c: no acknowledge from address 0x57
[ 88.172123] tegra-i2c 7000c400.i2c: no acknowledge from address 0x58
[ 88.195551] tegra-i2c 7000c400.i2c: no acknowledge from address 0x59
[ 88.215220] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5a
[ 88.232873] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5b
[ 88.243453] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5c
[ 88.256026] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5d
[ 88.271238] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5e
[ 88.302209] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5f
[ 88.463238] tegra-i2c 7000c400.i2c: no acknowledge from address 0x30
[ 88.491979] tegra-i2c 7000c400.i2c: no acknowledge from address 0x31
[ 88.516212] tegra-i2c 7000c400.i2c: no acknowledge from address 0x32
[ 88.528305] tegra-i2c 7000c400.i2c: no acknowledge from address 0x33
[ 88.552554] tegra-i2c 7000c400.i2c: no acknowledge from address 0x34
[ 88.567749] tegra-i2c 7000c400.i2c: no acknowledge from address 0x35
[ 88.586180] tegra-i2c 7000c400.i2c: no acknowledge from address 0x36
[ 88.603238] tegra-i2c 7000c400.i2c: no acknowledge from address 0x37
[ 88.628494] tegra-i2c 7000c400.i2c: no acknowledge from address 0x50
[ 88.651253] tegra-i2c 7000c400.i2c: no acknowledge from address 0x51
[ 88.669321] tegra-i2c 7000c400.i2c: no acknowledge from address 0x52
[ 88.695273] tegra-i2c 7000c400.i2c: no acknowledge from address 0x53
[ 88.719165] tegra-i2c 7000c400.i2c: no acknowledge from address 0x54
[ 88.727251] tegra-i2c 7000c400.i2c: no acknowledge from address 0x55
[ 88.752043] tegra-i2c 7000c400.i2c: no acknowledge from address 0x56
[ 88.771263] tegra-i2c 7000c400.i2c: no acknowledge from address 0x57
[ 88.795468] tegra-i2c 7000c400.i2c: no acknowledge from address 0x58
[ 88.818727] tegra-i2c 7000c400.i2c: no acknowledge from address 0x59
[ 88.835265] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5a
[ 88.859353] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5b
[ 88.883425] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5c
[ 88.903381] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5d
[ 88.942208] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5e
[ 88.959285] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5f
[ 183.670629] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5
[ 183.679245] tegra-i2c 7000c400.i2c: no acknowledge from address 0x48
[ 183.686939] tegra-i2c 7000c400.i2c: no acknowledge from address 0x6
[ 183.693933] tegra-i2c 7000c400.i2c: no acknowledge from address 0x76
[ 230.028384] usb 1-2.1: usb_suspend_both: status 0
[ 369.433008] tegra-i2c 7000c400.i2c: no acknowledge from address 0x30
[ 369.441175] tegra-i2c 7000c400.i2c: no acknowledge from address 0x31
[ 369.471040] tegra-i2c 7000c400.i2c: no acknowledge from address 0x32
[ 369.489375] tegra-i2c 7000c400.i2c: no acknowledge from address 0x33
[ 369.512214] tegra-i2c 7000c400.i2c: no acknowledge from address 0x34
[ 369.537078] tegra-i2c 7000c400.i2c: no acknowledge from address 0x35
[ 369.553154] tegra-i2c 7000c400.i2c: no acknowledge from address 0x36
[ 369.584239] tegra-i2c 7000c400.i2c: no acknowledge from address 0x37
[ 369.593714] tegra-i2c 7000c400.i2c: no acknowledge from address 0x50
[ 369.620223] tegra-i2c 7000c400.i2c: no acknowledge from address 0x51
[ 369.633612] tegra-i2c 7000c400.i2c: no acknowledge from address 0x52
[ 369.659615] tegra-i2c 7000c400.i2c: no acknowledge from address 0x53
[ 369.681223] tegra-i2c 7000c400.i2c: no acknowledge from address 0x54
[ 369.703784] tegra-i2c 7000c400.i2c: no acknowledge from address 0x55
[ 369.721523] tegra-i2c 7000c400.i2c: no acknowledge from address 0x56
[ 369.748223] tegra-i2c 7000c400.i2c: no acknowledge from address 0x57
[ 369.769843] tegra-i2c 7000c400.i2c: no acknowledge from address 0x58
[ 369.786686] tegra-i2c 7000c400.i2c: no acknowledge from address 0x59
[ 369.810861] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5a
[ 369.835057] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5b
[ 369.845398] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5c
[ 369.873558] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5d
[ 369.888418] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5e
[ 369.909222] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5f
[ 370.076230] tegra-i2c 7000c400.i2c: no acknowledge from address 0x30
[ 370.106462] tegra-i2c 7000c400.i2c: no acknowledge from address 0x31
[ 370.132256] tegra-i2c 7000c400.i2c: no acknowledge from address 0x32
[ 370.153096] tegra-i2c 7000c400.i2c: no acknowledge from address 0x33
[ 370.176516] tegra-i2c 7000c400.i2c: no acknowledge from address 0x34
[ 370.196640] tegra-i2c 7000c400.i2c: no acknowledge from address 0x35
[ 370.213402] tegra-i2c 7000c400.i2c: no acknowledge from address 0x36
[ 370.246119] tegra-i2c 7000c400.i2c: no acknowledge from address 0x37
[ 370.270556] tegra-i2c 7000c400.i2c: no acknowledge from address 0x50
[ 370.285443] tegra-i2c 7000c400.i2c: no acknowledge from address 0x51
[ 370.301266] tegra-i2c 7000c400.i2c: no acknowledge from address 0x52
[ 370.337900] tegra-i2c 7000c400.i2c: no acknowledge from address 0x53
[ 370.366858] tegra-i2c 7000c400.i2c: no acknowledge from address 0x54
[ 370.388350] tegra-i2c 7000c400.i2c: no acknowledge from address 0x55
[ 370.416984] tegra-i2c 7000c400.i2c: no acknowledge from address 0x56
[ 370.435221] tegra-i2c 7000c400.i2c: no acknowledge from address 0x57
[ 370.468219] tegra-i2c 7000c400.i2c: no acknowledge from address 0x58
[ 370.486472] tegra-i2c 7000c400.i2c: no acknowledge from address 0x59
[ 370.501069] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5a
[ 370.536792] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5b
[ 370.558993] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5c
[ 370.568829] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5d
[ 370.592422] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5e
[ 370.610789] tegra-i2c 7000c400.i2c: no acknowledge from address 0x5f
[ 574.453011] tegra-i2c 7000c400.i2c: no acknowledge from address 0x76
[ 635.998341] usb 1-2.1: usb_suspend_both: status 0
This is the last few lines of the log after the pressure sensor fails. I’m not sure how to interpret this.
I’ve noticed that the remote IO error happens whenever one or more GPIO pins change state. The pin numbers are 7, 11, 13, 21 and 23.
I have switches connected to these pins, which are usually low. When I close the switch is closed, it changes to high.
The error happens even when I don’t run the nodes for the switches and only run the pressure sensor node. It runs for a long time when there is no state change on the pins and fails when the pins change state. Simultaneously, the SDA line goes completely low as viewed on the oscilloscope.