DSGW-200 Z-Axis (null or inaccurate)

Hello Community,

I have two (2) DSGW-200 locators, and one (1) DSBC-062 Beacon and Tag for indoor tracking via Bluetooth AoA. Currently, I have a square sample set up for ~2.6m x 2.6m x 2.5m (length x width x height) give or take. I am trying to get consistent & accurate readings from X, Y, and Z in a 3D environment. Unfortunately, Z responds as “null”, but when the DSBC-062 tag is placed in certain places, it responds with a number value; which starts at a low number, then increases exponentially high.

Here are my thoughts for solutions:

  1. Add a third locator
  2. Increase height of locator
  3. Spread out the locators so there is more distance between each other

I’ve watched several of the Dusun YouTube video guides on an implementation, but to no avail. I did see, however, that Z-axis readings were consistent throughout the video. Before I engage in any of these solutions, I wanted to ask if there are any known solutions from Dusun themselves, or other members of the community.
Do you have any tips on getting better Z-axis readings?

Any help received is fully appreciated!

Below I will attach my current position config for both locators:
{
“version”:1,
“id”:“multilocator-test_room”,
“estimationModeLocation”:“SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_FAST_RESPONSE”,
“validationModeLocation”:“SL_RTL_LOC_MEASUREMENT_VALIDATION_MINIMUM”,
“estimationIntervalSec”:0.02,
“locationFiltering”:true,
“locationFilteringWeight”:0.1,
“numberOfSequenceIds”:6,
“maximumSequenceIdDiffs”:20,
“locators”:[
{
“id”:“ble-pd-4C5BB3112B7D”,
“config”:{
“aoxMode”:“SL_RTL_AOX_MODE_REAL_TIME_FAST_RESPONSE”,
“antennaMode”:“SL_RTL_AOX_ARRAY_TYPE_4x4_DP_URA”,
“antennaArray”:[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
“angleFiltering”:true,
“angleFilteringWeight”:0.6,
“angleCorrectionTimeout”:5,
“angleCorrectionDelay”:3,
“cteMode”:“SILABS”,
“cteSamplingInterval”:3,
“cteLength”:160,
“slotDuration”:1,
“reportMode”:“ANGLE”
},
“elevationMask”:{
“min”:0.0,
“max”:10.0
},
“coordinate”:{
“x”:0.0,
“y”:2.6,
“z”:2.5
},
“orientation”:{
“x”:0.0,
“y”:0.0,
“z”:0.0
}
},
{
“id”:“ble-pd-4C5BB31129AD”,
“config”:{
“aoxMode”:“SL_RTL_AOX_MODE_REAL_TIME_FAST_RESPONSE”,
“antennaMode”:“SL_RTL_AOX_ARRAY_TYPE_4x4_DP_URA”,
“antennaArray”:[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
“angleFiltering”:true,
“angleFilteringWeight”:0.6,
“angleCorrectionTimeout”:5,
“angleCorrectionDelay”:3,
“cteMode”:“SILABS”,
“cteSamplingInterval”:3,
“cteLength”:160,
“slotDuration”:1,
“reportMode”:“ANGLE”
},
“elevationMask”:{
“min”:0.0,
“max”:10.0
},
“coordinate”:{
“x”:2.6,
“y”:0.0,
“z”:2.5
},
“orientation”:{
“x”:0.0,
“y”:0.0,
“z”:0.0
}
}
]
}

Update:

  • Z coordinate value still returns null most of the time
  • When Z coordinate value returns a number, it affects X and Y
    • Example: when Z returns a number, X and Y go from (3,1) to (7,5)
  • Without Z value, X & Y output correct values for arbitrary coordinate system

Not sure if anyone has looked at this post yet, but I’m suspecting the solution is adding a third locator, and upgrading our set up to be more complex. Does anyone have any thoughts or ideas?

hi,Thank you for reaching out to us. Regarding your issue with the DSGW-200, please ensure that the actual installation matches the configuration in your configuration file.

Secondly, the output conditions for the Z-axis are indeed very stringent. To obtain a relatively accurate Z-axis output, the tag must be in the high-precision overlapping coverage area of at least two base stations. Additionally, as the tag height increases, the range capable of outputting the Z-axis will decrease.

Before proceeding, I would like to understand your use case better. Is it necessary for you to have Z-axis data? If you could provide more details about your application scenario, I would be happy to think of solutions tailored to your needs.

Please let me know, and I will be glad to assist you further.

Thank you for the reply =).

To give more details, I am working in a ~3x3x3 (meters) or 10x10x10 (feet) cube. My sample also has a coordinate system of a 5x5 grid, so one locator is at (0,0) and the other is at (5,5). Two locators are pointed to the ground on two diagonal corners for accurate coordinate readings. I will attach a rough schematic of my sample.

Yes, Z-axis data is very necessary for my project. It seems that when the tag is placed in certain areas of the sample, I receive Z-axis data. I believe this would be in the high-precision overlapping coverage area. I have gone through all the documentation and calculation behind the coverage area, and I believe that the sample should be okay, maybe a little bigger. I think increase height will increase the coverage area, giving me accurate Z-axis data, with extra data from a third locator.

Please let me know any ideas you have, I would love to figure this out!


Hello, let me explain. As shown, the orientation of the antenna feed point is fixed. So as the height increases, the data of the Z-axis becomes more and more problematic. If you really need the Z-axis data, would you consider shortening the deployment distance between the base stations?

Hello Medivh, if you’re still active I am running into a new problem.

I found a third locator that I lost in my inventory a while ago. Z-Axis data is working wonderfully now, except there is one dead zone where Z-axis data returns as null. Right now my cube sample area has three (3) locators along my area, one on each corner but one is empty.

Here are my problems I can’t answer:

  • The dead zone where Z-axis is returning null is actually directly under the new locator (4,4) in my coordinate system.
  • In my coordinate system (4x4 grid), I have locators placed at (1,4), (4,4), (4,1). The only one that has no locator and is empty is (1,1). When placing my beacon & tag at (1,1) where there is no locator, it results as (4,4). I can’t seem to figure out why.

Below is a rough typed schematic of my cube from above:
(9AD) (B8C)
-----------------------------------------
(1,4) (4,4)
| |
| |
| |
| |
(0,0) (4,1)
------------------------------------------
(empty) (B7D)

If you have any suggestions I would greatly appreciate them.

Edit: I also tried shortening the distance between locators, it didn’t change the data much. I have done all the calculations of distance between two locators (1.5H) and the coverage area (2H), if they are correct, then my sample cube should be fine.

Bumping this thread, I am still having problems. Z-axis data is no longer a problem, but now I am having a difficult time with the accuracy of X, Y, and Z. I have changed my sample size to a triangle now, with a distance between all locators being ~4 meters. Now I have a 4x4 meter square grid with all the locators sitting flat on the wall. In my previous sample square and my new one, when I placed the beacon down there would be a lot of fluctuation of the X, Y, and Z data sets.

For example, in my grid I would place it in the middle (2,2) only for the MQTT results and chart fluctuation up to 3 (almost 4), and as low as 1. This happened to both X and Y independently. Is there anyway I could fix this?

Attached below will be my configurations for the locators, they are enabled to receive high accurate results from MQTT:
{
“version”:1,
“id”:“multilocator-test_room”,
“estimationModeLocation”:“SL_RTL_LOC_ESTIMATION_MODE_THREE_DIM_HIGH_ACCURACY”,
“validationModeLocation”:“SL_RTL_LOC_MEASUREMENT_VALIDATION_FULL”,
“estimationIntervalSec”:0.02,
“locationFiltering”:true,
“locationFilteringWeight”:0.2,
“numberOfSequenceIds”:6,
“maximumSequenceIdDiffs”:20,
“locators”:[
{
“id”:“ble-pd-4C5BB3112B7D”,
“config”:{
“aoxMode”:“SL_RTL_AOX_MODE_REAL_TIME_HIGH_ACCURACY”,
“antennaMode”:“SL_RTL_AOX_ARRAY_TYPE_4x4_DP_URA”,
“antennaArray”:[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
“angleFiltering”:true,
“angleFilteringWeight”:1.0,
“angleCorrectionTimeout”:5,
“angleCorrectionDelay”:3,
“cteMode”:“SILABS”,
“cteSamplingInterval”:3,
“cteLength”:20,
“slotDuration”:1,
“reportMode”:“ANGLE”
},
“coordinate”:{
“x”:2.5,
“y”:4.0,
“z”:2.5
},
“orientation”:{
“x”:0.0,
“y”:90.0,
“z”:0.0
}
},
{
“id”:“ble-pd-4C5BB31129AD”,
“config”:{
“aoxMode”:“SL_RTL_AOX_MODE_REAL_TIME_HIGH_ACCURACY”,
“antennaMode”:“SL_RTL_AOX_ARRAY_TYPE_4x4_DP_URA”,
“antennaArray”:[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
“angleFiltering”:true,
“angleFilteringWeight”:1.0,
“angleCorrectionTimeout”:5,
“angleCorrectionDelay”:3,
“cteMode”:“SILABS”,
“cteSamplingInterval”:3,
“cteLength”:20,
“slotDuration”:1,
“reportMode”:“ANGLE”
},
“coordinate”:{
“x”:4.0,
“y”:1.0,
“z”:2.5
},
“orientation”:{
“x”:0.0,
“y”:90.0,
“z”:0.0
}
},
{
“id”:“ble-pd-4C5BB3112B8C”,
“config”:{
“aoxMode”:“SL_RTL_AOX_MODE_REAL_TIME_HIGH_ACCURACY”,
“antennaMode”:“SL_RTL_AOX_ARRAY_TYPE_4x4_DP_URA”,
“antennaArray”:[
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15
],
“angleFiltering”:true,
“angleFilteringWeight”:1.0,
“angleCorrectionTimeout”:5,
“angleCorrectionDelay”:3,
“cteMode”:“SILABS”,
“cteSamplingInterval”:3,
“cteLength”:20,
“slotDuration”:1,
“reportMode”:“ANGLE”
},
“coordinate”:{
“x”:1.0,
“y”:1.0,
“z”:2.5
},
“orientation”:{
“x”:0.0,
“y”:90.0,
“z”:0.0
}
}
]
}