Airvantage data push stops after some time

Hi All,

I am using the WP7702 with mangoh red and pushing data to Airvantage. Following is the cm info output

After some hours of posting data to Airvantage, the redSensorToCloud stops posting data. logread out is as follows
Jul 17 08:59:57 swi-mdm9x28 user.err kernel: [328679.328976] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:14) mode:FIFO slv_addr:0x3a MSTR_STS:0x0c1300c8 OPER:0x00000090
Jul 17 08:59:57 swi-mdm9x28 user.info kernel: [328679.349742] gpio_check_and_wake: wake-n_gpio26 STATE=WAKEUP
Jul 17 08:59:57 swi-mdm9x28 user.info kernel: [328679.364308] gpio_check_and_wake: wake-n_gpio26 STATE=SLEEP
Jul 17 08:59:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 08:59:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 08:59:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 108 | SMBUS READ addr=0x5a, reg=0x6, data=0x3a2d
Jul 17 08:59:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c mangOH_ReadAmbientTemperatureSensor() 208 | Ambient temperature value is 3A2D 14893
Jul 17 08:59:59 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 08:59:59 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 08:59:59 swi-mdm9x28 user.err kernel: [328681.412008] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x081121d0 OPER:0x00000c60
Jul 17 09:00:00 swi-mdm9x28 user.err kernel: [328681.425185] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x081121d0 OPER:0x00000e60
Jul 17 09:00:00 swi-mdm9x28 user.err Legato: =ERR= | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 101 | smbus read failed with error -1
Jul 17 09:00:00 swi-mdm9x28 user.warn Legato: -WRN- | redSensorToCloud[16737]/avPublisherComponent T=main | avPublisher.c SampleTimerHandler() 503 | Failed to read object temperature
Jul 17 09:00:00 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeRemaining() 673 | Charge remaining = 2394
Jul 17 09:00:00 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeStatus() 549 | Charge = Discharging
Jul 17 09:00:27 swi-mdm9x28 user.err kernel: [328709.329304] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:14) mode:FIFO slv_addr:0x3a MSTR_STS:0x0c1300c8 OPER:0x00000090
Jul 17 09:00:27 swi-mdm9x28 user.info kernel: [328709.350129] gpio_check_and_wake: wake-n_gpio26 STATE=WAKEUP
Jul 17 09:00:27 swi-mdm9x28 user.info kernel: [328709.364290] gpio_check_and_wake: wake-n_gpio26 STATE=SLEEP
Jul 17 09:00:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 09:00:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 09:00:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 108 | SMBUS READ addr=0x5a, reg=0x6, data=0x3a2b
Jul 17 09:00:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c mangOH_ReadAmbientTemperatureSensor() 208 | Ambient temperature value is 3A2B 14891
Jul 17 09:00:29 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 09:00:29 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 09:00:29 swi-mdm9x28 user.err kernel: [328711.413890] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x0c1100d0 OPER:0x00000f60
Jul 17 09:00:30 swi-mdm9x28 user.err kernel: [328711.427156] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x081121d0 OPER:0x00000c60
Jul 17 09:00:30 swi-mdm9x28 user.err Legato: =ERR= | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 101 | smbus read failed with error -1
Jul 17 09:00:30 swi-mdm9x28 user.warn Legato: -WRN- | redSensorToCloud[16737]/avPublisherComponent T=main | avPublisher.c SampleTimerHandler() 503 | Failed to read object temperature
Jul 17 09:00:30 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeRemaining() 673 | Charge remaining = 2392
Jul 17 09:00:30 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeStatus() 549 | Charge = Discharging
Jul 17 09:00:57 swi-mdm9x28 user.err kernel: [328739.329344] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:14) mode:FIFO slv_addr:0x3a MSTR_STS:0x0c1300c8 OPER:0x00000090
Jul 17 09:00:57 swi-mdm9x28 user.info kernel: [328739.350102] gpio_check_and_wake: wake-n_gpio26 STATE=WAKEUP
Jul 17 09:00:57 swi-mdm9x28 user.info kernel: [328739.361152] gpio_check_and_wake: wake-n_gpio26 STATE=SLEEP
Jul 17 09:00:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 09:00:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 09:00:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 108 | SMBUS READ addr=0x5a, reg=0x6, data=0x3a2d
Jul 17 09:00:58 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c mangOH_ReadAmbientTemperatureSensor() 208 | Ambient temperature value is 3A2D 14893
Jul 17 09:00:59 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 09:00:59 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 09:00:59 swi-mdm9x28 user.err kernel: [328741.413172] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x0c1100d0 OPER:0x00000f60
Jul 17 09:01:00 swi-mdm9x28 user.err kernel: [328741.428713] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x0c1100d0 OPER:0x00000f60
Jul 17 09:01:00 swi-mdm9x28 user.err Legato: =ERR= | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 101 | smbus read failed with error -1
Jul 17 09:01:00 swi-mdm9x28 user.warn Legato: -WRN- | redSensorToCloud[16737]/avPublisherComponent T=main | avPublisher.c SampleTimerHandler() 503 | Failed to read object temperature
Jul 17 09:01:00 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeRemaining() 673 | Charge remaining = 2389
Jul 17 09:01:00 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeStatus() 549 | Charge = Discharging
Jul 17 09:01:00 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/framework T=main | LE_FILENAME le_mem_ForceAlloc() 841 | Memory pool ‘framework.hashMap_refle_avdata_’ overflowed. Expanded to 313 blocks.
Jul 17 09:01:27 swi-mdm9x28 user.err kernel: [328769.329326] i2c-msm-v2 78b8000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:14) mode:FIFO slv_addr:0x3a MSTR_STS:0x0c1300c8 OPER:0x00000090
Jul 17 09:01:27 swi-mdm9x28 user.info kernel: [328769.349788] gpio_check_and_wake: wake-n_gpio26 STATE=WAKEUP
Jul 17 09:01:27 swi-mdm9x28 user.info kernel: [328769.362676] gpio_check_and_wake: wake-n_gpio26 STATE=SLEEP
Jul 17 09:01:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 09:01:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 09:01:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 108 | SMBUS READ addr=0x5a, reg=0x6, data=0x3a2c
Jul 17 09:01:28 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c mangOH_ReadAmbientTemperatureSensor() 208 | Ambient temperature value is 3A2C 14892
Jul 17 09:01:29 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 31 | Opening I2C bus: ‘/dev/i2c/8’
Jul 17 09:01:29 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c I2cAccessBusAddr() 36 | Opening I2C bus: ‘/dev/i2c-8’
Jul 17 09:01:29 swi-mdm9x28 user.err kernel: [328771.413841] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x0c1100d0 OPER:0x00000f60
Jul 17 09:01:30 swi-mdm9x28 user.err kernel: [328771.427110] i2c-msm-v2 78b8000.i2c: ARB_LOST: msgs(n:2 cur:0 tx) bc(rx:2 tx:1) mode:FIFO slv_addr:0x5a MSTR_STS:0x081121d0 OPER:0x00000c60
Jul 17 09:01:30 swi-mdm9x28 user.err Legato: =ERR= | redSensorToCloud[16737]/sensorsComponent T=main | tempSensor.c SmbusReadReg() 101 | smbus read failed with error -1
Jul 17 09:01:30 swi-mdm9x28 user.warn Legato: -WRN- | redSensorToCloud[16737]/avPublisherComponent T=main | avPublisher.c SampleTimerHandler() 503 | Failed to read object temperature
Jul 17 09:01:30 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeRemaining() 673 | Charge remaining = 2387
Jul 17 09:01:30 swi-mdm9x28 user.info Legato: INFO | batteryService[16288]/batteryServiceComponent T=main | batteryService.c ma_battery_GetChargeStatus() 549 | Charge = Discharging
Jul 17 09:01:30 swi-mdm9x28 user.warn Legato: -WRN- | avcDaemon[6782]/avcDaemon T=main | avcClient.c ConnectionStateHandler() 317 | Disconnected from data connection service, current state 1
Jul 17 09:01:30 swi-mdm9x28 user.info Legato: INFO | avcDaemon[6782]/avcDaemon T=main | avcClient.c BearerEventCb() 251 | Connected 0
Jul 17 09:01:30 swi-mdm9x28 user.warn Legato: -WRN- | dcsDaemon[16305]/le_pa_dcs T=main | pa_dcs_linux.c pa_dcs_SetDefaultGateway() 568 | Default gateway or interface is empty
Jul 17 09:01:30 swi-mdm9x28 daemon.warn dnsmasq[1365]: no servers found in /etc/resolv.conf, will retry
Jul 17 09:01:30 swi-mdm9x28 user.info Legato: INFO | avcDaemon[6782]/avcDaemon T=main | avcServer.c ProcessUpdateStatus() 1364 | Update state: Session stopped
Jul 17 09:01:30 swi-mdm9x28 user.debug Legato: DBUG | redSensorToCloud[16737]/avPublisherComponent T=main | avPublisher.c AvSessionStateHandler() 1810 | Session Stopped
Jul 17 09:01:35 swi-mdm9x28 user.warn Legato: -WRN- | dcsDaemon[16305]/le_pa_dcs T=main | pa_dcs_linux.c pa_dcs_SetDefaultGateway() 568 | Default gateway or interface is empty
Jul 17 09:01:35 swi-mdm9x28 user.warn Legato: -WRN- | dcsDaemon[16305]/dcsDaemon T=main | dcsServer.c LoadSelectedTechProfile() 984 | No value set for ‘SSID’!
Jul 17 09:01:35 swi-mdm9x28 user.warn Legato: -WRN- | dcsDaemon[16305]/dcsDaemon T=main | dcsServer.c TryStartWifiSession() 1427 | Impossible to use Wifi profile, result -1 (LE_NOT_FOUND)
Jul 17 09:09:46 swi-mdm9x28 user.warn Legato: -WRN- | posDaemon[16365]/le_pa_gnss T=unknown | pa_gnss_qmi.c UsedSvIdFound() 743 | Satellite 29 is used without being tracked
root@swi-mdm9x28:~#

