Giter VIP home page Giter VIP logo

uwb-apps's People

Contributors

anantharaman-93 avatar ncasaril avatar pkettle avatar rmadhuraj avatar tnirupama avatar ybdecawave avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

uwb-apps's Issues

twr_nranges_tdma example does not work when changing the preamble or/and data rate

Board used: DW1001

After working for a while in a real environment, I wanted to higher the preamble and lower the data rate for longer distances and be able to extend the NLOS situation (as stated in the application notes from DecaWave).

After doing so, I found out that when I set the preamble/data rate to a different value results in "Receive Wait Timeout" obtained from the sys_status at the dw1000_mac.c.

I'm changing the datarate and preamble by establishing at the nrng_tag and nrng_master_node as follows:

UWBCFG_DEF_DATARATE: ""850k""
UWBCFG_DEF_TX_PREAM_LEN: ""1024""

I've tried to change TWR_SS_NRNG_RX/TX_TIMEOUT, NRNG_RX/TX_TIMEOUT, TWR_SS_TX/RX_TIMEOUT, TDMA_SANITY_INTERVAL, OS_LATENCY, UWB_CFG_DEF_SFD_TO.

I've also tried changing the PHR to Standard and SFD_TYPE to 0.

It's weird because I'm testing the same parameters in another evaluation board that contains the DW1000 and they communicate. It seems as it was an application level problem resulting in a rx_timeout event that I'm not correctly understanding. Also, I've seen that in certain configurations I see the tag trying to TWR_SS in the Wireshark but the anchor does not respond.

Have you got working the TWR_NRANGES_TDMA example with other data rates / preamble lengths? If so, could you share the syscfg.yml of the nrng_tag and nrng_master_node just in case I'm missing something?

Thanks!

@ncasaril some help into this would be amazing :) sorry for tagging as I know it may be annoying

Enabling CCP_ROLE_RELAY in twr_nranges application

After some testing with the default application, we've seen that everything is ok.

But, due to one of our use cases, we found that master is not able to communicate with a considerable amount of anchors when there is a hard NLOS situation (therefore, anchors are unusable due to lack of sync signal). After reviewing the source code, we found there is an option to activate the CCP_RELAY_NODE in the anchors firmware to extend the synchronization.

We found that yellow light / blue light are properly blinking when the RELAY is activated in those anchors, but we can not see any ranges on the tag with anchors when the master is not in tag's range.

What parameters are we missing to configure? We found that rtdoa_node is also using RELAY but we are not sure which parameters are relevant.

LOS, VRSSI and more insights statistics on NRNG_TAG/NRNG_NODE example

Hi!

I've been testing with the NRNG_TAG / NRNG_NODE examples and everything is working really good but I would need to add
statistics to debug and mitigate in case a Hard-NLOS is found. I've tried to modify the code in many ways together with amend paramers but can not find the way to get them correctly.

I've tried to amend this parameters:

NRNG_VERBOSE: 2
TWR_DS_EXT_NRNG_ENABLED: 1
RNG_VERBOSE: 2
RNG_STATS: 2
NRNG_STATS: 2
UWBCFG_DEF_RX_DIAG_EN: '"1"'

But seems like none of them work. I've also debugged and found out that all statistic values are always set to 0 so it seems like these amend parameters do not work properly.

DWM1001-dev board enquiry

Hi there,

I have a dwm1001-dev board and I wanted to ask if the code examples in this repo can support dwm1001-dev board

Thanks in advance

How about DW3000

Hi sir

I'm new to this field and i want to make dw3000 work as an anchor and tag ..??
please can you suggest me how can i make them work..??

