dragino / TrackerD

For Dragino TrackerD, which support GPS+WiFi+BLE+TEMP+HUM+ motion
22 stars 12 forks source link

TX Power missing in documentation BCN02 #30

Open kaciker opened 3 months ago

kaciker commented 3 months ago

Hello

We're trying to deploy a trilateration project, with TrackerD, and ussing for iBeacon BCN05. We need the standrad value for TXPower in BCN05 to be precise, and we didn't see the info in all docs checked. Can you provide me please

namejinnameyuan commented 3 months ago

The beacon we sell is BCN02, and the distance should be calculated by RSSI.

namejinnameyuan commented 3 months ago

The standard value should be the cal RSSI parameter

kaciker commented 3 months ago

Hello, You're right is BCN02, my mistake. We bought more than 100 to this project. I've corrected in the title.

Txpower transmission power is the standard value that the ibeacon device transmit. The RSSI is the power that the sensor see from this sent by the ibeacon.

Is true that if all ibeacon are the same (BCN02) this txpower will be the same, other brands inform about 56 or 59 value, and we are using this value with Dragino too.

In case of use different ibeacon brands with different TXPower the result of calculation RSSI will be different depending of the TxPower in this case s mandatory to know it.

For trilateration scripts the TxPower is necessary with RSSI to calculate real position. Could be good to know the spec in BCN 02.

namejinnameyuan commented 3 months ago

The range of txpower is -19.5~+2.5. There is an APP display picture on our wiki with a txpower parameter. Add the value you need to change, and then APPLY. image

kaciker commented 3 months ago

The range of txpower is -19.5~+2.5. There is an APP display picture on our wiki with a txpower parameter. Add the value you need to change, and then APPLY. image

Thanks this is that we needed. Do you think that could be posible to Dragino D, to read this value by Blt ? I saw in the payload that is not, and th specs does not talk about that TXPower to be transmited

namejinnameyuan commented 3 months ago

The payload of the ibeacon does not have this parameter, so TrackerD cannot obtain this data. To calculate the distance, RSSI and RSSI@1 meter calibration power should be used. These two parameters, TrackerD contains

kaciker commented 3 months ago

The payload of the ibeacon does not have this parameter, so TrackerD cannot obtain this data. To calculate the distance, RSSI and RSSI@1 meter calibration power should be used. These two parameters, TrackerD contains

What is RSSI@1 ?? is this value in the Dragino tracker D reporting ?

namejinnameyuan commented 3 months ago

RSSI@1 is the absolute value of the RSSI received when the mobile phone is 1m away from the Bluetooth beacon. txPower parameter (reports the RSSI power at a distance of 1 meter).

namejinnameyuan commented 3 months ago

The value set by the beacon is C5 or C3, which you can see in the payload.

kaciker commented 3 months ago

The value set by the beacon is C5 or C3, which you can see in the payload.

In the decode for Chirpstack --> dragino/dragino-end-node-decoder/tree/main/TrackerD) /TrackerD Chirpstack V4 Decoder 1.4.5 .txt There are not any information about those values. C5, and C3, the payload only report return { BatV:batV, ALARM_status:alarm, MD:mod, LON:led_updown, UUID: uuid, MAJOR: major, MINOR: minor, RSSI:rssi, POWER:power, };

namejinnameyuan commented 2 months ago

BLE decoding uses the following method:

if(port==0x06)
{
    major =  bytes[16] << 8 | bytes[17];

    minor =  bytes[18] << 8 | bytes[19];

    power = bytes[15];

    rssi1m = bytes[21]<<24>>24;

    rssi =  bytes[23]<<24>>24;

    con = "";
    for(i = 0 ; i < 16 ; i++) {
        con += bytes[i].toString(16);
    }
    value =  con;
    var uuid = value;   
    alarm=(bytes[24] & 0x40)?"TRUE":"FALSE";//Alarm status
    batV=(((bytes[24] & 0x3f) <<8) | bytes[25])/1000;//Battery,units:V
    mod = (bytes[26] & 0xC0)>>6;
    led_updown=(bytes[26] & 0x20)?"ON":"OFF";//LED status for position,uplink and downlink
    if(bytes[26] & 0xC0==0x40) 
    {
        hum=(bytes[27]<<8 | bytes[28])/10;//hum,units: °
        tem=(bytes[29]<<8 | bytes[30])/10; //tem,units: °
    }
    return {
      BatV:batV,
      ALARM_status:alarm,
      MD:mod,
      LON:led_updown,
      UUID: uuid,
      MAJOR: major,
      MINOR: minor,
      RSSI:rssi,
      RSSI1M:rssi1m,
      POWER:power,
      };            
}       
kaciker commented 2 months ago

BLE decoding uses the following method:

if(port==0x06)
{
  major =  bytes[16] << 8 | bytes[17];

  minor =  bytes[18] << 8 | bytes[19];

  power = bytes[15];

  rssi1m = bytes[21]<<24>>24;

  rssi =  bytes[23]<<24>>24;

  con = "";
  for(i = 0 ; i < 16 ; i++) {
      con += bytes[i].toString(16);
  }
  value =  con;
  var uuid = value;   
  alarm=(bytes[24] & 0x40)?"TRUE":"FALSE";//Alarm status
  batV=(((bytes[24] & 0x3f) <<8) | bytes[25])/1000;//Battery,units:V
  mod = (bytes[26] & 0xC0)>>6;
  led_updown=(bytes[26] & 0x20)?"ON":"OFF";//LED status for position,uplink and downlink
  if(bytes[26] & 0xC0==0x40) 
  {
      hum=(bytes[27]<<8 | bytes[28])/10;//hum,units: °
      tem=(bytes[29]<<8 | bytes[30])/10; //tem,units: °
  }
  return {
    BatV:batV,
    ALARM_status:alarm,
    MD:mod,
    LON:led_updown,
    UUID: uuid,
    MAJOR: major,
    MINOR: minor,
    RSSI:rssi,
    RSSI1M:rssi1m,
    POWER:power,
    };            
}     

TrackerD TTN Decoder 1.4.9b.txt

Super, I got it.

I modified the decode for Chirp to get this new data in payload

image