Looks like the problem is here avcClient.c ConnectionStateHandler() 317 | Disconnected from data connection service
Any comments ?

Hi chinnaobi,

Yes, AIrvantage data push stop is relate to data connection stopped.

Jul 17 09:01:30 swi-mdm9x28 user.warn Legato: -WRN- | avcDaemon[6782]/avcDaemon T=main | avcClient.c ConnectionStateHandler() 317 | Disconnected from data connection service, current state 1
Jul 17 09:01:30 swi-mdm9x28 user.info Legato: INFO | avcDaemon[6782]/avcDaemon T=main | avcClient.c BearerEventCb() 251 | Connected 0
Jul 17 09:01:30 swi-mdm9x28 user.info Legato: INFO | avcDaemon[6782]/avcDaemon T=main | avcServer.c ProcessUpdateStatus() 1364 | Update state: Session stopped

Do you have any idea why it get disconnected?
Does restart the app RedSensorToCloud recover this?

To check further, maybe good to check below, before and after the stop:

cm radio
cm data

And Legato API to get the disconnect reason:

le_mdc_GetDisconnectionReason()
le_mdc_GetPlatformSpecificDisconnectionCode()
le_mdc_GetPlatformSpecificFailureConnectionReason()
https://docs.legato.io/latest/c_mdc.html#le_mdc_session_networkItf

