Re: [Tinyos-help] About LowPowerListening

2008-05-29 Thread Janos Sallai
Jiwen,

 

This is regarding the LPL support of the rf230, it may not apply to the
cc2420:

 

1.   When you send a packet, you need to set the rx sleep interval
on a per packet basis, the value of which should be the local sleep
interval of the recipient. You need to call setRxSleepInterval before
calling AMSend.send(). You do not need to send any wake-up packets, the
radio stack will take care of that.

2.   ACKs are handled below the AM layer, so you can't see them with
Snoop.  You can use the PacketAcknowledgements interface to check if a
packet was acked. (Note that broadcasts are never acknowledged.)

3.   Yes.

 

Janos

 

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of jiwen
zhang
Sent: Wednesday, May 28, 2008 9:03 PM
To: David Moss
Cc: tinyos-help
Subject: Re: [Tinyos-help] About LowPowerListening

 

Hello David : 

   about the command setRxSleepInterval() , i want to ask some questions
again .

   1. In my test , the sender and receiver have the same duty cycle
(sleep interval ?) , for example 250ms , how long should i send the
wake-up packet before i send my data ? that is to say that what should i
set the  parameter of setRxSleepInterval before i use the command
AMSend.send() to send my useful datas ? 

in my test , i set it equal to sleep interval , i find there is no
lost packet .  

   2. If the receiver receives the packet , it will give the sender an
acknowledgement , what is the format of the acknowledgement ? where is
the format defined ? if i use the Basestation to snoop the
acknowledgement , can i receive it ?
  3. Does rf230 support LowPowerListeing ? 

 

another question : 

David , i download the cvs tree of tinyos-2.x six days ago , i
install the RadioCountToLeds to the mica2 motes , i find they can't
communicate with each other . i have chaged the frequency in
CC1000Const.h , just chaged

#ifndef CC1K_DEF_PRESET
#define CC1K_DEF_PRESET (CC1K_433_002_MHZ)  To

#ifndef CC1K_DEF_PRESET
#define CC1K_DEF_PRESET (CC1K_915_998_MHZ)

(My mica2 motes use 900MHZ)

 

in the primary tinyos tree (not the version of cvs) , i just chage this
, the mica2 motes can communicate with each other , but in the cvs
version , they can't . Do you know why , David ? have you tried ?

 

thank you very much !!

2008/5/27 David Moss [EMAIL PROTECTED]:

Hi Jiwen -

 

I've been out for a few days, sorry for the delay in the
response.

 

You're correct about the operation of setLocalSleepInterval. The
amount of time the radio wakes up is ideally as short as possible, and
is dependent upon the type of low power communication strategy
implemented.  The default CC2420 low power communication implementation,
in an attempt to work on everyone's setup, is set to 11 ms receive check
intervals.  I've had this working reliably in more of a point-to-point
scheme (no surrounding network) at 5 ms.  Essentially, because the
wakeup transmission is a packet train, the amount of time a receiver
radio must perform an energy-based receive check is the duration of the
gap in modulation between packets.  On different strategies, like a
BMAC-based strategy where a long continuously modulated signal is
emitted from the transmitter, the receive check can be near
instantaneous.

 

The setRxSleepInterval() command is used to setup the packet,
before transmission, to tell the radio stack how long to transmit that
packet for to wake up its intended destination.  So if you are about to
transmit a packet to a node that has a local duty cycle of 250 ms, you
have to tell the packet that the receiver's sleep interval is 250 ms.
The radio stack will wake up the duty cycling receiver for that duration
of time while attempting to deliver the packet.

 

The cc1000_lpl directory is no longer valid, and should never be
used.  The default cc1000 directory contains a fully functional low
power communication implementation, BMAC.

 

-David

 

 

 

 

 

 





