How to get location data into MQTT broker

I posted and extensive question about this topic with screenshots, logs, and what not…but got no responses…So here I am trying it again - may be my explanation was not sufficient or maybe too specific…

I have 4 Anchors + 1 Tag + 1 Listener + R3B Gateway connected to with 2x13 Header to the Listener.
I can use Shell from the R3B to the Listener with TeraTerm and see coordinates coming by using ‘les’ command.

My understanding of all the documentation that I read, especially in Gateway Quick Deployment Guide that it is possible to get this location data to MQTT Broker that is running on the Listener device (Listener is the device that is set as Tag in a Passive mode). I also understood that Listener and Bridge Node are the same - but I am not sure in this anymore by reading all possible posts here…Please correct me and explain…

At any rate, I configure /etc/dwm1001/dwm1001.config file with PAN ID leaving the rest unchanged.
I also did not change anything in /etc/dwm1001/dwm1001-proxy.config file.

At this point I thought that after I restart RPi and the Listener I will automatically get data in MQTT Broker. So I downloaded and installed MQTT.fx on my Win10 laptop as directed by the documentation, set the IP Address of the Proxy Server (which is IP of the RPi ?) with port 1883 and connected to the broker ok. BTW it is mosquitto broker and it shows quite a lot of traffic…


Then, in Subscribe tab I clicked on Scan button which gave me 1 topic that looked strange from the get go:
dwm/gateway/b827ebe61adb/uplink
When I subscribed to it - all it shows is one message:
{networkId:65535,“ipAddress”:[“192.168.1.128”]}
First thing that I don’t understand is why networkID is not the one in set in config file (0x47BE). Where is it coming from and what is this strange device that shows in the Topic?
Is this the reason that I do not see any messages even if I subscribe to dwm/# ?

At the same time I am also running the Android app installed on the tablet and it shows me the data on the grid. Is that something that prevent display of the messages on MQTT.fx ?
Do I miss any configuration steps? (although I went “by the book”)

EDIT:
Here are the logs from the daemon and proxy logs on the listener. Daemon has a single line and seems ok. But proxy quits after 10 seconds.
Any ideas?

DWM1001 Daemon log
Sat 18 May 06:33:07 UTC 2019
Starting daemon dwm-daemon with command ‘/usr/local/bin/dwm-daemon’ and options ‘-c /etc/dwm1001/dwm1001.config -l /var/log/dwm-daemon.log’…

DWM1001 Proxy log:
[Sat May 18 06:33:08 2019 INF] main: waiting for incoming connections…
[Sat May 18 06:33:08 2019 ERR] service: connect to MQTT server (err=-4)
[Sat May 18 07:36:30 2019 INF] client: connected 192.168.1.106:50637 <-> 127.0.0.1:1883
[Sat May 18 07:36:40 2019 INF] client: connected 192.168.1.106:50638 <-> 127.0.0.1:1883
[Sat May 18 07:37:30 2019 INF] client: close 192.168.1.106:50637 <-> 127.0.0.1:1883
[Sat May 18 07:37:30 2019 INF] client: terminate
[Sat May 18 07:38:02 2019 INF] client: close 192.168.1.106:50638 <-> 127.0.0.1:1883
[Sat May 18 07:38:02 2019 INF] client: terminate
[Sat May 18 07:40:46 2019 INF] client: connected 192.168.1.106:50652 <-> 127.0.0.1:1883
[Sat May 18 07:41:00 2019 INF] client: close 192.168.1.106:50652 <-> 127.0.0.1:1883
[Sat May 18 07:41:00 2019 INF] client: terminate

2 Likes

Look at page 15 in the documentation “PANS: Gateway Quick Deployment Guide”.
Your bridge cant be a Tag in passive mode, it has to be a bridge node.

I log with TeraTerm and issue
nis ox47BE
and get “Command not found”

help gives me that:

nmb command is also not found…

when I issue si command I can see that the device has already correct PAN ID 0x47BE


and still I am not sure how to switch it to Bridge Node

Your Firmware is on PANS Release 1.
Look at page 9 in the documentation “PANS: Gateway Quick Deployment Guide”.
You have to update your Firmware to PANS 2 on every Anchor and Tag I assume.