Hope it helps.
Thx

@lotam
Do you have any idea why it gets disconnected?

No idea, the device is working on battery though FYI.

Does restart the app RedSensorToCloud recover this?

Yes, I have been doing this as of now.

Is there any way I could reinitiate avcClient session when this disconnection happens. I am suspecting it might be due to the telco as well.

Hi chinnaobi,

  1. Is there any way I could reinitiate avcClient session when this disconnection happens.

Yes, I think we can modify the app to make it recover autonomously.

Maybe you can try change the redSensorToCloud code as below, in avPublisherComponent/avPublisher.c AvSessionStateHandler(), around line 1204:

    case LE_AVDATA_SESSION_STOPPED:
    {
        LE_DEBUG("Session Stopped");
        sleep(5);
        LE_INFO("Try recover");
        AvSession = le_avdata_RequestSession();

        break;
    }

Sorry, I don’t have MangOH Red to test the change… please take as example and see if you can test it.

  1. I am suspecting it might be due to the telco as well.

Yes, it is possible, below menitoned in previous post may help confirm it:
Check before and after the stop:

cm radio
cm data

Legato API to get the disconnect reason:

le_mdc_GetDisconnectionReason()
le_mdc_GetPlatformSpecificDisconnectionCode()
le_mdc_GetPlatformSpecificFailureConnectionReason()

Hope it helps.
Thx