Octave WP7702 UART USP & ORP - how to disable "autosleep" on WP7702 UARTS

Hi

Is it possible to disable wp7702 UART autosleep on Octave / Legato / WP7702 UARTs?

We think the default is set to 5 seconds. After 5 seconds with no data the UART sleeps - after this data into the WP7702 UART arrives at the OS corrupted. We don’t know how long the corruption lasts before the data stream is OK.

at+ksleep=?
+KSLEEP: (0-2)

OK
at+ksleep?
+KSLEEP: 1

OK

My colleague has tested setting at+ksleep=2 without success. He also tried modifying /sys/devices/platform/msm_serial_hs.0/power/autosuspend_delay_ms

Is the issue FW version specific?
or
A general Legato / OS issue?
or
Octave specific?

I partially raised this issue in this post. But I think it needs an individual tread.

The original post was concerned with the wake-up method - what is the UART wake specification for the mangOH?

Thanks

John

Hi John,
KSLEEP function is firmware service, it is not handled by Legato or Octave. KSLEEP command affects only for UART1 with AT command configuration.
If you want device going to sleep, you can use ULPM function, it can be handled by Legato or Octave.
The document is here https://docs.octave.dev/docs/controlling-ultra-low-power-mode

Thanks,

Hi Jerdung

Thank you I fully understand how to use ULPM mode on the WP7xxx series. The issue I’m trying to solve is not related to ULPM as we are not using it. I can imagine that the current default setting on the mangOH yellow UART could be set to 5 second “autosleep” to aid ULPM?

The issue occurs during normal Linux run mode and is limited to the physical WP7702 UARTs corrupting incoming (to Octave/ Linux) data when no data has been sent by an external device to the WP7702 UART for a >5 second period.

From my original post

Expanding on this issue - currently we have seen the UART1 5 second sleep on the following hardware / FW

  1. mangOH Yellow 2.1.2 ORP & 3.0.0 USP UART1
  2. FX30S 2.1.x ? (I’ll update information on this when I have access to the FX30s) USP UART1

The ORP Python example has an undocumented feature to workaround the WP7702 UART “autosleep” which is to send dummy HDLC packets “~~~”.

However thinking about AT commands and how they work is it possible we need to configure the physical UART with the AT+KSLEEP=2 command by directly sending the command via the actual UART we want to reconfigure (WP7702 UART1 in this case) in AT command mode?

When I wrote

I forgot that when we tested the ksleep command - the command would have been sent either via the USB serial command port or the shell serial port “/dev/ttyAT”.

Maybe a procedure something like the following is required to configure the hardware UART?

  1. Configure the WP7702 UART1 to AT command mode
  2. Connect external PC UART to WP7702 UART1
  3. Send AT+KSLEEP=2 to WP7702 UART1
  4. Configure the WP7702 UART 1 to be a Linux Serial port

You can send AT+KSLEEP=2 through USB port or from linux :

  • send “microcom /dev/ttyAT”
  • AT+KSLEEP=2
  • Ctrl+x to escape

Thanks,

WP7702 UART1 “autosleep” is disabled on the FX30S FW 3.0.0.pre03Jun2020 - we don’t see any data corruption even for long periods of no data

WP7702 UART1 “autosleep” is enabled mangOH yellow 3.0.0-pre23April2020-mangOH-0 and earlier FW versions

I don’t know the WP7702 UART1 “autosleep” status of the WP7702 FW versions.

We tried my procedure

  1. Configure the UART1 to AT command mode
  2. Connect external PC UART to WP7702 UART1
  3. Send AT+KSLEEP=2 to WP7702 UART1
  4. Configure the WP7702 UART 1 to be a Linux Serial port

On the FX30S FW 3.0.0.pre03Jun2020 using the Legato target command line tool uartMode for step 1. this failed at step 1. - after reboot the FX30S UART1 remained in Linux application mode.

Hi John,
The UART autosuspend issue is known on current firmware. But I don’t know it will be fixed in which firmware, to get more details you can raise a support through https://www.sierrawireless.com/support/

To disable KSLEEP, You can send AT+KSLEEP=2 through USB port or from linux :

  • send “microcom /dev/ttyAT”
  • AT+KSLEEP=2
  • Ctrl+x to escape
    And increase timeout in /sys/devices/platform/msm_serial_hs.0/power/autosuspend_delay_ms

Thanks,

1 Like