Hi,
I’ve upgraded my HL7800 module, from the ‘BHL78xx.1.7.14.0.RK_02_00_00_00_87.20190103’ firmware it came with, to ‘HL78xx.4.3.9.0.RK_02_01_02_00_74.20200130’.
We now find though that functionality of the RF transmit and receive test commands AT+WMTXPOWER
and AT+WMRXPOWER
, have significant ‘malbehaviour’, as compared with the 1.7.14 firmware.
With the 1.7.14 firmware, the ‘only’ problem we saw, is that AT+WMTXPOWER=0
and AT+WMRXPOWER=0
, to respectively disable RF transmit and receive, returned ERROR, but otherwise seemed to do their job.
In the 4.3.9.0 firmware, we see that problem is fixed. And indeed we see mention of the fix in the release note for 4.3.9.0 and indeed 3.7.2.3 firmware. Both release notes have the following to say about the commands:
DIZZY1-310
[WMTXPOWER] ERROR returns for AT+WMTXPOWER=0 and wrong response for read command
DIZZY1-265
[WMRXPOWER] ERROR returns for AT+WMRXPOWER= and wrong response for read command.
The 4.3.9.0 firmware though, has introduced to the AT+WMTXPOWER
and AT+WMRXPOWER
commands, four problems as below. They vary in significance. If you need, I can raise a separate topic for each of the four problems. With reference back to this one. Just let me know.
Best regards,
David
1 Echo back
Contrary to the ‘AirPrime - HL78xx - AT Commands Interface Guide - Rev10.pdf’ manual, write commands now echo back. Whereas the manual says they should respond just with OK, or ERROR if an invalid command.
Here’s five write command examples. For each, the first line is the command, the second is the undocumented echo back, and the third is the OK response. The 1.7.14 firmware didn’t do the echo back.
AT+WMTXPOWER=1,3,19575,2300,0,0<CR>
AT+WMTXPOWER=1,3,19575,2300,0,0<CR><CR><LF>
OK<CR><LF>
AT+WMTXPOWER=1,3,19575,2300,1<CR>
AT+WMTXPOWER=1,3,19575,2300,1<CR><CR><LF>
OK<CR><LF>
AT+WMTXPOWER=0<CR>
AT+WMTXPOWER=0<CR><CR><LF>
OK<CR><LF>
AT+WMRXPOWER=1,3,1575<CR>
AT+WMRXPOWER=1,3,1575<CR><CR><LF>
+WMRXPOWER: -154.0<CR><LF>
AT+WMRXPOWER=0<CR>
AT+WMRXPOWER=0<CR><CR><LF>
OK<CR><LF>
We note that the manual says about the ‘AT+WMTXPOWER’ command The module must be restarted after using this command.
So we reboot the module before each command, and then only perform one command.
To mention though, we do notice that if we try performing a second, third, fourth etc command, behaviour is no different - sometimes commands work, sometimes they don’t, explained below.
2 Double <CR>
With reference to problem 1, note also the incorrect double <CR>
in the echo back. Whereas the manual says as follows:
The "AT" or "at" prefix must be set at the beginning of each line. To terminate a command line, a <CR> character must be inserted. Commands are usually followed by a response that includes ‘<CR><LF><response><CR><LF>.
The response double <CR>
can be ‘worked around’, by instead ending the command line with <CR><LF>
. The firmware, 1.7.14 and 4.3.9.0, seems to tolerate, despite being contrary to the manual. We then get as follows, for the five examples given in problem 1. The 1.7.14 firmware works fine with ending any command lines with just <CR>
, per the manual.
AT+WMTXPOWER=1,3,19575,2300,0,0<CR><LF>
AT+WMTXPOWER=1,3,19575,2300,0,0<CR><LF>
OK<CR><LF>
AT+WMTXPOWER=AT+WMTXPOWER=1,3,19575,2300,1<CR><LF>
AT+WMTXPOWER=AT+WMTXPOWER=1,3,19575,2300,1<CR><LF>
OK<CR><LF>
AT+WMTXPOWER=0<CR><LF>
AT+WMTXPOWER=0<CR><LF>
OK<CR><LF>
AT+WMRXPOWER=1,3,1575<CR><LF>
AT+WMRXPOWER=1,3,1575<CR><LF>
+WMRXPOWER: -154.0<CR><LF>
AT+WMRXPOWER=0<CR><LF>
AT+WMRXPOWER=0<CR><LF>
OK<CR><LF>
3 Command fail
AT+WMTXPOWER
and AT+WMRXPOWER
commands, instead of giving an OK response, often the exact same commands give an ERROR response. No receive power value for AT+WMRXPOWER
commands. And no RF transmit for AT+WMTXPOWER
commands, as observed on a Spectrum Analyser.
4 Silent treatment
Often the AT+WMTXPOWER
and AT+WMRXPOWER
commands give no response: No echo back. No OK. No ERROR. No receive power value for AT+WMRXPOWER
commands. And no RF transmit for AT+WMTXPOWER
commands, as observed on a Spectrum Analyser.