Hoping for your help :-(

Building DWM1001 bootloader fails

I'm attempting to build the bootloader for DWM1001 as shown in 5. in the tutorial under README.md, but I'm running into the following error.

system specs:
uwb-apps: master
mynewt: 1.8.0
gcc: 10.3.0

Compiling repos/mcuboot/boot/mynewt/src/main.c
Error: repos/mcuboot/boot/mynewt/src/main.c:
In function 'main': repos/mcuboot/boot/mynewt/src/main.c:254:5:
error: implicit declaration of function 'hal_bsp_deinit'; did you mean 'hal_bsp_init'? [-Werror=implicit-function-declaration]
254 | hal_bsp_deinit();
| ^~~~~~~~~~~~~~
| hal_bsp_init
cc1: all warnings being treated as errors

Sleep during twr_nranges_tdma

i am trying to add sleep just like in the example of tdoa_tag
/* Enter sleep */
uwb_phy_forcetrxoff(udev);
uwb_phy_rx_reset(udev);
uwb_sleep_config(udev);
uwb_enter_sleep(udev);

after nrng_complete_cb(struct dpl_event *ev) is called. The code is able get the pan slot_id and compute the distance only for once, after that it shows
slot_timer_cb_....start_tx_error

please help me resolve this issue.
Thanks

twr_nranges_tdma consistent crash on startup

When attempting to run the example app twr_nranges_tdma (1 master, 3 slave and 1 tag node) I always receive a crash exception on startup. It always occurs on at least the master and tag, which I am monitoring from a PC. My hardware platform is the Decawave MDEK1001 evaluation kit units. The GDB exception and RTT output is included below. I'd greatly appreciate any help is discovering the source of the issue. Thanks!

Reading symbols from bin/targets/nrng_tag/app/apps/twr_nranges_tdma/twr_nranges_tdma.elf...
os_tick_idle (ticks=33) at repos/apache-mynewt-core/hw/mcu/nordic/nrf52xxx/src/hal_os_tick.c:160
160 if (ticks > 0) {
Resetting target
0x000000dc in ?? ()
(gdb) continue
Continuing.

Program received signal SIGTRAP, Trace/breakpoint trap.
hal_system_reset () at repos/apache-mynewt-core/hw/mcu/nordic/nrf52xxx/src/hal_system.c:56
56 asm("bkpt");
(gdb) quit
A debugging session is active.


{"utime": 34566581,"seq": 30,"uid": 7211,"ouid": [16663,16556],"rng": [0.112,1.252]}
{"utime": 34593475,"seq": 31,"uid": 7211,"ouid": [16663,16556],"rng": [0.082,1.235]}
{"utime": 34620354,"seq": 32,"uid": 7211,"ouid": [16663,16556],"rng": [0.098,1.266]}
{"utime": 34647248,"seq": 33,"uid": 7211,"ouid": [16663,16556],"rng": [0.114,1.228]}
{"utime": 34674128,"seq": 34,"uid": 7211,"ouid": [16663,16556],"rng": [0.063,1.268]}
{"utime": 34701015,"seq": 35,"uid": 7211,"ouid": [16663,16556],"rng": [0.107,1.292]}
{"utime": 34727909,"seq": 36,"uid": 7211,"ouid": [16663,16556],"rng": [0.114,1.214]}
{"utime": 34754789,"seq": 37,"uid": 7211,"ouid": [16663,16556],"rng": [0.089,1.310]}
{"utime": 34781683,"seq": 38,"uid": 7211,"ouid": [16663,16556],"rng": [0.082,1.264]}
{"utime": 34830405,"seq": 0,"ouid": [0,0,2599,0,0],"rng": [0.000,0.000,0.000,0.000,0.000]}
{"utime": 34830405,"seq": 0,"ouid": [325,0,325,0,325,0,325],"rng": [0.000,0.000,0.000,0.000,0.000,0.000,0.000]}
{"utime": 34830405,"seq": 0,"ouid": [325,0,325,0],"rng": [0.000,0.000,0.000,0.000]}
{"utime": 34830405,"seq": 0,"ouid": [325,0,325,0],"rng": [0.000,0.000,0.000,0.000]}
{"utime": 34830405,"seq": 0,"ouid": [20688,56571,18441,18698],"rng": [0.000,9259532.000,-1.470,0.000]}
{"utime": 34830405,"seq": 0,"ouid": [597,0,1077,0],"rng": [32840.031,0.000,0.000,0.000]}
004461 Unhandled interrupt (3), exception sp 0x20000c98
004461 r0:0x20000890 r1:0x20002ccc r2:0x00000000 r3:0x30333734
004461 r4:0x20000890 r5:0x20002ccc r6:0x200008dc r7:0x200008c4
004461 r8:0x00000000 r9:0x00000100 r10:0x00000000 r11:0x00000000
004461 r12:0x00000000 lr:0x0001bfc3 pc:0x30333734 psr:0x20000000
004461 ICSR:0x00421803 HFSR:0x40000000 CFSR:0x00000100
004461 BFAR:0xe000ed38 MMFAR:0xe000ed34

Unable to build dwm1001_desense example

newt target create dwm1001_desense
newt target set dwm1001_desense app=apps/desense
newt target set dwm1001_desense bsp=@decawave-uwb-core/hw/bsp/dwm1001
newt target set dwm1001_desense build_profile=debug
newt run dwm1001_desense 0

When I try to build the dwm1001_desense example with above commands, I ran into the following problem.

Compiling repos/decawave-uwb-core/lib/uwb_rf_tests/desense/src/desense.c
Error: repos/decawave-uwb-core/lib/uwb_rf_tests/desense/src/desense.c: In function 'send_test':
repos/decawave-uwb-core/lib/uwb_rf_tests/desense/src/desense.c:235:29: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'uint32_t {aka long unsigned int}' [-Werror=format=]
         printf("%s:%d TEST %"PRIu32"\n", __func__, __LINE__, desense->num_test_sent);
                             ^
repos/decawave-uwb-core/lib/uwb_rf_tests/desense/src/desense.c: In function 'rx_complete_cb':
repos/decawave-uwb-core/lib/uwb_rf_tests/desense/src/desense.c:507:70: error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t {aka long unsigned int}' [-Werror=format=]
                         printf("WARNING Error allocating memory for %"PRIu32" packets\n", req->test_params.n_test);
                                                                      ^
repos/decawave-uwb-core/lib/uwb_rf_tests/desense/src/desense.c: In function 'uwb_desense_pkg_init':
repos/decawave-uwb-core/lib/uwb_rf_tests/desense/src/desense.c:867:26: error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t {aka long unsigned int}' [-Werror=format=]
     printf("{\"utime\": %"PRIu32",\"msg\": \"uwb_desense_pkg_init\"}\n",
                          ^
cc1: all warnings being treated as errors

I know PRIu32 is used to print uint32_t, so these errors is strange.

Compiling the rtdoa_node and rtdoa_tag examples fails

When compiling the rtdoa_node or the rtdoa_tag example, I get compile errors.

Software-Versions:

  • uwb-apps: master
  • gcc: 9.2.1 & 10.2.1
  • mynewt: 1.8.0

Hardware: DWM1001

Error:

Error: repos/decawave-uwb-core/lib/uwb_pan/src/uwb_pan.c: In function 'handle_pan_request':
repos/decawave-uwb-core/lib/uwb_pan/src/uwb_pan.c:353:48: error: taking address of packed member of 'struct _pan_frame_t' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  353 |     if (pan->request_cb(request->long_address, &request->req, &response->req)) {
      |                                                ^~~~~~~~~~~~~
repos/decawave-uwb-core/lib/uwb_pan/src/uwb_pan.c:353:63: error: taking address of packed member of 'struct _pan_frame_t' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  353 |     if (pan->request_cb(request->long_address, &request->req, &response->req)) {
      |                                                               ^~~~~~~~~~~~~~
cc1: all warnings being treated as errors


Support for DWM1001's LIS2DH12 IMU

I'm using the RTDOA example. Is there any way to enable support for the LIS2DH12 accelerometer? I see that in the syscfg.yml for the RTDOA example, there are parameters LSM6DSL_ONB, LIS2MDL_ONB, and LPS22HB_ONB, but unfortunately not for DWM1001's onboard LIS2DH12.

Looking through the code, I see that IMU data is periodically printed out. Is the IMU data used at all in the RTDOA solution, or is it just informational? If it isn't needed by the RTDOA algorithm, then I won't be concerned so much.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.