BM818 firmware bug with AT+CCLK resulting in dialing errors
It looks like there's a problem with the BM818's handling of the AT+CCLK?
command. Other commands like AT+CFUN=?
and AT+CREG=?
work fine with carriage return characters but AT+CCLK?
seems to require a variable number of line feed (and/or possibly carriage return) characters after, seemingly depending on its mood. This can result in the following under ModemManager:
ModemManager[1025]: <debug> [1574763430.732691] (ttyUSB1) device open count is 2 (open)
ModemManager[1025]: <debug> [1574763430.733302] (ttyUSB1): --> 'AT+CCLK?<CR>'
ModemManager[1025]: <debug> [1574763433.730930] Couldn't load network timezone: Serial command timed out
ModemManager[1025]: <warn> [1574763433.731237] Couldn't load network timezone from the current network
ModemManager[1025]: <debug> [1574763433.731317] (ttyUSB1) device open count is 1 (close)
ModemManager[1025]: <warn> [1574763433.731555] (tty/ttyUSB1) at port timed out 2 consecutive times
ModemManager[1025]: <debug> [1574763447.163110] Added CALL at '/org/freedesktop/ModemManager1/Call/0'
ModemManager[1025]: <info> [1574763447.192843] user request to start call
ModemManager[1025]: <info> [1574763447.192990] Call state changed: unknown -> dialing (outgoing-started)
ModemManager[1025]: <debug> [1574763447.193033] Setting up in-call unsolicited events...
ModemManager[1025]: <debug> [1574763447.193409] (ttyUSB1) device open count is 2 (open)
ModemManager[1025]: <debug> [1574763447.193748] (ttyUSB1): --> 'ATD07763578094;<CR>'
ModemManager[1025]: <debug> [1574763447.485991] (ttyUSB1): <-- '<CR><LF>+CCLK: "80/01/06,00:04:11"<CR><LF><CR><LF>OK<CR><LF>'
ModemManager[1025]: <warn> [1574763447.487250] Couldn't start call : 'Couldn't start the call: Unhandled response '+CCLK: "80/01/06,00:04:11"''
I've tested AT+CFUN=?
and AT+CREG=?
using the following:
echo -ne 'AT+CFUN=?\r' > script
echo -ne 'AT+CREG=?\r' > script
and then sending the script file using 'C-A y' in minicom. I immediately get:
+CFUN: (0-1,4-7),(0-1)
OK
and
+CREG: (0-2)
OK
If I do the same with AT+CCLK?
:
echo -ne 'AT+CCLK?\r' > script
then I get no response from the modem until I press enter in minicom.
I also checked the AT+CMER?
command which also has no '=' symbol. It
displays behaviour identical to AT+CCLK?
. It looks like there is a
problem with the command parser in the firmware on the BM818.