Comments (5)
Hi NimaaZx,
according to the standard ISO/IEC 24730-62_2013 on which we are based, the final step of the TWR flow (with embedded TX time) is an Activity control (0x10 , 1 octet) + Activity Code ( 0x00 or 0x01 , 1 octet) + Optional parameters ( new blink rate or Next anchor to perform ranging ,2 octet ), that the anchor sends back to the tag.
According to the standard, the final step isn't usable to report range to the tag.
You Should create a new personal message (and functions) with User Code (from 0x60 to 0x77 and from 0xE0 to 0xF7) that returns the range to the tag. Then the Tag should implement a function to receive the range.
In this scenario, you can't use high-level abstraction functions inside DW1000NgRTLS but you must use the individual functions for every single step of the TWR flow ( transmitTwrShortBlink(), transmitRangingInitiation(), transmitPoll(), and so on ... ) + new personal function.
We haven't implemented this functionality because it isn't a default step in the standard 24730-62
from arduino-dw1000-ng.
You are welcome!
-
Before all, you must read DW1000 user manual and DWM1000 datasheet. It's very important to understand how to develop a driver and libraries for the DWM1000. We spent approximately 1 month only to study these two documents, plus 3 months (more or less) to refactor the Thotro code and add some futures. Our code is compatible with esp8266 but with esp32 we had problems.
The best work that you can do is: take the source code of the driver from Decawave and convert it for the esp32 and esp-idf (driver is written in C). -
No. Sleep mode isn't enabled in anchors. Maybe that is a bug in our code or in your modification of the TransmitRangingConfirm function. Remember that the last 2 octets (payload is: 0x10+0x01+NextAnchor) are for specifying the next-anchor to perform ranging.
-
Can you explain further? We don't understand your question
from arduino-dw1000-ng.
-
Drivers are inside DW1000 Application Programming Interface software package.
Yes, IoT is a branch that requires several fields of study. -
OK
-
The range of the dwm1000 is very short because it has a very small antenna. You can try to extend it changing frequency(channel, lower is better), use manual power instead of SmartPower (see the struct of the configuration options). This argument is explained in DW1000's user manual or in an Application note.
Very important is the vertical antenna polarization for the DWM1000 module.
from arduino-dw1000-ng.
thank you for your response.
We implemented it inside "TransmitRangingConfirm"
there is a packet that we put the range in and when this function Call, it is sent and in tag side we receive it.
I have 3 more questions .
1- For developing and working with dwm1000 module,
what do we do if someone like you don't share his libs and source code with us? you write all libs ? how did you do that? how much time does it take ?
I mean if your source code does not exist what should we do for working with this module?
because I never found the library from decawave and we want to build a industrial product with dwm1000 and esp32.
we need them.
2- we use your souce code and library with some our modifications.
do you set sleep mode for anchors?
because after 10 minutes when a tag is off or out of coverage , when the tag is back , anchors can't see them until we reset anchors manually.
3- do you have any TX/RX mode for anchors or tags coverage or something like said in
TX/RX table in datasheet ?
I see something like AutoTx in your code.
thanks a lot.
from arduino-dw1000-ng.
Thank you for your concern.
1- Actually at first We did not find a source code of dwm1000 driver in official site. (can you send me a link please ?)
as well as i think reading module datasheet is a little hard for us. because I think
Electronic Engineering or other knowledges is needed. but we did it.
we studied software engineering. some topics are related to our majors. even writing library with low level language is a challenge.
I mean this indoor positioning is a part of of IoT.
unfortunately IoT is a branch that requires several fields of study(software-hardware-electronic eng)
2- at this time I dont have an access to our code but as I tell you we injected ranging parameter to "TransmitRangingConfirm" function. yes you right, we injected it after "next anchor bits". I mean after last bit you wrote, we injected ranging parameter and sent the packet to tag side.
I will send the code for you.
for sleep problem we used reset command.
it solves the problem for now.
3- About Tx,Rx / for Extending Rang of dwm1000.
I found this issue of Thotro topic
thotro/arduino-dw1000#245
Do you use this source for extending rang of dwm1000 ?
somebody said using this
writeValueToBytes(txpower, 0x1F1F1F1FL, LEN_TX_POWER);
from arduino-dw1000-ng.
Related Issues (20)
- analogRead() for ADC1 conflict HOT 4
- Esp32 Wroom board HOT 2
- Examples Not Functioning as Expected or Crashing NodeMCU 1.0 (ESP8266) HOT 6
- Arduino Uno with DWS1000 v0.3 library anchor-tag problem HOT 2
- Anyone ported the library to vscode for use with ESP-IDF platform? HOT 2
- Increase NLOS range of DWM1000 HOT 8
- what about compatible with dwm3000 ? HOT 1
- Is it possible to setup the system with 4 active modules as anchor and 1 tag? HOT 3
- DW1000 shield for Arduino Nano (Nucleo-32) HOT 2
- Connecting Arduino Pro Mini with PC HOT 4
- Problems with BasicReceiver and BasicSender HOT 1
- No connection: Compatible with Board DWS1000 (Arduino Uno)? HOT 4
- Two-way ranging HOT 2
- multiable tags on one device ? HOT 2
- RTLS examples not working HOT 1
- Initiate & Respond to Range Requests
- two way ranging didnt works HOT 1
- Distance measurement between several TAGs and several ANCHORs HOT 1
- Get relative range between two tags
- Connecting time between tag and anchor
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arduino-dw1000-ng.