Re: [Tinyos-help] Broadcast packet not received by all motes
Unless you have some randomisation before you transmit packets, sounds like your packets are interfering with each other. SendDone can be signaled even if packet's lost in propagation (I think..). > -Original Message- > From: tinyos-help-boun...@millennium.berkeley.edu > [mailto:tinyos-help-boun...@millennium.berkeley.edu]on Behalf Of Simon > Eberz > Sent: 28 October 2010 18:42 > To: tinyos-help@millennium.berkeley.edu > Subject: [Tinyos-help] Broadcast packet not received by all motes > > > Hi, > > I'm implementing a simple message exchange between two motes > (to measure > the RSSI, but this is not of interest) and > send the messages as broadcasts. > I'm using the TinyOS Basestation application with the Listen-Tool to > check which messages have been sent. > Here's the problem: I have two motes (call them A and B) with nearly > identical code flashed to them. > A sends a message (broadcast), and after that each mote will > send a new > broadcast after receiving a packet. > All messages sent by A are also received, and thus displayed, by the > BaseStation-mote, and the LEDs indicate that > all messages are also received by B [otherwise only one > message would be > sent anyway]. > But, when B sends a message, it seems to be received by A [as > A responds > with yet another packet], but is not displayed > by the BaseStation-App. I tried to verify this by flashing a > third mote > with custom code, same issue. > If I just call the SendProbe-method [see below] on mote B it > works fine > and switching motes doesn't help either. > LEDs suggest that the SendDone-Event is triggered on both motes. > Ultimately, it seems that the broadcasts are only received by > the mote > from which the last message was received (?). > Is there any property of broadcasts that I am not aware of? > Here is the (relevant) code I use: > > void SendProbe(){ > probe = (ProbeMsg*)(call Packet.getPayload(&pkt,NULL)); > probe->source = 1; > probe->counter = counter; > call AMSend.send(AM_BROADCAST_ADDR, &pkt, sizeof(ProbeMsg)); > } > > event message_t * Receive.receive(message_t *msg, void *payload, > uint8_t len){ > if(len==sizeof(ProbeMsg)){ > probe = (ProbeMsg*)payload; > call Timer.startOneShot(DELAY_BETWEEN_PROBES); > } > return msg; > } > > event void Timer.fired(){ > SendProbe(); > } > > > Thanks for your help > ___ > Tinyos-help mailing list > Tinyos-help@millennium.berkeley.edu > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/t inyos-help Please consider the environment before printing a hard copy of this e-mail. The information contained in this e-mail is confidential. It is intended only for the stated addressee(s) and access to it by any other person is unauthorised. If you are not an addressee, you must not disclose, copy, circulate or in any other way use or rely on the information contained in this e-mail. Such unauthorised use may be unlawful. If you have received this e-mail in error, please inform us immediately on +44 (0)118 986 8601 and delete it and all copies from your system. Thales Research and Technology (UK) Limited. A company registered in England and Wales. Registered Office: 2 Dashwood Lang Road, The Bourne Business Park, Addlestone, Weybridge, Surrey KT15 2NX. Registered Number: 774298 Thales UK Limited. A company registered in England and Wales. Registered Office: 2 Dashwood Lang Road, The Bourne Business Park, Addlestone, Weybridge, Surrey KT15 2NX. Registered Number: 868273 ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Broadcast packet not received by all motes
This should not be the case, as packets are only sent as a respone and after a short waiting period (20ms). Thus, the two motes can never send at the same time. > Unless you have some randomisation before you transmit packets, sounds like > your packets are interfering with each other. SendDone can be signaled even > if packet's lost in propagation (I think..). > >> -Original Message- >> From: tinyos-help-boun...@millennium.berkeley.edu >> [mailto:tinyos-help-boun...@millennium.berkeley.edu]on Behalf Of Simon >> Eberz >> Sent: 28 October 2010 18:42 >> To: tinyos-help@millennium.berkeley.edu >> Subject: [Tinyos-help] Broadcast packet not received by all motes >> >> >> Hi, >> >> I'm implementing a simple message exchange between two motes >> (to measure >> the RSSI, but this is not of interest) and >> send the messages as broadcasts. >> I'm using the TinyOS Basestation application with the Listen-Tool to >> check which messages have been sent. >> Here's the problem: I have two motes (call them A and B) with nearly >> identical code flashed to them. >> A sends a message (broadcast), and after that each mote will >> send a new >> broadcast after receiving a packet. >> All messages sent by A are also received, and thus displayed, by the >> BaseStation-mote, and the LEDs indicate that >> all messages are also received by B [otherwise only one >> message would be >> sent anyway]. >> But, when B sends a message, it seems to be received by A [as >> A responds >> with yet another packet], but is not displayed >> by the BaseStation-App. I tried to verify this by flashing a >> third mote >> with custom code, same issue. >> If I just call the SendProbe-method [see below] on mote B it >> works fine >> and switching motes doesn't help either. >> LEDs suggest that the SendDone-Event is triggered on both motes. >> Ultimately, it seems that the broadcasts are only received by >> the mote >> from which the last message was received (?). >> Is there any property of broadcasts that I am not aware of? >> Here is the (relevant) code I use: >> >> void SendProbe(){ >> probe = (ProbeMsg*)(call Packet.getPayload(&pkt,NULL)); >> probe->source = 1; >> probe->counter = counter; >> call AMSend.send(AM_BROADCAST_ADDR,&pkt, sizeof(ProbeMsg)); >> } >> >> event message_t * Receive.receive(message_t *msg, void *payload, >> uint8_t len){ >> if(len==sizeof(ProbeMsg)){ >> probe = (ProbeMsg*)payload; >> call Timer.startOneShot(DELAY_BETWEEN_PROBES); >> } >> return msg; >> } >> >> event void Timer.fired(){ >> SendProbe(); >> } >> >> >> Thanks for your help >> ___ >> Tinyos-help mailing list >> Tinyos-help@millennium.berkeley.edu >> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/t > inyos-help > > Please consider the environment before printing a hard copy of this > e-mail. > > The information contained in this e-mail is confidential. It is intended > only for the stated addressee(s) and access to it by any other person is > unauthorised. If you are not an addressee, you must not disclose, copy, > circulate or in any other way use or rely on the information contained in > this e-mail. Such unauthorised use may be unlawful. If you have received > this e-mail in error, please inform us immediately on +44 (0)118 986 8601 > and delete it and all copies from your system. > > Thales Research and Technology (UK) Limited. A company registered in > England and Wales. Registered Office: 2 Dashwood Lang Road, The Bourne > Business Park, Addlestone, Weybridge, Surrey KT15 2NX. Registered Number: > 774298 > > Thales UK Limited. A company registered in England and Wales. Registered > Office: 2 Dashwood Lang Road, The Bourne Business Park, Addlestone, > Weybridge, Surrey KT15 2NX. Registered Number: 868273 > > ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Broadcast packet not received by all motes
use CCA enable before sending something out. On Fri, Oct 29, 2010 at 1:44 PM, Simon Eberz wrote: > This should not be the case, as packets are only sent as a respone and > after a short waiting period (20ms). > Thus, the two motes can never send at the same time. > > > Unless you have some randomisation before you transmit packets, sounds > like > > your packets are interfering with each other. SendDone can be signaled > even > > if packet's lost in propagation (I think..). > > > >> -Original Message- > >> From: tinyos-help-boun...@millennium.berkeley.edu > >> [mailto:tinyos-help-boun...@millennium.berkeley.edu]on Behalf Of Simon > >> Eberz > >> Sent: 28 October 2010 18:42 > >> To: tinyos-help@millennium.berkeley.edu > >> Subject: [Tinyos-help] Broadcast packet not received by all motes > >> > >> > >> Hi, > >> > >> I'm implementing a simple message exchange between two motes > >> (to measure > >> the RSSI, but this is not of interest) and > >> send the messages as broadcasts. > >> I'm using the TinyOS Basestation application with the Listen-Tool to > >> check which messages have been sent. > >> Here's the problem: I have two motes (call them A and B) with nearly > >> identical code flashed to them. > >> A sends a message (broadcast), and after that each mote will > >> send a new > >> broadcast after receiving a packet. > >> All messages sent by A are also received, and thus displayed, by the > >> BaseStation-mote, and the LEDs indicate that > >> all messages are also received by B [otherwise only one > >> message would be > >> sent anyway]. > >> But, when B sends a message, it seems to be received by A [as > >> A responds > >> with yet another packet], but is not displayed > >> by the BaseStation-App. I tried to verify this by flashing a > >> third mote > >> with custom code, same issue. > >> If I just call the SendProbe-method [see below] on mote B it > >> works fine > >> and switching motes doesn't help either. > >> LEDs suggest that the SendDone-Event is triggered on both motes. > >> Ultimately, it seems that the broadcasts are only received by > >> the mote > >> from which the last message was received (?). > >> Is there any property of broadcasts that I am not aware of? > >> Here is the (relevant) code I use: > >> > >> void SendProbe(){ > >> probe = (ProbeMsg*)(call Packet.getPayload(&pkt,NULL)); > >> probe->source = 1; > >> probe->counter = counter; > >> call AMSend.send(AM_BROADCAST_ADDR,&pkt, sizeof(ProbeMsg)); > >> } > >> > >> event message_t * Receive.receive(message_t *msg, void *payload, > >> uint8_t len){ > >> if(len==sizeof(ProbeMsg)){ > >> probe = (ProbeMsg*)payload; > >> call Timer.startOneShot(DELAY_BETWEEN_PROBES); > >> } > >> return msg; > >> } > >> > >> event void Timer.fired(){ > >> SendProbe(); > >> } > >> > >> > >> Thanks for your help > >> ___ > >> Tinyos-help mailing list > >> Tinyos-help@millennium.berkeley.edu > >> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/t > > inyos-help > > > > Please consider the environment before printing a hard copy of this > > e-mail. > > > > The information contained in this e-mail is confidential. It is intended > > only for the stated addressee(s) and access to it by any other person is > > unauthorised. If you are not an addressee, you must not disclose, copy, > > circulate or in any other way use or rely on the information contained in > > this e-mail. Such unauthorised use may be unlawful. If you have received > > this e-mail in error, please inform us immediately on +44 (0)118 986 8601 > > and delete it and all copies from your system. > > > > Thales Research and Technology (UK) Limited. A company registered in > > England and Wales. Registered Office: 2 Dashwood Lang Road, The Bourne > > Business Park, Addlestone, Weybridge, Surrey KT15 2NX. Registered Number: > > 774298 > > > > Thales UK Limited. A company registered in England and Wales. Registered > > Office: 2 Dashwood Lang Road, The Bourne Business Park, Addlestone, > > Weybridge, Surrey KT15 2NX. Registered Number: 868273 > > > > > > ___ > Tinyos-help mailing list > Tinyos-help@millennium.berkeley.edu > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help > -- Wasif Masood ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Broadcast packet not received by all motes
Just an idea: maybe the third mote has some low-power radio implementation (low-power listening, LPL) enabled and the sending motes somehow do not take this into account (i.e., they do not send a long-enough preamble). Cheers, Urs On 10/29/10 3:28 PM, Simon Eberz wrote: > According to the TinyOS wiki the CC2420 radio stack, which is used by > the MICAz motes, performs a CCA by default, this should not be the problem. > Furthermore, not a single one out of the ~300 packets was received by > the third mote, but all were received by the second one. I don't think > the problem is interference or something similiar. ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
Re: [Tinyos-help] Broadcast packet not received by all motes
Nice idea, but I tried switching the motes and nothing changes. I kept the source code for the listening mote extremely simple, I think the problem lies with one of the sending motes. > Just an idea: maybe the third mote has some low-power radio > implementation (low-power listening, LPL) enabled and the sending > motes somehow do not take this into account (i.e., they do not send a > long-enough preamble). > > Cheers, > Urs > > > On 10/29/10 3:28 PM, Simon Eberz wrote: >> According to the TinyOS wiki the CC2420 radio stack, which is used by >> the MICAz motes, performs a CCA by default, this should not be the >> problem. >> Furthermore, not a single one out of the ~300 packets was received by >> the third mote, but all were received by the second one. I don't think >> the problem is interference or something similiar. > > ___ Tinyos-help mailing list Tinyos-help@millennium.berkeley.edu https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help