In the “DWM1001, DW10001-DEV and MDEK1001 Documents, Source Code, Android Application & Firmware Image ” package, where your RPi image is, is the PANS 2 Firmware as well.

The Android app was showing me Operating firmware: FW2 on all devices so I assumed it was automatically updated…BAD ASSUMPTION…
and since I have no experience with firmware tools I am about to dive into something unknown.
Anyway, thank you a lot for your insight - I was breaking my head against the wall - tried everything possible I could think about…

How did you know it is Release PAN 1

After updating to PANS 2 of all the devices I am unable to shell into device attached to RPi neither with TeraTerm (with 2 Return clicks), not with
sudo minicom -D /dev/ttyS0 115200

real disaster…

Are you able to acces the other devices?

Just checked with other device - same thing.
I open TeraTerm set the port to COM3 with 115200
Then select File->New Connection - the COM4 port is not in the combo box list…
I close TeraTerm - then disconnect and reconnect USB cable and start TeraTerm - same thing.
BTW TeraTerm on startup immediately pops up New Connection dialog that has COM4 in the combobox list but if I dismiss it and go to Setup->Serial Port - the port is not set correctly…

Also tried with Putty over serial by setting the required COM4 (J-LINK) with 115200 -
Getting “Unable to open COM4 port”.
Something is definitely wrong…
I used J-LINK Lite 6.22g (like in Gateway Deployment Guide to flash PANS 2 to devices and everything seemed correct and without errors…

None of my devices are discoverable now by Android app…

Apparently I flashed the devices with the wrong selection of nRF5…
So now I was able to access the device attached to RPi with TeraTerm.
nis ox47BE command successful.
also nmb managed to set the device to bn (Bridge)

So now I have devices with correct firmware with PANS2 and I can connect to them with TeraTerm.
I set the device connected to RPi as a Bridge:

image
I also verified that mosquitto MQTT Broker 1.5.1 is running on the gateway - specifically on RPi.

I can open another command line on RPi and publish a message on a topic. I can see the message in a custom MQTT client I wrote in C# on Win10 PC by subscribing to that topic. I can also see the messages in MQTT.fx running on my Win10 laptop.

HOWEVER, I do not see position messages coming from the Tag through the Bridge Node (I can see the Anchors and Tag in Android app but not in Web Manager…). Web Manager displays no devices and displays MQTT connection error messages in the left bottom corner…
BTW, the ‘les’ commands displays noting - no positions coming to Bridge Node (device connected to RPi)
Any ideas how to find what’s going on?

So now I set the bridge to Passive mode and les produces positions in TeraTerm…but nothing in MQTT.fx and other clients…

In my case I simply put the dev-board on Raspi with 2x13 header without soldering and I believe all my weird problems were originated from this unstable connection.
I still did not solder the pins - have no equipment for that and no experience - so I just connected Raspi with USB cable directly to dev-board mini-USB and now I dont have to play with TeraTerm and other terminals - I eun Python script that issues the commands to serial port and reads the data; then I pick the data up with MQTT.fx and now with my own MQTT client that I keep developing…

I understand that this is a old thread, but did you ever come to a solution that allowed for serial connection with the bridge node? In my case, I have made 100% certain my solders are solid, but I keep getting MQTT connecting/ loading and no nodes appear in the web-manager.

Hi @securigy2
I have 3 Anchors+ 1 Initiator + 1 Tag + 1 Listener + R3B Gateway connected to with 2x13 Header to the Listener. Here the listener is the bridge node. So how To get data on the bridge node. And then how to send data bridge node to MQTT broker to MQTT.fx.
Can you answer these queries? It’s very helpful to me for my project.

First of all: how is your header connection to R3B? If it is not soldered then it is a major cause of all kind of errors… I got rid of it and forgot about the serial connection… Instead I wrote Python scripts running on R3B that deliver data to online MQTT broker of my choice.
BTW, The data gets to the bridge node automatically - you do not have to do anything to deliver data to the bridge node. You do need to issue couple of command-line commands in R3B in order to read the data from the bridge node…
So my Python script issue the above commands and then send data to online MQTT. Then I wrote a MQTT client (more than just a client - see http://www.gravitystorms.com) that fetches the data in ‘real time’ from MQTT broker. This way you don’t have to sit with the laptop in some warehouse… but is free to be anywhere in the world to read the data…