Remote Diagnostics feedback

Hi all,

A few weeks ago, we released Remote Diagnostics. I’m curious to hear feedback on this new feature.

If you have used it, how is it going? Is it providing value to you and your IoT projects?

If you haven’t used it, why not?

Curiously yours,

:slight_smile: Jeff

3 Likes

@jeiden I have 3 photons in the field working 0.8.0 and the diagnostics are a great feature, helps to troubleshoot my products, especially those far from home. One thing was mentioned in another thread about the disconnect events, is there a way to tell why a device disconnected? I have one in particular, it has a better network signal than the other two, but shows many disconnect events per day.

@Mjones thank you for the feedback! Glad to hear that you’re getting use out of this. I can see why you would want more granular detail on why a device is disconnecting.

If you look closely at the event coming back from the device, There’s actually both signal strength AND quality. Currently, we are only showing strength in the Console as we felt it’s a better overall summary of the health of the signal. But the combination of both might be helpful to you.

The challenge to our team was around how to generalize these values given that Particle devices use different communication networking technologies. For both strength and quality, we actually send both a raw value (measured with different units based on the network type being used) and a normalized value from 1-100% that interprets the raw value.

Here’s some additional information on how these vitals are collected that might be useful to you (brace yourself, it’s about to get technical!):

Signal strength
Signal strength measure for the current wireless network in % (0-100). Devices that do not support a wireless network will not provide this value.

Signal strength value
Signal strength raw value. This value is specific to the access technology in use:

Signal quality
Signal quality measure for the current wireless in % (0-100). Devices that do not support a wireless network will not provide this value.

Signal quality value
Signal quality raw value. This value is specific to the access technology in use:

  • WIFI: SNR (dB) (https://en.wikipedia.org/wiki/Signal-to-noise_ratio)
  • GSM: BER (%) (https://en.wikipedia.org/wiki/Bit_error_rate)
  • EDGE: log10(mean(BEP)) (bit error probability) (https://en.wikipedia.org/wiki/Bit_error_rate)
  • UMTS/UTRAN/WCDMA/3G: Ec/Io (dB) (It is the ratio of Received power of the carrier to the all over Noise. It is used to measure quality of Pilot Channel)
  • LTE: RSRQ (dB) (RSRQ – Reference Signal Received Quality: Quality considering also RSSI and the number of used Resource Blocks (N) RSRQ = (N * RSRP) / RSSI measured over the same bandwidth. RSRQ is a C/I type of measurement and it indicates the quality of the received reference signal. The RSRQ measurement provides additional information when RSRP is not sufficient to make a reliable handover or cell reselection decision. )

Look forward to others’ thoughts!

2 Likes

@jeiden Thanks for reaching out to ask about the 0.8.0 diagnostics feature. Where can I find an explanation of the fields/columns and their values in the device diagnostic report/download? Like everyone else I am noticing communication drop-outs - wifi and cloud. I think I have addressed the application code issues - the heap memory is stable, there is no blocking code, yet still some devices struggle - some sites I have noticed WiFi.ready() (checked every 10 seconds) to return false. Another question, the colour coding on the device vitals - sometimes the disconnections is red and later with the same number green - is there an acceptable number of cloud disconnects per hour?

I had a reply from Dave in Particle Support. He provided this link https://docs.particle.io/reference/api/#device-vitals-event.

I have then had a go at completing the descriptions of the fields in the report. Some values are not described.

Field Description/Values
service.cloud.publish.sent The number of messages sent since the current session started.
service.cloud.uptime The time in seconds since the current cloud session started.
service.coap.round_trip The amount of time it takes for the device to successfully respond to a CoAP message sent by the Particle Cloud in milliseconds.
service.device.status ok or ?
device.cloud.coap.unack ?
device.cloud.publish.rate_limited Particle devices are allowed to publish an average of 1 event per second in application firmware. Publishing at a rate higher than this will result in rate limiting of events.
device.cloud.disconnects The number of times the device disconnected unexpectedly from the Particle Cloud since its last reset.
device.cloud.connection.disconnect The number of times the device disconnected unexpectedly from the Particle Cloud since the current session started.
device.cloud.connection.attempts The number of times the device attempted to connect to the Particle Cloud before successful?
device.cloud.connection.error Value ?
device.cloud.connection.status Value ?
device.network.signal.strengthv Network (cellular/WiFi) signal strength raw.
device.network.signal.at Value ?
device.network.signal.qualityv Network (cellular/WiFi) signal quality raw.
device.network.signal.quality Network (cellular/WiFi) signal quality %.
device.network.signal.strength Network (cellular/WiFi) signal strength %.
device.network.signal.rssi Network (cellular/WiFi) signal strength dB
device.network.connection.disconnect The number of times the device disconnected unexpectedly from the network since the current session started.
device.network.connection.attempts The number of times the device attempted to connect to the network before successful?
device.network.connection.disconnects The number of times the device disconnected unexpectedly from the network since its last reset.
device.network.connection.error Value?
device.network.connection.status Value? 1=, 2=
device.system.memory.used The amount of memory used by the device, combining the heap and the user application’s static RAM in bytes.
device.system.memory.total The total amount of RAM memory available on the device in bytes.
device.system.uptime Time in seconds since last reset.

3 Likes

The diagnostics don’t show signal information for the Boron LTE. Im trying to diagnose what may be signal strength issues, this data would be useful.

2 Likes

Arrived a bit late to the party, but I wanted to say thanks to @armor for the field descriptions.
In the meantime, I'm wondering if someone was able to figure out the explanation for the fields with a "?" .

Sorry I can’t help more - I didn’t get any further information back from Particle. You could try a support ticket.

Is there a table of errors for “ device.network.connection.error ”. I found this (device-os/wwd_constants.h at develop · particle-iot/device-os · GitHub), but we have other numbers in there at are not referenced.
What is the interval that causes the devices to report back to the particle server.
Under the column “ device.network.connection.disconnects ” what is the variables that cause this to increase. Does it always increase by one increment or can it do more and if yes why.
Under the column “ device.network.connection.status ” , how can it show connected if it has in creased disconnected?
Under the column “ device.network.connection.attempts” what is the variables that cause this to increase. Does it always increase by one increment or can it do more and if yes why.
Is there a reference or table for all the reported values back for device.network.connection.disconnect_reason
Same as the above questions regarding these two device.cloud.connection.error” & “device.cloud.connection.attempts”
What defines system uptime device.system.uptime and how can it increase if there is a network disconnect?

1 Like