Giter Club home page Giter Club logo

arduino-dw1000's People

Contributors

aacton avatar alessandroportela avatar anacron-sec avatar az-z avatar bartslinger avatar cimbalo avatar cimbalomecoil avatar gautierhattenberger avatar jwzawadzki avatar leosayous21 avatar lvoytek avatar martonmiklos avatar mikes159 avatar njroussel avatar pascalbros avatar per1234 avatar rotzbua avatar sonic0 avatar steffenmauch avatar stevenh2812 avatar thotro avatar tommag avatar valeros avatar verbatimt avatar yuhki50 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  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  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  avatar

Watchers

 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduino-dw1000's Issues

DWM1000 UWB46

We are using DWM1000 UWB46, we connected the chip to Arduino R1 (Deumilanove). We are using the BasicConnectivity sketch, the below is the output. Any idea what could be the issue, we wired for spi (ss,mosi, miso, clk), intr, reset

Device ID: DECA - model: 0, version: 0, revision: 0
Unique ID: 00:00:00:00:00:00:00:00
Network ID & Device Address: PAN: 00, Short Address: 00
Device mode: Data rate: 6800 kb/s, PRF: 16 MHz, Preamble: 128 symbols (code #4), Channel: #5

Thanks in advance
Venkatesh

Error in definition of NANOSECOND ?

I think there s a problem with the definition of NANOSECOND. As a unsigned long it can t be inferior to 1 : static const unsigned long NANOSECONDS = 1e-3;

clock synchronization between the anchors in TDOA

Hi;
I know you use the two-way ranging as the localization algorithm, but the TDOA save more electricity when the tags use the battery as the power supply. i am going to implement the TDOA algorithm, but i am confused by clock synchronization between the anchors.
Comparison of wireless clock synchronization algorithms for indoor location systems.pdf provided by the decaware ltd, one anchor is transmitting a packet every 150ms as measured by its clock, and the other anchor receives, the clock offset between the sender and receiver is about 31ns. the clock error is so large, how can we get the 10cm precision as the Decaware declare.

Is it ok to program arduino pro mini right on the breadboard?

Hello! Thank you very much for you work!

I have a question, sorry it is probably a noob question.

I program my arduino pro mini with USBASP programmer.
Is it ok to program arduino which is connected to a dwm adapter?
Or shall I disconnect it and program separately?
I wonder because adapter connected to the same pins of arduino (as it uses SPI too).

Serial Monitor Display Problem

Hello!

I try your code BasicConnectivityTest with Arduino Pro Mini 3.3v. The received characters on serial monitor is not shown probably. I have tried different baudrate and put delay function, it is not improved.

Hope you can help! Thanks a lot!

screenshot 2015-11-11 11 48 32

DW1000.cpp: SPI data not read correctly for extended adresses

readBytes is not setting the extended address bit correctly:

This is the corrected code:

     static const byte EXT_ADDR = 0x80; // extended address
      .......

        } else {
            header[1] = EXT_ADDR | (byte)offset;
            header[2] = (byte)(offset >> 7);
            headerLen+=2;
        }

I found it out by verifying the sent data (in writeBytes) by reading back the written data.

wr@23:4=> 70,88,
wr@23:C=> 7,A9,2,25,
wr@23:12=> 35,0,
wr@27:2=> 1,0,
wr@27:4=> 87,0,
wr@27:6=> 20,0,
wr@27:8=> 2D,0,1A,31,
wr@27:26=> 28,0,
wr@2E:806=> D,
  ERROR: 0,
wr@2E:1806=> 7,16,
  ERROR: 0,AD,
wr@2E:2804=> 8E,42,
  ERROR: 0,0,

Multiple anchors

Hi !
I commited the first sketch for multiple anchors. I tested it with 2 anchors, but i will keep you in touch when trying with more devices !
Also, there is optimisation to do on replyTime: for instance the first anchor will have a reply time of 7000us but the second when will have 3*7000us ! Otherwise it doesn't work and i don't really understand why...
I will try to visualize how is the time for sending/receiving, etc. with an oscilloscope in order to understand that !
Cheers !
Léopold

DWM1000 error in CLKPLL_LL_BIT

Hi:

