PDoA (dwm1002) Node - After UART CLI "restore" command, no longer working

(ignore the tag in this posting, dwm1002 was not an option)

History:

  1. Borrowed a Windows machine, setup 1xNode + 1xTag, and watched it work
  2. Without Windows available used a terminal app to get live data from the Node, this also worked
  3. Also using a terminal app investigated the CLI with the intent of setting “Use IMU” and “Fast” mode
  4. Concerned I’d changed something else during that exploration I executed “restore”
  5. Now I don’t have live data from the UART

I’m wondering:

  1. Is all I have to do is get access to the the GUI again and go through the same setup I did at the start? AND
  2. Assuming that works, will a subsequent “save” of that setup mean that in the future all I’d need to do to recover from an incorrect CLI session would be to execute “restore”?

Ultimately I need an adaptable system that does not rely on a Windows GUI to configure in the field (this is for an outdoor consumer product).

Here’s the results of my “stat” command, I don’t know what this would have looked like before I typed “restore”.

MODE: NODE
LAST ERR CODE: 0
MAX MSG LEN: 175
JS0089{“Info”:{
“Device”:“PDOA Node”,
“Version”:“4.1.0”,
“Build”:“Jan 18 2019 12:21:24”,
“Driver”:“DW1000 Device Driver Version 04.01.01”}}
JS00A7{“System Config”:{
“ADDR”:“FFFF”,
“PANID”:“FFFF”,
“NUMSLOT”:65535,
“SLOTPER”:65535,
“SFPER”:65535,
“REPDEL”:65535,
“P2FDEL”:65535,
“RCDEL”:65535,
“SMTX”:255}}
JS0036{“Run Time”:{
“UART”:128,
“AUTO”:255,
“PCREP”:255}}
JS00A7{“Calibration”:{
“ANTTXA”:65535,
“ANTRXA”:65535,
“ANTTXB”:65535,
“ANTRXB”:65535,
“PDOAOFF”:-1,
“RNGOFF”:-1,
“ACCTHR”:65535,
“ACCSTAT”:65535,
“ACCMOVE”:65535}}
JS000D{“DList”:[ ]}
JS032A{“KList”:[{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”},
{“slot”:“FFFF”,“a64”:“FFFFFFFFFFFFFFFF”,“a16”:“FFFF”,“F”:“FFFF”,“S”:“FFFF”,“M”:“FFFF”}]}
ok

Thanks,
Jeff

Although the serial port is seen by the GUI when the Node is plugged in the Node does not see the tag. Is there a process to get everything back in the Node to the “as shipped” state?

  • Jeff

Hi Jeff,

It looks like the Tag was paired to the Node before, so you didn’t do that step (it was done by someone).
Usually we ship the Kit with both Tag and Node unpaired, so one should do it as a first step (this means just tick the box Joined in the PC GUI App)
After Restore command the Node forgot the Tag, the latter now in discovery mode.
But I can see from the STAT command output that we have an issue with RESTORE command, I’ll log this bug.
You can reflash the Node with the default image (dw_pdoa_node.hex) and add your Tag to the Node’s Known List using CMD interface - I can give the exact command later or you can find it in the docs/source code (ADDTAG command, f_add_tag_to_list function)

I flashed the node FW. At 19200-8N1 I get the following from stat. Surprisingly, the unmodified tag would only show me output when I connected at 115200-8N1 so it took me a while to get its stat. I do not see a 16 hex digit address to use with the addtag command, where do I find that?

