HL7812 USB AT Response splits command echo

I have observed, with the HL7812 over USB, that the AT response can be sent before the echo of the AT command has completed.

Here are a couple of examples:

AT+CREG

+CREG: 0,3



OK

?
AT

+CSQ: 99,99



OK

+CSQ
AT+CRE

+CREG: 0,3



OK

G?

It does create issues for our chatscripts/parser.
I found if preferential to keep the echo as it simplified our parser logic (only one data stream to monitor [and not both the TX and RX data]).

I don’t think this issue was present on previous modules we have used.

I don’t see problem with tera term in windows:

ati3
HL7812.5.4.10.0

OK
at+Creg?
+CREG: 0,0

OK
at&v
ACTIVE PROFILE:
E1 Q0 V1 X4 &C1 &D1 &R1 &S0 +IFC=2,2 &K3 +IPR=115200 +FCLASS0
S00:0 S01:0 S03:13 S04:10 S05:8 S07:255 S08:0 S10:1
STORED PROFILE 0:
E1 Q0 V1 X4 &C1 &D1 &R1 &S0 +IFC=2,2 &K3 +IPR=115200 +FCLASS0
S00:0 S01:0 S03:13 S04:10 S05:8 S07:255 S08:0 S10:1
STORED PROFILE 1:
E1 Q0 V1 X4 &C1 &D1 &R1 &S0 +IFC=2,2 &K3 +IPR=115200 +FCLASS0
S00:0 S01:0 S03:13 S04:10 S05:8 S07:255 S08:0 S10:1

OK
AT+KUSBCOMP?
+KUSBCOMP: 1,1,2,3

OK
at+creg?
+CREG: 0,0

OK
at+csq
+CSQ: 99,99

OK

It doesn’t happen every time. I can repeat it by “pasting” in the command with the line feed using PuTTY.

How about tera term?

Have you tried different pc?
Have you tried linux?

Just repeated the test with a HL8548, and it doesn’t show up.

The modem is actually attached to an embedded Linux (Debian) SBC.

Our application connects natively to the USB dev and sends and uses AT (plus PPP for the dial out)

To test, I can connect over SSH (using PuTTY) to the console and run picocom.

Then is the ppp ok to dial up?
Are we using same firmware?

ati9
HL7812.5.4.10
HL78xx.5.4.10.0.RK_03_02_00_00_22111_001.20220530
2022/05/30 02:04:45
IMEI-SV: 3511444403439011
Legato RTOS: 22.04.0.FreeRTOS.w19 2022/05/04 17:23:01
atSwi: 22.04.0.FreeRTOS.w19
UBOOT: 01.03
Apps: RKAPP_03_02_00_00_22061_001__d21d59a7ccfd13226f6533f3bf8647cb216120a8
MAC: ALT1250_03_02_00_00_22111_2G
PHY: 12.50.306085
PMP: 306188
AISE: ISE2APP_00_00_00_09

SBUB: 1
SBFW: 1
FPuK1: CBF402DD
FPuK2: 4BE7EB7F
RBUB: 0
RBFW: 0
MCU-Disable: 1

I believe there are newer FW. I may look to install it and retest.

Btw, is the ppp ok to dial up?

ppp does work. We have had some units under test with these modems for a few months.

The AT side is a polling loop that waits for the network connection status before triggering ppp dialer.

Can you use ate0 which is no echo?

Not without large recoding of our application.
This has exposed some weaknesses in our app - we are doing an update that will retry the AT command (until it returns without errors).
There is also an option to add in a short delay before the LF, to give it time to complete the echo back.

I have connected up the dev board to the PC, and upgraded to the latest FW.

ati9
HL7812.5.5.8.0-23.10.0.FreeRTOS.w41
HL78xx.5.5.8.0.RK_03_02_00_00_34211_001.20231031
2023/10/31 10:26:07
IMEI-SV: 3511444403439016
Legato RTOS: 23.10.0.FreeRTOS.w41 2023/09/22 11:24:21
atSwi: HL78XX.5.5.7.0-23.10.0.FreeRTOS.w41
UBOOT: 01.03
Apps: RKAPP_03_02_00_00_33241_004__869de8b6ed4b4a7d35a729d4e3fde1db0c676aff
MAC: ALT1250_03_02_00_00_34211_2G
PHY: 12.50.322167
PMP: 322145
AISE: ISE2APP_00_00_00_09

SBUB: 1
SBFW: 1
FPuK1: CBF402DD
FPuK2: 4BE7EB7F
RBUB: 0
RBFW: 0
MCU-Disable: 1

OK

Makes no difference to the behaviour.

I have installed Tera Term and run the same tests. If you choose the paste<CR> option and type the command with a new line at the end. it fragments the echo.

at
+COPS: 0

OK
+cops?

Then is it ok to add in a short delay before the LF?

Or you program can wait all the echo before sending LF?

I am going to alter the program to do this.

For the thread, is this considered expected/acceptable behaviour for the HL7812?
Or is it a bug? And might it be [eventually] fixed.

this bug has been reported internally