I have been trying to make this code work on an Arduino Mini PRO 3.3 8Mhz like the one in the testbed ( receiver) and an arduino Mega 2560 ( transmitter). The Tx works Ok, or at least i think so, but the RX doesn't receive anything. If i artificially make the interrupt go i see the package is corrupted in the receive buffer and the CLKPLL_LL_BIT is set, although this doesn't generate the interruption by itself. Do you have any insight on this error? Is there an specific reason why the CLKPLL_LL_BIT is checked in your code.

Best regards.

register 0x01 EUI - 8 bytes address filtering

Hi @thotro ,
In the last commit, the frame filtering was entirely software. Now i'm trying to active the Frame Filter of the DW1000. It works great with the short address (for poll, poll_ack, range, range_report) but not with the long 8 bytes address (ranging_init). (The DW1000 module need to compare it with its EUI saved in register 0x01)
I don't exactly know our the address is save in the DW1000 chip and it can be a reason why it doesn't work.
consider an address byte address[8]={0x82, 0x17, 0x58, 0xD5, 0xA9, 0x9A, 0xE2, 0x9C};
if i use writeBytes like this:
writeBytes(EUI, NO_SUB, address, LEN_EUI);
The DW1000 will understand the address like i wrote it ?
In user manual page 66, it seems that the address needs to be saved in reverse position.
capture d ecran 2015-08-10 23 37 31
I tried byte addressReverse[8]={0x9C, 0xE2, 0x9A, 0xA9, 0xD5, 0x58, 0x17, 0x82}; and the writeBytes with this addressReverse Array but it doesn't work too...
Do you have an idea ? Maybe we need to reverse each bite also ?
Thanks !
Léopold

BasicConnectivityTest producing rubbish over serial port

I have been playing around with the library and have been getting rubbish out of the serial port when trying the basic connectivity test. I have managed to create a fix (this issue was also affecting other examples and my fix also allows them to run successfully).

The issue was coming from the message buffer, the data was not obviously being overwritten, but the strings that were printed contained seemingly random characters. My fix was simply to change the single message buffer into 4 separate ones (see below).

Has anyone else had this issue, or know why I might be getting it?

char msg1[50];
DW1000.getPrintableDeviceIdentifier(msg1);
Serial.print("Device ID: "); Serial.println(msg1);

char msg2[50];
DW1000.getPrintableExtendedUniqueIdentifier(msg2);
Serial.print("Unique ID: "); Serial.println(msg2);

char msg3[50];
DW1000.getPrintableNetworkIdAndShortAddress(msg3);
Serial.print("Network ID & Device Address: "); Serial.println(msg3);

char msg4[50];;
DW1000.getPrintableDeviceMode(msg4);
Serial.print("Device mode: "); Serial.println(msg4);

Examples license GNU GPL v2?

Thomas, it seems the src directory is Apache License v2 and the examples directory is GNU GPL v2.

Was that on purpose or did you forget to change the example code to Apache License v2 when you changed the license for the other stuff?

Thank you for this great library!

ranging frame format with standard MAC layer

Hi @thotro,
I want to try to implement the MAC layer according to the IEEE 802.15.4 standard.
I don't really understand the current frame format for a message.
When we send a message, we call the setData which writes bytes on TX_BUFFER register.
So if i understand well, for now we fill the content of "Data" that we can see on the right of the Figure 31 below ?
capture d ecran 2015-08-03 16 00 05
That mean when we send a POLL in setting data[0]=POLL we set the first byte of this portion of frame ?

capture d ecran 2015-08-03 16 01 02
So now according to the figure 34, we need to create this frame using software in order to make the data variable following the structure.

Cheers,
Léopold

EDIT: Finally I found the response for my question... It's in the 11.4 section :-) "The DW1000 transmits data from the TX_BUFFER in a frame with data length as specified in the TFLEN and TFLE fields of the Register file: 0x08 – Transmit Frame Control, inserting the 2-octet FCS as the last two octets of the data payload. The DW1000 will not do any other MAC level transmit processing. So, it is up to the host system software to prepare the correctly formatted frame conforming to the IEEE 802.15.4 standard MAC if this is required."
But I let the message, i think it can be interesting to understand how frame works in the radio protocole !

Is there any reason why this would not work with an Arduino Yun?

In order to communicate with an external "thing" like a robot, I am conceptually finding a need to have a master anchor tag with wifi capabilities.

So, is there any reason why one of the tags can't be an Arduino Yun (plus the dwm1000) while the others remain a mini pro?

