Cannot connect to sensor using Zigmo/router

Hi,
I have this product right now: https://ncd.io/long-range-iot-wireless-thermocouple-sensor-product-manual/
I have been following the Getting Started as well as Troubleshooting to receive data off the sensor.

I’m able to connect to the serial-USB port connected to my router/Zigmo using XCTU and Serial and Putty. However, I didn’t see any data being transmitted. So then I’m using XCTU scan to see if the router is connected to the Thermocouple Temperature sensor which it wasn’t.

I’ve loaded this configuration file over XCTU onto the Zigmo.

I’ve reset the sensor (holding RST and holding RST/CFG).Then I check on XCTU scan and the router is still not connected to the sensor.

Any advice on what to do to get these connected and sending data to the router?

Best,
Ida

Hi Ida,
after connecting the Zigmo router hit the sensor reset button and it will send a run message followed by sensor data. You can open the serial port in the xctu and see this incoming data as well.
Before shipping we pair the sensor and modem. It should be working out of the box.

Here are few things you can check

  1. Power jumper is enable
  2. Antennas are connected to sensor and the modem
  3. make sure you loaded the PC xbee profile into Zigmo Xbee

Sensor Xbee wont show up during scan because its sleeping.

Thanks

Hi Bhaskar,

I enabled the power jumper. Confirm ~3 V on the Zigbee chip in the sensor. The antennas seem to connected correctly to both the sensor and the modem. I’ve loaded the PC XBEE profile into the Zigmo XBEE.37%20PM

Does that seem correct?

and here is the serial console.


I sent this read delay command: 7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 1600 0004 E3 based on https://ncd.io/long-range-iot-wireless-thermocouple-sensor-product-manual/
But don’t get an value received only transmit LED i see flash when I send the packet.

How can I increase period of transmitting data from sensor to router?
Thanks!

To read the delay you will need to put the sensor in configuration mode.
Before trying the cfg mode i will recommend testing the run mode.
You can use alpha station to test the run mode and also read delay and other settings.

Using alpha station you can change the delay.

If you want to use the xctu to change the delay you will need to change the zigmo xbee pan id to &BCD. This pan id is reserved for configuration.
Once you are done with configuration you will need to set the PAN id to 7FFF or the pen id you saved in the sensor. The default sensor pan id s 7FFF.

How can I convert these received values to useful data?

Ida

for run mode checkout figure 12 and table 3. it explain what all bytes mean and you can convert them.

for configuration mode checkout figure 15 and table 4,5,6.
All other commands and response related info can be found in the product manual as well.

Hi Bhaskar,
Thank you for that information. I am able to read the sensor data. In configuration mode I’m not sure I am interpreting the data correctly:

How would I interpret a read power response?
My data bytes = 04 would that be a decimal value 0.4?
Also is it possible to change from run mode to config mode and back by writing 7FFF/7BCD to the pan ID while I am reading the serial?

I also have the NCD 4-20 mA current receiver. I only see this product manual: https://ncd.io/iot-wireless-analog-to-digital-converter-product-manual/
Is there something more specific to the current receiver?
I don’t know if I should use it to interpret the data…so two ADC values for a current receiver?
00 08 = 8 . ADC 1
00 00 = 0 = ADC 2

Thanks!

Hi,
4 means the power is set to highest.
Yes, you can set the pan id back to 7FFF. our software does it automatically. Please refer xbee s3b datasheet for more info.

the adc value change as you change the current input. You can set the current input to 4mA and will see the ADC value will change accordingly.
ADC2 is not applicable in this case. it will be zero always.

So for a 4.5 mA I am seeing value 00 CC on the sensor reading for ADC 1 but CC = 204?

Ida

This formula can be used to convert raw adc value into 4-20mA.

mA = raw_adc * 0.022

Thanks I also just figured it out by using two different resistors / currents to figure out the scale.
It’s not in the product manual?

Also in run mode, I am clicking reset button and then it publishes the sensor data once. I know it says periodically but how do I change this period? Also is it possible to send a request to retrieve the sensor data?

this info is on product page.

there is a change delay and node id command, which can be found in product manual as well or our software can be used to change all these parameters as well.

Oh thanks I see that conversion on the website. Somehow I didn’t see it earlier/slipped my eye.

Okay so I am trying to read the PANID to make sure it is 7BCD but I don’t seem to get the correct value back. Does it matter if the sensor sends back values for the headers and length that don’t match up with the example ones in the product manual?

I sent this to read delay command: 7E 00 13 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 15 00 00 0E E5 to my current receiver sensor (sensor type is 0 x 0E I believe)
and received 7E 00 19 90 00 13 A2 00 41 8E 9E 22 FF FE C2 7F 00 01 03 FF 26 00 04 00 00 00 0A CA EC so my r.option is C2 instead of 0x00 and length is 00 19 instead of 00 20? Also I don’t think I have enough data where I need 3 bytes of data and 6 bytes of reserved?

Ida

  1. open xctu serial port
  2. set your modem PAN ID to 0x7BCD
  3. Put the sensor in config mode
  4. Once sensor goes in config mode it will send a message and will let you know that its in config mode
  5. This message will contain sensor MAC address
  6. Send read delay command using xctu
    the correct command will be
    7E00 1310 0000 0000 0000 00FF FFFF FE00 00F7 1500 000E DA

A. Your command did not respond because the checksum value was wrong
B. When sensor goes into config mode it sends the message with mac address and this mac address can be used to target that particular sensor during configuration.

I will strongly recommend using ncd.io software to test and build up the commands. the UI shows the Tx and RX data. which can be used to build any software.

I am also working on a new doc and will list down all the commands and their response.


You will be bale to copy paste directly into your software.

Thanks for that new doc!

I’m having trouble getting DA for the checksum for the one you sent:
0FF - (lower eight of 10+FF+FF +FF+FE+F7+15+0E)?

Ida

10+FF+FF +FF+FE+F7+15+0E == 525 in hex and 1317 in decimal
Lower 8 bit of this number will be 25( in hex) and 37 ( in decimal)
checksum = 0xFF - 0x25 = DA

Okay so I’ve sent this 7E 00 17 10 00 00 00 00 00 00 00 FF FF FF FE 00 00 F7 02 00 00 00 01 00 00 1E DC to change the delay to 30 seconds. I got this back: 7E 00 1C 90 00 13 A2 00 41 8E 9E 29 FF FE C1 7C 01 02 00 0E 00 00 FF 00 00 00 00 00 00 00 00 DA so there was no error.

How can I start receiving data from the sensors again?
Also is it necessary to do the whole reset/cfg buttons whenever I want to enter configuration mode or will it be sufficient to just write 0x7BCD to the PAN ID?

  1. change the pc receiver PAN id back to 0x7FFF
  2. hit reset on the sensor and it will start sending data.

Yes, its necessary to do the rest/cfg thing if you want the sensor go int cfg mode. cfg is something which is done only once.
When sensor is in cfg mode it consumes a lot of power, we dont recommend staying in cfg mode for too long.

Okay I just wasn’t sure if the reset would cause the delay value to be set back to 10 minutes. Thanks for your help!

Are there any limits on how fast we can change the delay period to?