From: jiwen zhang [mailto:[EMAIL PROTECTED] 
Sent: Monday, May 26, 2008 6:33 AM
To: David Moss; tinyos-help
Subject: Fwd: About LowPowerListening

 

 

-- Forwarded message --
From: jiwen zhang [EMAIL PROTECTED]
Date: 2008/5/25
Subject: About LowPowerListening
To: David Moss [EMAIL PROTECTED], tinyos-help
tinyos-help@millennium.berkeley.edu

Hello David :

   Maybe i have asked the question to you , but i still have
some puzzles .

   1. about the command setLocalSleepInterval(uint16_t
sleepIntervalMs) .

in my opinion , it is used the set that how long the mote
sleep . for example , we set sleepIntervalMs to 250 , which mean the
mote will sleep 250ms and wake up automatically , then check whether
there is carrier . if yes , it will keep

Re: [Tinyos-help] About LowPowerListening

2008-05-29 Thread David Moss
Hi Jiwen -

 

1.  The radio stack takes care of sending the wake up transmission
whenever you call AMSend.send.  So call
LowPowerListening.setRxSleepInterval(250), and then call AMSend.send() - no
delays needed.  I prefer to use Boot.booted() to setup the Rx sleep interval
on a packet, and that setting will stick with the packet throughout the
lifetime of the application unless you explicitly change it.

 

2.  The acknowledgment is an 802.15.4 acknowledgment frame, defined on
page 42 of the CC2420 datasheet.  Your BaseStation will technically receive
an acknowledgment, but because it is not a data frame, it will not pass the
ack onto the application layer to forward to your computer.  If you do some
special modifications to the receive branch of the radio stack, you will be
able to capture and report acknowledgment frames.

 

3.  Miklos: Yes

 

4.  The CC1000 radio and mica2 hardware comes in different flavors.  The
433 MHz version transmits farther, and is the default frequency setting for
the stack.  If you have 915 MHz versions of the mica2's, you did the right
thing by overriding the 433 MHz frequency setting with the 915 MHz setting. 

 

 

-David

 

 

  _  

From: jiwen zhang [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, May 28, 2008 7:03 PM
To: David Moss
Cc: tinyos-help
Subject: Re: About LowPowerListening

 

Hello David : 

   about the command setRxSleepInterval() , i want to ask some questions
again .

   1. In my test , the sender and receiver have the same duty cycle (sleep
interval ?) , for example 250ms , how long should i send the wake-up packet
before i send my data ? that is to say that what should i set the  parameter
of setRxSleepInterval before i use the command AMSend.send() to send my
useful datas ? 

in my test , i set it equal to sleep interval , i find there is no lost
packet .  

   2. If the receiver receives the packet , it will give the sender an
acknowledgement , what is the format of the acknowledgement ? where is the
format defined ? if i use the Basestation to snoop the acknowledgement , can
i receive it ?
  3. Does rf230 support LowPowerListeing ? 

 

another question : 

David , i download the cvs tree of tinyos-2.x six days ago , i install
the RadioCountToLeds to the mica2 motes , i find they can't communicate with
each other . i have chaged the frequency in CC1000Const.h , just chaged

#ifndef CC1K_DEF_PRESET
#define CC1K_DEF_PRESET (CC1K_433_002_MHZ)  To

#ifndef CC1K_DEF_PRESET
#define CC1K_DEF_PRESET (CC1K_915_998_MHZ)

(My mica2 motes use 900MHZ)

 

in the primary tinyos tree (not the version of cvs) , i just chage this ,
the mica2 motes can communicate with each other , but in the cvs version ,
they can't . Do you know why , David ? have you tried ?

 

thank you very much !!

2008/5/27 David Moss [EMAIL PROTECTED]:

Hi Jiwen -

 

I've been out for a few days, sorry for the delay in the response.

 

You're correct about the operation of setLocalSleepInterval. The amount of
time the radio wakes up is ideally as short as possible, and is dependent
upon the type of low power communication strategy implemented.  The default
CC2420 low power communication implementation, in an attempt to work on
everyone's setup, is set to 11 ms receive check intervals.  I've had this
working reliably in more of a point-to-point scheme (no surrounding network)
at 5 ms.  Essentially, because the wakeup transmission is a packet train,
the amount of time a receiver radio must perform an energy-based receive
check is the duration of the gap in modulation between packets.  On
different strategies, like a BMAC-based strategy where a long continuously
modulated signal is emitted from the transmitter, the receive check can be
near instantaneous.

 

The setRxSleepInterval() command is used to setup the packet, before
transmission, to tell the radio stack how long to transmit that packet for
to wake up its intended destination.  So if you are about to transmit a
packet to a node that has a local duty cycle of 250 ms, you have to tell the
packet that the receiver's sleep interval is 250 ms.  The radio stack will
wake up the duty cycling receiver for that duration of time while attempting
to deliver the packet.

 

The cc1000_lpl directory is no longer valid, and should never be used.  The
default cc1000 directory contains a fully functional low power communication
implementation, BMAC.

 

-David

 

 

 

 

 

 


  _  


From: jiwen zhang [mailto:[EMAIL PROTECTED] 
Sent: Monday, May 26, 2008 6:33 AM
To: David Moss; tinyos-help
Subject: Fwd: About LowPowerListening

 

 

-- Forwarded message --
From: jiwen zhang [EMAIL PROTECTED]
Date: 2008/5/25
Subject: About LowPowerListening
To: David Moss [EMAIL PROTECTED], tinyos-help
tinyos-help@millennium.berkeley.edu

Hello David :

   Maybe i have asked the question to you , but i still have some puzzles .

   1. about the command setLocalSleepInterval(uint16_t sleepIntervalMs) .

in my 

Re: [Tinyos-help] About LowPowerListening

2008-05-28 Thread jiwen zhang
Hello David :
   about the command setRxSleepInterval() , i want to ask some questions
again .
   1. In my test , the sender and receiver have the same duty cycle (sleep
interval ?) , for example 250ms , how long should i send the wake-up packet
before i send my data ? that is to say that what should i set the  parameter
of setRxSleepInterval before i use the command AMSend.send() to send my
useful datas ?
in my test , i set it equal to sleep interval , i find there is no lost
packet .
   2. If the receiver receives the packet , it will give the sender an
acknowledgement , what is the format of the acknowledgement ? where is the
format defined ? if i use the Basestation to snoop the acknowledgement , can
i receive it ?
  3. Does rf230 support LowPowerListeing ?

another question :
David , i download the cvs tree of tinyos-2.x six days ago , i install
the RadioCountToLeds to the mica2 motes , i find they can't communicate with
each other . i have chaged the frequency in CC1000Const.h , just chaged
#ifndef CC1K_DEF_PRESET
#define CC1K_DEF_PRESET (CC1K_433_002_MHZ)  To
#ifndef CC1K_DEF_PRESET
#define CC1K_DEF_PRESET (CC1K_915_998_MHZ)
(My mica2 motes use 900MHZ)

in the primary tinyos tree (not the version of cvs) , i just chage this ,
the mica2 motes can communicate with each other , but in the cvs version ,
they can't . Do you know why , David ? have you tried ?

thank you very much !!
2008/5/27 David Moss [EMAIL PROTECTED]:

  Hi Jiwen �C



 I've been out for a few days, sorry for the delay in the response.



 You're correct about the operation of setLocalSleepInterval. The amount of
 time the radio wakes up is ideally as short as possible, and is dependent
 upon the type of low power communication strategy implemented.  The default
 CC2420 low power communication implementation, in an attempt to work on
 everyone's setup, is set to 11 ms receive check intervals.  I've had this
 working reliably in more of a point-to-point scheme (no surrounding network)
 at 5 ms.  Essentially, because the wakeup transmission is a packet train,
 the amount of time a receiver radio must perform an energy-based receive
 check is the duration of the gap in modulation between packets.  On
 different strategies, like a BMAC-based strategy where a long continuously
 modulated signal is emitted from the transmitter, the receive check can be
 near instantaneous.



 The setRxSleepInterval() command is used to setup the packet, before
 transmission, to tell the radio stack how long to transmit that packet for
 to wake up its intended destination.  So if you are about to transmit a
 packet to a node that has a local duty cycle of 250 ms, you have to tell the
 packet that the receiver's sleep interval is 250 ms.  The radio stack will
 wake up the duty cycling receiver for that duration of time while attempting
 to deliver the packet.



 The cc1000_lpl directory is no longer valid, and should never be used.  The
 default cc1000 directory contains a fully functional low power communication
 implementation, BMAC.



 -David












  --

 *From:* jiwen zhang [mailto:[EMAIL PROTECTED]
 *Sent:* Monday, May 26, 2008 6:33 AM
 *To:* David Moss; tinyos-help
 *Subject:* Fwd: About LowPowerListening





 -- Forwarded message --
 From: *jiwen zhang* [EMAIL PROTECTED]
 Date: 2008/5/25
 Subject: About LowPowerListening
 To: David Moss [EMAIL PROTECTED], tinyos-help 
 tinyos-help@millennium.berkeley.edu

  Hello David :

Maybe i have asked the question to you , but i still have some puzzles .

1. about the command setLocalSleepInterval(uint16_t sleepIntervalMs) .

 in my opinion , it is used the set that how long the mote sleep . for
 example , we set sleepIntervalMs to 250 , which mean the mote will sleep
 250ms and wake up automatically , then check whether there is carrier . if
 yes , it will keep awake for a long time to receive the data packet , if no
 , it will go to sleep .

i want to know , how long does the mote take to check whether there is
 carrier wave ? if there is carrier, how long does the mote keep awake in
 order to receive the data packet ?(maybe there is no data packet sended to
 it , so i thick there could be a time upper limit that the mote keep awake
 )

2. about the command setRxSleepInterval(message_t *msg, uint16_t
 sleepIntervalMs)

i don't know what the function of this command is , can you explain to
 me ,David ?

In Lesson 16: Writing Low Power Sensing Applications , there is some
 introduction to LowPowerListening . it demonstrates the usage pattern :



 event void Boot.booted() {
   call LPL.setLocalSleepInterval(LPL_INTERVAL);
   call AMControl.start();
 }

 event void AMControl.startDone(error_t e) {
   if(e != SUCCESS)
 call AMControl.start();
 }

 ...

 void sendMsg() {
   call LPL.setRxSleepInterval(msg, LPL_INTERVAL);
   if(call Send.send(dest_addr, msg, sizeof(my_msg_t)) != SUCCESS)
 post retrySendTask();
 }

 

Re: [Tinyos-help] About LowPowerListening

2008-05-28 Thread Miklos Maroti
   3. Does rf230 support LowPowerListeing ?

Yes.

Miklos
___
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help