I guess my question is can pretty much all of the arduinos be used with your code and the pin layout that you have?

Thanks

Variable naming collision on STM32 builds..

The current arg definition for DW1000RangingClass::initCommunication:
static void initCommunication(unsigned int RST=DEFAULT_RST_PIN, unsigned int SS=DEFAULT_SPI_SS_PIN);
Collides with defines for SS used in the stm32 support for arduino.
Can I suggest they are renamed avoiding uppercase first letter?
For testing I used myRST, mySS instead of RST, SS.

Ranging problem in 2D (multiple Anchors)

Hello everyone,

First of all, great work guys! It's a large library and it works pretty good!

But here is my problem. (I’m sorry)

I have one tag and three anchors.
This is my set-up to measure in 2D:

anker_tag opstelling
(Distances are centimeters)

This is what happens:
range_problem_short

Each time an anchor joints the network the distance changes.

I tried it with a larger distance:
range_probleem

Same result. The difference is a little bit smaller.
After one sample the distance is stable, good sign I think?
But... The distances doesn’t agree with the physical distance.

The distance offset could be calibrated but that is not the problem in this case I think.
Because the distance changes each time when there joints an anchor.

  • Could it be the transmit power?
    (How do I change the transmit power in the library?)
  • Could it be the transmit mode?

When this problem could be solved I can calculate the position in 2D.
Next step is 3D by adding a fourth anchor. (Firmware is already complete for 2D and 3D)

Could anyone help me?
Thank you in advance.

Independent power is needed for dw1000...

Hi.
I used dwm1000 with arduino nano, something wrong was happened but solved at last.
The power from arduino nano or mini (USB) can not support dwm1000 enough, if your code can not work or just work a little time, these may help you.

dtysky

Proper error codes

  • List of unique error codes
  • void functions should then return actual status (ok, warnings and error codes)

Extended data management

E.g. allow setting and appending of data pieces, with functions like "appendFloat", "getInt", etc.

Two Way Ranging - change message rate

Sorry for the newbie question, but I am struggling a little to get my head around the code. Can someone provide some pointers on how I change the rate at which range data is reported please? I am using the simple DW1000Ranging_Anchor/Tag examples.

My ultimate aim is to achieve range updates at 100Hz over a LOS range of 30m.

Your guidance would be appreciated.

Ranging vs. DW1000Ranging_

Hi,

i copy the "reference"-circuite and test them. The example DW1000Ranging_ works, the Ranging do not. What is the different between the two programs?
And i am right in my assumption, that both programs would have to run on the same hardware? I use the MiniPro with 8MHz lite the reference and an 330ohm resistor.

Support for multiple tags!!

Hi,

Great work!! I have used the library for 3 Anchors - 1 Tag with Arduino Lilypad (USB). It works very well. It seems that the library doesn't support multiple tags yet. Is any upgrade under development currently?

Will adding the code for "if(_type==TAG)" in "addNetworkDevices" in "DW1000RangingClass" be sufficient to extend the functionality to multiple tags? If not, can you please advice me on changes required to support multiple tags.

Thanks

Library broken because of enableclock() in DW1000::begin()

Hi,

This is something that needs to be fixed. The Enable clock function is trying to do SPI transfers before SPI begin.

This can be solved by moving the enable clock call after SPI.begin() and SPI.usingInterrupts().

Regards,
Ankit

DW1000Server & GUI

Hey guys,
I created a server and a GUI for combining the range reports from the anchors and making the calculations for positioning the Tag using trilateration.
Here you can find the source code:
https://github.com/jogando/dw1000server

here you can find an example:
https://www.youtube.com/watch?v=5WXWx_jxGw8

The only change you need to make to your Arduino projects is to replace the DW1000Ranging_ANCHOR.ino file:

void newRange(){
Serial.print("["); Serial.print(DW1000Ranging.getDistantDevice()->getShortAddress(), HEX);
Serial.print(":"); Serial.print(DW1000Ranging.getDistantDevice()->getRange()); Serial.println("]");
}

This way the Serial will print a string like [tag_address:distance]

Thanks a lot for your great work.

cheers,
Julian

digitalWriteFast is not functional on STM32..

After some testing I can confirm, at least for me, digitalFastWrite is not actually doing what is intended on stm32 builds.
I would be surprised if it does anywhere.
it requires __builtin_constand_p() to be true for both args, and it does not appear that will be true for the current implementation as the compiler does not seem to consider them constant, at least in the examples.