MODE: NODE
LAST ERR CODE: 0
MAX MSG LEN: 168
JS0089{“Info”:{
“Device”:“PDOA Node”,
“Version”:“4.1.0”,
“Build”:“Oct 26 2018 11:03:34”,
“Driver”:“DW1000 Device Driver Version 04.01.01”}}
JS009A{“System Config”:{
“ADDR”:“0001”,
“PANID”:“DECA”,
“NUMSLOT”:10,
“SLOTPER”:10,
“SFPER”:100,
“REPDEL”:1000,
“P2FDEL”:3500,
“RCDEL”:1000,
“SMTX”:0}}
JS0030{“Run Time”:{
“UART”:0,
“AUTO”:1,
“PCREP”:1}}
JS00A0{“Calibration”:{
“ANTTXA”:18124,
“ANTRXA”:14829,
“ANTTXB”:18124,
“ANTRXB”:14829,
“PDOAOFF”:0,
“RNGOFF”:0,
“ACCTHR”:50,
“ACCSTAT”:5000,
“ACCMOVE”:1000}}
JS000D{“DList”:[ ]}
JS000C{“KList”:[]}
ok

MODE: TAG
LAST ERR CODE: 14
MAX MSG LEN: 142
JS0088{“Info”:{
“Device”:“PDOA Tag”,
“Version”:“4.1.0”,
“Build”:“Oct 25 2018 15:21:48”,
“Driver”:“DW1000 Device Driver Version 04.01.01”}}
JS0046{“System Config”:{
“F_NUM”:3,
“RCDEL”:1000,
“RCTO”:300,
“SMTX”:0}}
JS0030{“Run Time”:{
“UART”:1,
“AUTO”:1,
“PCREP”:1}}
JS0060{“Calibration”:{
“ANTTX”:18128,
“ANTRX”:14832,
“ACCTHR”:300,
“ACCSTAT”:200,
“ACCMOVE”:200}}
ok

Since the “restore” command filled the values published by “stat” with binary ones I’ve since:

  • Re-flashed the Node with the kit supplied .hex file and observed plausible values from the “stat” command.
  • Leapt to the conclusion that the barcoded number on the tag could be a truncated version of a 64 bit address and executed “addtag hex_barcode_from_tag 1042 2 A 1”
  • That led to an a64 list entry that was not equivalent to what I typed in, so I “deltag the_unexpected_a64” which got rid of it, and finally
  • Used “addtag” again with six zeroes prepended to the number on the barcode
  • If the following “stat” result is reasonable then I need to figure out the next steps to get ranging and PDoA working again. Before the “restore” disaster I thought that “node” and/or “auto” started the process of publishing results, but I may not be remembering that. There was a GUI step in which I remember added the tag via checkbox, but I don’t know the equivalent of that GUI checkbox on the command line.

Here’s the “stat” results from my re-flashed Node after what may be a reasonable “addtag”.

MODE: NODE
LAST ERR CODE: 0
MAX MSG LEN: 168
JS0089{“Info”:{
“Device”:“PDOA Node”,
“Version”:“4.1.0”,
“Build”:“Oct 26 2018 11:03:34”,
“Driver”:“DW1000 Device Driver Version 04.01.01”}}
JS009A{“System Config”:{
“ADDR”:“0001”,
“PANID”:“DECA”,
“NUMSLOT”:10,
“SLOTPER”:10,
“SFPER”:100,
“REPDEL”:1000,
“P2FDEL”:3500,
“RCDEL”:1000,
“SMTX”:0}}
JS0030{“Run Time”:{
“UART”:0,
“AUTO”:0,
“PCREP”:1}}
JS00A0{“Calibration”:{
“ANTTXA”:18124,
“ANTRXA”:14829,
“ANTTXB”:18124,
“ANTRXB”:14829,
“PDOAOFF”:0,
“RNGOFF”:0,
“ACCTHR”:50,
“ACCSTAT”:5000,
“ACCMOVE”:1000}}
JS001F{“DList”:[ “05A2610048E2CCAE”]}
JS0062{“KList”:[{“slot”:“0001”,“a64”:“000000183930010C”,“a16”:“1042”,“F”:“0002”,“S”:“000A”,“M”:“0001”}]}
ok
JS001D{“NewTag”:“05A2610048E2CCAE”}

Figured out the DList contains the discovered tags, so the a64 address is exposed by getdlist or stat as shown above.