For stm32 I have substituted an alternative that does work, however am not sure of the best compatible solution.
Perhaps the AVR compiler is managing to do the right thing, whereas the arm path is not?

on stm32 the overhead is not too bad, 1us per call, but still not great. on AVR the difference will be much more obvious - perhaps look on a scope how early CS is asserting?

DW1000Ranging.cpp : may deadlock

When setting '_replyDelayTimeUS' (via setReplyTime) to a small value (e.g. 3000) , an inactive device is deleted, but the state machine on the Tag/Anchor seem to be in an deadlock state (not running/sending further - I assume it should recover from this situation?). The same happens if the default 'replyTime' is used. It just takes longer to get to the deadlock situation.

PS: For my tests I have modified console output code to output information (TAG/ANCHOR, time, range, power) only every 500ms.
dw1000_deadlock

DW1000Ranging_Tag/Anchor

Firstly, many thanks for the great work you have done in maing this technology more available. I am very grateful!

I am trying to implement the DW1000Ranging_Tag/Anchor example but cannot get it to work. I am driving the Anchor with an Arduino Uno and the tag with a TinyShield (AT328P).

Once the sketches are done uploading, I open the Serial Monitor for the Anchor and see:

device address: 82:17:.......
"### ANCHOR ####"

but nothing else. Is some further initiation required? I have checked wiring errors with no joy.

Your thoughts would be very welcome. Thank you.

Data receive issue

Hi,
I have two DWM1000 and I'm trying to make them communicate.
But when I send message to the other (with one of your test, like pin pong one), the receiver receives the sent message with a square letter at the end. Next times, only squares are received by the receiver.
Is it an issue you're also experiencing ?
Kind regards.

replyDelayTimeMS value (Ranging)

Hi !

  • Why did you put 10ms for replyDelayTime ? There is a reason for that or it can be 1ms or less ?
    Do you agree with me in saying that the frequency of ranging depends on this value ?
    As the ranging needs 4 travels, a ranging frequency is around 1000/(4*10) Hz ? (i didn't add the sending time, etc..)
  • Why do you use DW1000.MODE_LONGDATA_RANGE_LOWPOWER ? You take a random one for sample or your result is better with this one ?

Thanks !
Léo

BasicSender_BasicReceiver

Hi Everybody,
I'm new in this application.
I'm tryng to setup a communication between an Arduino Uno and an Arduino Nano (with Atmel 328) using two DWM1000.
I followed the electrical scheme showed in the thread: the BasicConnectivityTest program seems to work properly, but when I Load BasicReceiver on one Arduino and BasicSender on the other, nothing happens.
Can anyone help me please?
Thank You
Raffaele

BasicReceiver.ino : no receive (Arduino Nano, STM32F1)

**BasicReceiver/BasicSender code examples: no receive (or with errors) - probably default parameters are not working well for all modules **
.-.-.-
Symptom: when running as sender, interrupts occur - when running as receiver no interrupts occur.

My setup:
I did connect 2x DWM1000 modules each to one Arduino Nano (5v) using 5v<->3.3v level shifting (details below). I'm using: DWM1000 with antenna UWB46 (PCB back says: 10FEB2014, REV1.1)

The 'BasicSender' example works (in setup, 'char msg[1024]' had to be reduced to 256 bytes) on both my Nanos: the device ID is read correctly, and send interrupts appear.

However, if I try 'BasicReceiver' example with any of my modules (one sender running of course), on the receiver the DWM1000 VDD voltage goes down from 3.3v to 3.0v, and no interrupt appears. The device ID is read correctly, but when measured with oscilloscope at DWM1000, but no receive interrupts appear. However, interrupts appear on both modules when configured as sender.

Tried both modules, different DWM modes and delta times without success. Any ideas? I have ordered Arduino Pro Mini 3.3v to retry this. Thx, Alexander

Circuit details:
DWM1000 IRQ (via 12k pull-down) -- Arduino Nano D2 input
DWM1000 RSTn (via level shifter) -- Arduino Nano D9 output
DWM1000 SPICLK (via level shifter) -- Arduino Nano D13 output
DWM1000 SPIMISO (via level shifter) -- Arduino Nano MISO D12 input
DWM1000 SPIMOSI (via level shifter) -- Arduino Nano MOSI D11 output
DWM1000 SPISS (via level shifter) -- Arduino Nano SS D10 output

Level shifting circuit (jy-mcu-converter_5_3_bidir):
http://www.openhardware.pe/store/image/cache/data/components/diagram_jy-mcu-converter_5_3-500x500.jpg

Serial console output:
DW1000 initialized ...
Committed configuration ...
Device ID: DECA - model: 1, version: 3, revision: 0
Unique ID: FF:FF:FF:FF:00:00:00:00
Network ID & Device Address: PAN: 0A, Short Address: 06
Device mode: Data rate: 110 kb/s, PRF: 16 MHz, Preamble: 2048 symbols (code #4), Channel: #5
reception started

maximum ranging test (indoor)

Hi !
I tried a test to verify the maximum indoor distance we can get. I had hardly 12m in live view... Also i can't go through a wall !
mode: DW1000.MODE_LONGDATA_FAST_ACCURACY
I noticed that if i use a replyTime near the limit (1.9ms here), the max distance is shorter ! I had 7m with 1.9ms and i add the 12m using a 3ms replyTime
Cheers,
Léopold

Sleep, Deep sleep, Snooze mode

  • Default always-on power save solution
  • Snooze mode to be explicitly enabled if needed
  • Timers for sleep and snooze to be configurable
  • Don't know yet about deep sleep and if we should/will implement it

Synchronizing clocks among multiple chips?

Hi Thomas,
I'm really impressed with the work you've done :), thanks!
I wanted to ask you if you know if there's a way of syncing the DWM1000 clock externally.
I know that the DW1000 has the SYNC pin, but i don't think this is enabled in the module DWM1000.

I want to have the Anchors' clock synchronised.

Any ideas?

Thanks!
Julian

DW1000.cpp: setData behaving strange (only certain data is received)

After debugging, I discovered a strange transmission behavior. I tested all of the code examples, some did work, other did not work - finally, I found out that the problem is actually the transmitted data:

  1. Default BasicReceiver/BasicSender code does not work, until I set data to this:
String msg = "42";   
DW1000.setData(msg);

However, this data does NOT work:

String msg = "aa";   
DW1000.setData(msg);

It is never received at the receiver side (no interrupt either).
2. RangingAnchor/RangingTag does not work. No first ack at receiver. Until I change the data to "42", then I also get an receiver ack.
3. DW1000Ranging_ANCHOR, DW1000Ranging_TAG works.

Any ideas? I did all tests using DW1000.MODE_LONGDATA_RANGE_ACCURACY.

Same behavior on Arduino Nano and STM32.

Question: Can this be used to create tags for the DW TREK Evalutation Kit

You're doing amazing work on this library and seems that you're progressing very well.
I've been snooping around a bit and have a few questions (some might not be directly related to the library but still very useful to have answered). that I hope you could answer if time permits.

  1. We are currently testing with their evaluation kit, but would love to have a bunch of smaller custom tags. Your library is ideally suited to create our own...so could your library be used to create tags that work with DecaWave's TREK1000 evaluation kit? Is there some special configuration needed so the anchors can detect / identify these tags?
  2. Would love to track some high speed things. Ideally would love to have location updates at least 50 - 100 x per second. Is this at all possible with about 30 tags at once? What is the max. update rate currently supported for localization and on what does it depends?

Thanks!

Transmit power erro

Hello everyone,

There seems to be a problem wtih the transmit power.
I can't chagne the transmit power.

Simple setup:
Anchor -> Tag

I use the standard library.
Correct me if I'm wrong:
Default settings are: channel 5, smartpower OFF.

The uC comes here:
DW1000.cpp line 550.
" writeValueToBytes(txpower, 0x85858585L, LEN_TX_POWER); "

This is the code line where it should be flashed in the DWM1000 module:
"writeBytes(TX_POWER, NO_SUB, txpower, LEN_TX_POWER);"

At the Tag I see no difference by RX power.

Could anyone help me please?

Arduino Type

I was wondering if you were using the Arduino Pro Mini 3.3V/8MHz in your examples or if you used the Pro Mini 5V/16MHz with a voltage translator board. From your layout example it looked like you were using a 3.3V Arduino but I wasn't sure if 8 MHz would be fast enough.

New library DW1000Ranging

Hi !
I'm creating a new library which will gather and compact the ranging examples. (for starting).
the purpose is to have a new higher level library which help for more complexe interaction between the modules.

Here what I did now for anchor example

void setup() {
  Serial.begin(115200);
  delay(2000);
  //init the configuration
  DW1000Ranging.init(9, 10); //Reset and CS pin
  DW1000Ranging.configureMode(DW1000.MODE_LONGDATA_RANGE_LOWPOWER);
  DW1000Ranging.configureNetwork(1, 10); //device Address and network ID
  //define the sketch as anchor. It will be great to dynamically change the type of module
  DW1000Ranging.startAsAnchor();
}

void loop() { 

  if(DW1000Ranging.msgSent()){
    //A msg was sent. We launch the ranging protocole when a message was sent
    DW1000Ranging.rangingProtocoleSent();

    //we can do another thing here
    //...
  }

  if(DW1000Ranging.available()){
    //we read the datas from the modules:
    DW1000Ranging.read();
    //then we proceed to range protocole
    DW1000Ranging.rangingProtocoleReceived();

    //this is optionnal
    if(DW1000Ranging.newRangeComputed()){ 

      Serial.print("Range: "); Serial.print(DW1000Ranging.getRange()); Serial.print(" m");
      Serial.print("\t FP power: "); Serial.print(DW1000Ranging.getRXPower()); Serial.print(" dBm");
      Serial.print("\t RX power: "); Serial.print(DW1000Ranging.getFPPower()); Serial.print(" dBm");
      Serial.print("\t Quality: "); Serial.println(DW1000Ranging.getQuality());
    }

    delay(10);

    //here if we have others messages from tag 
    if(DW1000Ranging.getDataID()==6){
      //do something with DW1000Ranging.data
      //...
    }

  }
}

The anchor protocole is working in the function "DW1000Ranging.rangingProtocole();". (that is: transmit poll, transmit range, compute range, etc.)
What do you think about this type of architecture ?
We also need to add a module address or MAC filtering when asking for the "available()" function

I didn't do the Tag type for now. There is many things to do in it:

  1. implement a discover function which will regularly ask for active anchor to set in.

  2. implement a structure which can contain informations about an Anchor module. Then it will fill an array of the different active Anchor (with a MAC or ID address and a different reply time) which was discovered. This can be updated every seconds for instance

My final goal/dream (but with an other upper level library) will be to allow the anchors to detect each others and to position themselves in a map. Then the tag will detect the closer anchors and get ranges from them. At the end it will be so great to be able to do power optimisation in order to put the anchors on battery...

do you have other ideas ? maybe a different type of global architecture ?
Cheers,
Léopold

Sent Handler is not called after startTransmit()

I have run example code BasicSender in Arduino Mega 2560 R3. The output from Serial Monitor is as follows:

### DW1000-arduino-sender-test ###
DW1000 initialized ...
Committed configuration ...
Device ID: DECA - model: 1, version: 3, revision: 0
Unique ID: EUI: 0:0:0:0:255, OUI: 255:255:255
Network ID & Device Address: PAN: 10, Short Address: 5
Device mode: Data rate: 110 kb/s, PRF: 16 MHz, Preamble: 2048 symbols (code #4), Channel: #5
Transmitting packet ... #0

Unfortunately, after sending packet, the callback is not fired, which causes, that sentAck is not set to true. Main loop is breaking every each iteration.

Mac layer - flash memory

Hi !
I'm almost done with the Mac layer but the sketch goes up to 26 000 bytes. What can we do to decrease this ? (maybe add some #ifdefine in order to just have some part of the code in order to the type we want to use ?)
In the next library comming (with mac layer and multi-anchors/tags), each device can be modified to pass from TAG to ANCHOR dynamically ! (it can be useful to grab the position beetween the anchors during the installation !)
Cheers,
Léopold

Does this work in tracking mode?

It seems the TREK 1000 eval system comes with 4 boards to facilitate tracking mode. 3 of them are stationary and 1 is the moving "tag" I guess.

Would I be able to emulate the same TREK 1000 system if I put 4 of these together? And then be able to receive 3D location data on one of the stationary boards?

If yes, I wouldn't have to buy the TREK 1000 eval system then, right?

Sorry about the newbie question - I am just a hobbyist and want to be able to track something like a robot...

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.